[jboss-cvs] JBossAS SVN: r75061 - in projects/vfs/trunk/src/test/java/org/jboss/test/virtual: test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 25 10:01:49 EDT 2008
Author: mstruk
Date: 2008-06-25 10:01:49 -0400 (Wed, 25 Jun 2008)
New Revision: 75061
Modified:
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/support/OptionsAwareURI.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/AbstractVFSTest.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/OSAwareVFSTest.java
Log:
Support for proper setting of NoReaper option on VFS context URLs
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/support/OptionsAwareURI.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/support/OptionsAwareURI.java 2008-06-25 14:00:25 UTC (rev 75060)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/support/OptionsAwareURI.java 2008-06-25 14:01:49 UTC (rev 75061)
@@ -25,6 +25,8 @@
import java.net.URL;
import java.net.URISyntaxException;
import java.io.IOException;
+import java.util.Iterator;
+import java.util.LinkedList;
import org.jboss.virtual.VFSUtils;
@@ -32,69 +34,108 @@
* Flag holder.
*
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ * @authos <a href="mailto:strukelj at parsek.net">Marko Strukelj</a>
*/
public class OptionsAwareURI
{
- private static final String Copy = VFSUtils.USE_COPY_QUERY + "=true";
+ public static final String Copy = VFSUtils.USE_COPY_QUERY + "=true";
+ public static final String NoReaper = VFSUtils.NO_REAPER_QUERY + "=true";
- private static ThreadLocal<Boolean> flag = new InheritableThreadLocal<Boolean>()
- {
- protected Boolean initialValue()
- {
- return Boolean.FALSE;
- }
+ private static ThreadLocal<Boolean> flagCopy = new OAInheritableThreadLocal();
+ private static ThreadLocal<Boolean> flagNoReaper = new OAInheritableThreadLocal();
- public String toString()
- {
- Boolean value = get();
- return String.valueOf(value);
- }
- };
-
- public static void set()
+ public static void set(String name)
{
- flag.set(Boolean.TRUE);
+ if (Copy.equals(name))
+ flagCopy.set(Boolean.TRUE);
+ else if (NoReaper.equals(name))
+ flagNoReaper.set(Boolean.TRUE);
+ else
+ throw new IllegalArgumentException(name);
}
- public static boolean get()
+ public static boolean get(String name)
{
- return flag.get();
+ if (Copy.equals(name))
+ return flagCopy.get();
+ else if (NoReaper.equals(name))
+ return flagNoReaper.get();
+ else
+ throw new IllegalArgumentException(name);
}
- public static void clear()
+ public static void clear(String name)
{
- flag.set(Boolean.FALSE);
+ if (Copy.equals(name))
+ flagCopy.set(Boolean.FALSE);
+ else if (NoReaper.equals(name))
+ flagNoReaper.set(Boolean.FALSE);
+ else
+ throw new IllegalArgumentException(name);
}
public static URL toURL(URL url) throws IOException
{
- if (get())
+ LinkedList params = new LinkedList();
+
+ if (get(Copy))
+ params.add(Copy);
+ if (get(NoReaper))
+ params.add(NoReaper);
+
+ if (params.size() == 0)
+ return url;
+
+ StringBuilder sb = new StringBuilder(url.toExternalForm());
+
+ // if options are set on URL we overwrite them
+ int qpos = sb.indexOf("?");
+ if (qpos > 0)
+ sb.setLength(qpos);
+
+ Iterator it = params.iterator();
+ for (int i=0; it.hasNext(); i++)
{
- return new URL(url.toExternalForm() + "?" + Copy);
+ if (i == 0)
+ sb.append("?");
+ else
+ sb.append("&");
+
+ sb.append(it.next());
}
- else
- return url;
+
+ return new URL(sb.toString());
}
public static URI toURI(URI uri) throws IOException
{
- if (get())
+ try
{
- try
- {
- return new URI(uri.getScheme(), uri.getUserInfo(), uri.getPath(), Copy, uri.getFragment());
- }
- catch (URISyntaxException e)
- {
- throw new IOException(e.getReason());
- }
+ return toURL(uri.toURL()).toURI();
}
- else
- return uri;
+ catch (URISyntaxException e)
+ {
+ throw new IOException(e.getReason());
+ }
}
public String toString()
{
- return "flag=" + get();
+ return "flagCopy=" + get(Copy) + ", flagNoReaper=" + get(NoReaper);
}
+
+
+ static class OAInheritableThreadLocal extends InheritableThreadLocal<Boolean>
+ {
+ protected Boolean initialValue()
+ {
+ return Boolean.FALSE;
+ }
+
+ public String toString()
+ {
+ Boolean value = get();
+ return String.valueOf(value);
+ }
+ }
}
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/AbstractVFSTest.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/AbstractVFSTest.java 2008-06-25 14:00:25 UTC (rev 75060)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/AbstractVFSTest.java 2008-06-25 14:01:49 UTC (rev 75061)
@@ -45,6 +45,7 @@
private static final VFSContextFactory jarFactory = new JarOAContextFactory();
private boolean forceCopy;
+ private boolean forceNoReaper;
public AbstractVFSTest(String name)
{
@@ -57,6 +58,13 @@
this.forceCopy = forceCopy;
}
+ public AbstractVFSTest(String name, boolean forceCopy, boolean forceNoReaper)
+ {
+ super(name);
+ this.forceCopy = forceCopy;
+ this.forceNoReaper = forceNoReaper;
+ }
+
protected void setUp() throws Exception
{
super.setUp();
@@ -66,9 +74,10 @@
getLog().info("Force copy: " + forceCopy);
if (forceCopy)
- {
- OptionsAwareURI.set();
- }
+ OptionsAwareURI.set(OptionsAwareURI.Copy);
+
+ if (forceNoReaper)
+ OptionsAwareURI.set(OptionsAwareURI.NoReaper);
}
protected void tearDown() throws Exception
@@ -77,10 +86,11 @@
VFSContextFactoryLocator.unregisterFactory(fileFactory);
if (forceCopy)
- {
- OptionsAwareURI.clear();
- }
+ OptionsAwareURI.clear(OptionsAwareURI.Copy);
+ if (forceNoReaper)
+ OptionsAwareURI.clear(OptionsAwareURI.NoReaper);
+
super.tearDown();
}
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java 2008-06-25 14:00:25 UTC (rev 75060)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java 2008-06-25 14:01:49 UTC (rev 75061)
@@ -44,19 +44,17 @@
public HDScannerTestCase(String name, boolean forceCopy)
{
- super(name, forceCopy);
+ super(name, forceCopy, true);
}
public HDScannerTestCase(String name)
{
- super(name);
+ super(name, true, true);
}
public void testDeleteWhileScanning()
throws Exception
{
- System.setProperty("jboss.vfs.forceNoReaper", "true");
-
// Create a root in the system tmp dir
File root = File.createTempFile("testDeleteWhileScanning", ".root");
root.delete();
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/OSAwareVFSTest.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/OSAwareVFSTest.java 2008-06-25 14:00:25 UTC (rev 75060)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/OSAwareVFSTest.java 2008-06-25 14:01:49 UTC (rev 75061)
@@ -47,6 +47,11 @@
super(name, forceCopy);
}
+ protected OSAwareVFSTest(String name, boolean forceCopy, boolean forceNoReaper)
+ {
+ super(name, forceCopy, forceNoReaper);
+ }
+
/**
* Are we running Windows.
*
More information about the jboss-cvs-commits
mailing list