Author: jgallimore
Date: Sun Oct  9 20:27:23 2011
New Revision: 1180709

URL: http://svn.apache.org/viewvc?rev=1180709&view=rev
Log:
TOMEE-29 only overwrite/touch web.xml if the content has actually changed

Modified:
    
openejb/trunk/openejb/assembly/openejb-webapp-common/src/main/java/org/apache/openejb/webapp/common/Installers.java

Modified: 
openejb/trunk/openejb/assembly/openejb-webapp-common/src/main/java/org/apache/openejb/webapp/common/Installers.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/assembly/openejb-webapp-common/src/main/java/org/apache/openejb/webapp/common/Installers.java?rev=1180709&r1=1180708&r2=1180709&view=diff
==============================================================================
--- 
openejb/trunk/openejb/assembly/openejb-webapp-common/src/main/java/org/apache/openejb/webapp/common/Installers.java
 (original)
+++ 
openejb/trunk/openejb/assembly/openejb-webapp-common/src/main/java/org/apache/openejb/webapp/common/Installers.java
 Sun Oct  9 20:27:23 2011
@@ -22,6 +22,7 @@ import org.apache.openejb.webapp.common.
 
 import java.util.jar.JarFile;
 import java.util.zip.ZipEntry;
+import java.io.FileNotFoundException;
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.ByteArrayInputStream;
@@ -94,6 +95,23 @@ public class Installers {
     }
 
     public static boolean writeAll(File file, String text, Alerts alerts) {
+       // compare text with existing file content - to stop the file being 
touched
+       
+       if (file.exists()) {
+               try {
+                               FileInputStream is = new FileInputStream(file);
+                               String oldText = readAll(is);
+                               if (oldText.equals(text)) {
+                                       return true;
+                               }
+                       } catch (Exception e) {
+                       }
+               
+            if (! file.delete()) {
+                    alerts.addError("can't replace " + file.getName());
+            }
+       }
+       
         FileOutputStream fileOutputStream = null;
         try {
             fileOutputStream = new FileOutputStream(file);


Reply via email to