X-Git-Url: https://juplo.de/gitweb/?p=website;a=blobdiff_plain;f=dist%2Fhibernate-maven-plugin-2.0.0%2Fxref%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FModificationTracker.html;fp=dist%2Fhibernate-maven-plugin-2.0.0%2Fxref%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FModificationTracker.html;h=0000000000000000000000000000000000000000;hp=62bdd9c5e69b88a3d0a50fdaa51323f9439aa0e3;hb=b293b312d6f0dd8b2dc716375fd442dd295a9942;hpb=9179a67d9952d3b63e95686dbd6cacd3c9e13cb2 diff --git a/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/ModificationTracker.html b/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/ModificationTracker.html deleted file mode 100644 index 62bdd9c5..00000000 --- a/dist/hibernate-maven-plugin-2.0.0/xref/de/juplo/plugins/hibernate/ModificationTracker.html +++ /dev/null @@ -1,224 +0,0 @@ - - - -ModificationTracker xref - - - -
View Javadoc
-1   package de.juplo.plugins.hibernate;
-2   
-3   
-4   import java.io.File;
-5   import java.io.FileInputStream;
-6   import java.io.FileOutputStream;
-7   import java.io.IOException;
-8   import java.io.InputStream;
-9   import java.io.ObjectInputStream;
-10  import java.io.ObjectOutputStream;
-11  import java.math.BigInteger;
-12  import java.security.MessageDigest;
-13  import java.security.NoSuchAlgorithmException;
-14  import java.util.HashMap;
-15  import java.util.HashSet;
-16  import java.util.Map;
-17  import java.util.Properties;
-18  import java.util.Set;
-19  import org.apache.maven.plugin.logging.Log;
-20  
-21  
-22  
-23  /**
-24   *
-25   * @author Kai Moritz
-26   */
-27  public class ModificationTracker
-28  {
-29    private Map<String,String> properties;
-30    private Map<String,String> classes;
-31  
-32    private final Set<String> propertyNames;
-33    private final Set<String> classNames;
-34  
-35    private boolean modified = false;
-36    private boolean failed = false;
-37  
-38    private final File saved;
-39    private final MessageDigest digest;
-40    private final Log log;
-41  
-42  
-43    ModificationTracker(String buildDirectory, String filename, Log log)
-44        throws
-45          NoSuchAlgorithmException
-46    {
-47      propertyNames = new HashSet<String>();
-48      classNames = new HashSet<String>();
-49      File output = new File(filename + ".md5s");
-50      if (output.isAbsolute())
-51      {
-52        saved = output;
-53      }
-54      else
-55      {
-56        // Interpret relative file path relative to build directory
-57        saved = new File(buildDirectory, output.getPath());
-58        log.debug("Adjusted relative path, resulting path is " + saved.getPath());
-59      }
-60      digest = java.security.MessageDigest.getInstance("MD5");
-61      this.log = log;
-62    }
-63  
-64  
-65    private String calculate(InputStream is)
-66        throws
-67          IOException
-68    {
-69      byte[] buffer = new byte[1024*4]; // copy data in 4MB-chunks
-70      int i;
-71      while((i = is.read(buffer)) > -1)
-72        digest.update(buffer, 0, i);
-73      is.close();
-74      byte[] bytes = digest.digest();
-75      BigInteger bi = new BigInteger(1, bytes);
-76      return String.format("%0" + (bytes.length << 1) + "x", bi);
-77    }
-78  
-79    private boolean check(Map<String,String> values, String name, String value)
-80    {
-81      if (!values.containsKey(name) || !values.get(name).equals(value))
-82      {
-83        values.put(name, value);
-84        return true;
-85      }
-86      else
-87        return false;
-88    }
-89  
-90  
-91    boolean track(String name, InputStream is) throws IOException
-92    {
-93      boolean result = check(classes, name, calculate(is));
-94      classNames.add(name);
-95      modified |= result;
-96      return result;
-97    }
-98  
-99  
-100   boolean check(String name, String property)
-101   {
-102     propertyNames.add(name);
-103     return check(properties, name, property);
-104   }
-105 
-106   boolean track(String name, String property)
-107   {
-108     boolean result = check(name, property);
-109     modified |= result;
-110     return result;
-111   }
-112 
-113   boolean track(Properties properties)
-114   {
-115     boolean result = false;
-116     for (String name : properties.stringPropertyNames())
-117       result |= track(name, properties.getProperty(name));
-118     return result;
-119   }
-120 
-121 
-122   void touch()
-123   {
-124     modified = true;
-125   }
-126 
-127   boolean modified()
-128   {
-129     for (String property : new HashSet<String>(properties.keySet()))
-130       if (!propertyNames.contains(property))
-131       {
-132         modified = true;
-133         properties.remove(property);
-134       }
-135      for (String clazz : new HashSet<String>(classes.keySet()))
-136       if (!classNames.contains(clazz))
-137       {
-138         modified = true;
-139         classes.remove(clazz);
-140       }
-141     return modified;
-142   }
-143 
-144 
-145   void failed()
-146   {
-147     failed = true;
-148   }
-149 
-150 
-151   void load()
-152   {
-153     if (saved.isFile() && saved.length() > 0)
-154     {
-155       try
-156       {
-157         FileInputStream fis = new FileInputStream(saved);
-158         ObjectInputStream ois = new ObjectInputStream(fis);
-159         properties = (HashMap<String,String>)ois.readObject();
-160         classes = (HashMap<String,String>)ois.readObject();
-161         ois.close();
-162       }
-163       catch (Exception e)
-164       {
-165         properties = new HashMap<String,String>();
-166         classes = new HashMap<String,String>();
-167         log.warn("Cannot read md5s from saved: " + e);
-168       }
-169     }
-170     else
-171     {
-172       properties = new HashMap<String,String>();
-173       classes = new HashMap<String,String>();
-174       try
-175       {
-176         saved.createNewFile();
-177       }
-178       catch (IOException e)
-179       {
-180         log.debug("Cannot create file \"" + saved.getPath() + "\" for md5s: " + e);
-181       }
-182     }
-183   }
-184 
-185   void save()
-186   {
-187     if (failed)
-188     {
-189       saved.delete();
-190       return;
-191     }
-192 
-193     if (!modified)
-194       return;
-195 
-196     /** Write md5-sums for annotated classes to file */
-197     try
-198     {
-199       FileOutputStream fos = new FileOutputStream(saved);
-200       ObjectOutputStream oos = new ObjectOutputStream(fos);
-201       oos.writeObject(properties);
-202       oos.writeObject(classes);
-203       oos.close();
-204       fos.close();
-205     }
-206     catch (Exception e)
-207     {
-208       log.error("Cannot write md5-sums to file: " + e);
-209     }
-210   }  
-211 }
-
-
- - -