You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2011/09/20 07:45:31 UTC
svn commit: r1172980 -
/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
Author: lukaszlenart
Date: Tue Sep 20 05:45:30 2011
New Revision: 1172980
URL: http://svn.apache.org/viewvc?rev=1172980&view=rev
Log:
WW-3633 - better way to timestamps file used in tests
Modified:
struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java?rev=1172980&r1=1172979&r2=1172980&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java (original)
+++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderTest.java Tue Sep 20 05:45:30 2011
@@ -15,30 +15,29 @@
*/
package com.opensymphony.xwork2.config.providers;
+import com.opensymphony.xwork2.ObjectFactory;
import com.opensymphony.xwork2.config.ConfigurationProvider;
import com.opensymphony.xwork2.config.RuntimeConfiguration;
-import com.opensymphony.xwork2.config.impl.MockConfiguration;
import com.opensymphony.xwork2.config.entities.PackageConfig;
+import com.opensymphony.xwork2.config.impl.MockConfiguration;
import com.opensymphony.xwork2.util.ClassLoaderUtil;
import com.opensymphony.xwork2.util.FileManager;
-import com.opensymphony.xwork2.ObjectFactory;
+import org.w3c.dom.Document;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.ArrayList;
-
-import org.w3c.dom.Document;
public class XmlConfigurationProviderTest extends ConfigurationTestBase {
public void testLoadOrder() throws Exception {
configuration = new MockConfiguration();
- ((MockConfiguration)configuration).selfRegister();
+ ((MockConfiguration) configuration).selfRegister();
container = configuration.getContainer();
XmlConfigurationProvider prov = new XmlConfigurationProvider("xwork-test-load-order.xml", true) {
@@ -54,13 +53,25 @@ public class XmlConfigurationProviderTes
prov.setObjectFactory(container.getInstance(ObjectFactory.class));
prov.init(configuration);
List<Document> docs = prov.getDocuments();
- assertEquals(3, docs.size() );
+ assertEquals(3, docs.size());
assertEquals(1, XmlHelper.getLoadOrder(docs.get(0)).intValue());
assertEquals(2, XmlHelper.getLoadOrder(docs.get(1)).intValue());
assertEquals(3, XmlHelper.getLoadOrder(docs.get(2)).intValue());
}
+ public static final long FILE_TS_WAIT_IN_MS = 3600000;
+
+ private static void changeFileTime(File f) throws Exception {
+ final long orig = f.lastModified();
+ final long maxwait = orig + FILE_TS_WAIT_IN_MS;
+ long curr;
+ while (!f.setLastModified(curr = System.currentTimeMillis()) || orig == f.lastModified()) {
+ Thread.sleep(500);
+ assertTrue("Waited more than " + FILE_TS_WAIT_IN_MS + " ms to update timestamp on file: " + f, maxwait > curr);
+ }
+ }
+
public void testNeedsReload() throws Exception {
FileManager.setReloadingConfigs(true);
final String filename = "com/opensymphony/xwork2/config/providers/xwork-test-actions.xml";
@@ -68,9 +79,9 @@ public class XmlConfigurationProviderTes
assertTrue(!provider.needsReload());
- File file = new File(getClass().getResource("/"+filename).getFile());
- assertTrue(file.exists());
- file.setLastModified(System.currentTimeMillis());
+ File file = new File(getClass().getResource("/" + filename).toURI());
+ assertTrue("not exists: " + file.toString(), file.exists());
+ changeFileTime(file);
assertTrue(provider.needsReload());
}
@@ -148,7 +159,7 @@ public class XmlConfigurationProviderTes
File file = new File(uri);
assertTrue(file.exists());
- file.setLastModified(System.currentTimeMillis());
+ changeFileTime(file);
assertTrue(provider.needsReload());
}
@@ -175,14 +186,14 @@ public class XmlConfigurationProviderTes
int startIndex = fullPath.indexOf(":file:/");
int endIndex = fullPath.indexOf("!/");
- String jar = fullPath.substring(startIndex + (":file:/".length() -1 ), endIndex).replaceAll("%20", " ");
+ String jar = fullPath.substring(startIndex + (":file:/".length() - 1), endIndex).replaceAll("%20", " ");
File file = new File(jar);
-
+
assertTrue("File [" + file + "] doesn't exist!", file.exists());
file.setLastModified(System.currentTimeMillis());
assertTrue(!provider.needsReload());
}
-
+
}