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);