[fyi][icedtea-web]Refactoring of reproducers as agreed in April

Jiri Vanek jvanek at redhat.com
Fri Jun 29 05:50:22 PDT 2012


Hi! It looks to me that we have agreed on first five patches (2x hg mv, extracting of tests and 
inner clases, adapted makefile and added headers). I would like to push them (it is getting hard to 
maintain those set of changsets).

Your next two concerns (netx on classapth and renaming) I would like to provide as two  separate 
changsets, as it is not critically bounded. Se my comments lower to the renaming patch as you wanted 
and get rid of unnecessary netx classapth entry.

On 06/28/2012 06:18 PM, Omair Majid wrote:
> On 06/28/2012 11:44 AM, Jiri Vanek wrote:
>> On 06/28/2012 05:20 PM, Omair Majid wrote:
>....
>>>
>>> Could you rename the variable so they are more accurate? Something like
>>> JNLP_TESTS_ENGINE_SRCDIR ->   TEST_EXTENSIONS_SRCDIR makes more sense to
>>
>> sure. Give sens.. Will do tomorrow morning as new changeset (will send
>> to review together with those already existing 5) for you.
>>
>>> me. Also, can you update the build dir names to match the src dir names?
>>
>> Please no - my tools are depending on those directory names. I really
>> donot want to change them, because sudenly there will be necessary two
>> tryes to find files to compare - one in old name and second in new.
>
> Perhaps you can add symlinks for compatiblity? I would really like to
> see consistent names. Otherwise it will be harder for developer to do
> the mapping from source dir names to build dir names.
>
>>>> @@ -634,8 +637,24 @@
>>>>        mkdir -p stamps&&   \
>>>>        touch $@
>>>>
>>>> +netx-dist-tests-tests-source-files.txt:
>>>
>>> s/netx-dist-tests-tests-source-files/test-extensions-sources-files/
>> 1
>>>
>>>> +    find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort>   $@
>>>> +
>>>> +stamps/netx-dist-tests-tests-compile.stamp: stamps/netx.stamp \
>> 2
>>
>>>
>>> A clearer name for this stamp too, please.
>>
>> hmh.. they are not so bad.
>>
>> If you insists, then first will become test-extensions-tests-sources-files.
>>
>> Th rest is derived from top level target:
>
> We might want to consider better names for top-level targets too (and
> leave older targets for compatibility)
>
>> run-netx-dist-tests =>
>> netx-dist-tests-source-files
>> netx-dist-tests-tests-source-files
>>
>> But if you insists I will chnage  both netx-dist-tests-source-files and
>> netx-dist-tests-tests-source-files to something more reliable to new names.
>>
>
> Please do.

Ok. So I have renamed variables, create one backward symlink and renamed not-top level targets. Does 
the new name give sense to you?
>
>>>
>>>> + stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt \
>>>> + stamps/netx-dist-tests-compile.stamp
>>>> +    mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR);
>>>> +    $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
>>>> +     -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
>>>> +     -classpath
>>>> $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
>>>
>>> The tests for the test-extensions depend on netx to build? Seems rather
>>> weird.
>>
>> I will check this before tomorrow morning new-set-of-patches
>
> Thanks!

Checked. NJot necessary indedd. Although this particular one change i have included into "adapted 
makefile" I'm not going to push it if you agree with my initial recommendation  This issue is little 
bit spread. I would like to investiagte where it is safe to remove (right now I'm sure in three cases).

Anyway -  Do you think it is worthy? I can imagine few cases when reproducer(testcase,extension) 
will would like to know something from netx.jar... Although it do not need now, it can in future.. 
So it will be work to add it.
Anyway(2:) - I would like to remove those dependencies as separate changset - Right after we agree 
on renaming as you proposed.




J.
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340964227 -7200
# Node ID 672bf06a58af5761044e67b6613e3bae1eb26f7f
# Parent  e8652a641ba3a5b83b3e95ba64e559eaf8b8ce10
Makefile adapted to recent (three changesets) refactoring

diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,9 +17,12 @@
 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
 
-export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/netx/jnlp_testsengine
-export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/jnlp_tests
-export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/netx/jnlp_testsengine
+
+export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions
+export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
+export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
+export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine
+export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests
 export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server
 export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests
 export PRIVATE_KEYSTORE_NAME=teststore.ks
@@ -649,8 +652,20 @@
 	mkdir -p stamps && \
 	touch $@
 
+netx-dist-tests-tests-source-files.txt:
+	find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@
+
+stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt  stamps/netx-dist-tests-compile.stamp
+	mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR);
+	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
+	 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
+	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
+	 @netx-dist-tests-tests-source-files.txt && \
+	mkdir -p stamps && \
+	touch $@
+
 stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \
- netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
+ netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp
 	types=($(ALL_REPRODUCERS)); \
 	for which in "$${types[@]}" ; do \
 	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
@@ -658,7 +673,7 @@
 	  IFS="$$IFS_BACKUP" ; \
 	  for dir in "$${simpleReproducers[@]}" ; do \
 	    $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
-	      -d $(JNLP_TESTS_ENGINE_DIR) \
+	      -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
 	      -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
 	    "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \
 	  done ; \
@@ -681,7 +696,7 @@
 
 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)
 	whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
-	cd $(JNLP_TESTS_ENGINE_DIR) ; \
+	cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \
 	class_names= ; \
 	for test in `find -type f` ; do \
 	  class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
@@ -710,7 +725,7 @@
  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp
 	cd $(JNLP_TESTS_ENGINE_DIR) ; \
 	class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
-	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):. \
+	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \
 	  $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
 	 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
 if WITH_XSLTPROC
@@ -991,6 +1006,7 @@
 	   -cp $(BOOT_DIR)/jre/lib/resources.jar \
 	   -cp $(RHINO_RUNTIME) \
 	   -cp . \
+	   -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \
 	   -ix "-org.junit.*" \
 	   -ix "-junit.*" \
 	   CommandLine $$class_names ; \
@@ -1007,6 +1023,7 @@
 	  -sp $(NETX_UNIT_TEST_SRCDIR) \
 	  -sp $(JUNIT_RUNNER_SRCDIR) \
 	  -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
+	  -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
 	  -r html \
 	  -r xml \
 	  "$${testcases_srcs[@]}" ; \
@@ -1053,6 +1070,7 @@
 	 -sp $(NETX_UNIT_TEST_SRCDIR) \
 	 -sp $(JUNIT_RUNNER_SRCDIR) \
 	 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
+	 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
 	 "$${testcases_srcs[@]}" \
 	 -r html \
 	 -r xml ; 
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340964279 -7200
# Node ID 5b088a10b659082df3abe9629cc8dae9cc453dd3
# Parent  672bf06a58af5761044e67b6613e3bae1eb26f7f
Added missing headers

diff --git a/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp b/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
--- a/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
+++ b/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="CreateClassLoader.jnlp">
diff --git a/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp b/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
--- a/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
+++ b/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="ReadEnvironment.jnlp">
diff --git a/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp b/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp
--- a/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp
+++ b/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="ReadProperties1.jnlp">
diff --git a/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp b/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp
--- a/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp
+++ b/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="ReadProperties2.jnlp">
diff --git a/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp b/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp
--- a/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp
+++ b/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="RedirectStreams.jnlp">
diff --git a/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp b/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
--- a/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
+++ b/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
@@ -1,4 +1,42 @@
-<?xml version="1.0" encoding="utf-8"?> 
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="ReplaceSecurityManager.jnlp">
diff --git a/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp b/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
--- a/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
+++ b/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
@@ -1,4 +1,42 @@
 <?xml version="1.0" encoding="utf-8"?> 
+
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ -->
+
 <jnlp spec="1.0"
       codebase="./"
       href="SetContextClassLoader.jnlp">
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
--- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
@@ -65,12 +65,12 @@
 /**
  *
  * This class provides access to virtual server and stuff around.
- * It can find unoccupied port, start server, provides its singleton instantiation, lunch parallel instantiations,
+ * It can find unoccupied port, start server, provides its singleton instantiation, launch parallel instantiations,
  * read location of installed (tested javaws) see javaws.build.bin java property,
  * location of server www root on file system (see test.server.dir java property),
- * stubs for lunching javaws and for locating resources and read resources.
+ * stubs for launching javaws and for locating resources and read resources.
  *
- * It can also execute processes with timeout (@see PROCESS_TIMEOUT) (used during lunching javaws)
+ * It can also execute processes with timeout (@see PROCESS_TIMEOUT) (used during launching javaws)
  * Some protected apis are exported because public classes in this package are put to be tested by makefile.
  *
  * There are included test cases which show some basic usages.
diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java
--- a/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java
@@ -1,3 +1,40 @@
+/* Bug.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.annotations;
 
 import java.lang.annotation.ElementType;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
--- a/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
@@ -1,3 +1,40 @@
+/* KnownToFail.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.annotations;
 
 import java.lang.annotation.ElementType;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java
--- a/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java
@@ -1,3 +1,40 @@
+/* NeedsDisplay.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 
 package net.sourceforge.jnlp.annotations;
 
diff --git a/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java
--- a/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java
@@ -1,6 +1,38 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
+/* TestInBrowsers.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
  */
 
 package net.sourceforge.jnlp.annotations;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java
@@ -1,3 +1,40 @@
+/* Browser.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting;
 
 import java.util.List;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
@@ -1,3 +1,40 @@
+/* BrowserFactory.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting;
 
 import net.sourceforge.jnlp.annotations.TestInBrowsers;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java
@@ -1,3 +1,40 @@
+/* BrowserTest.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting;
 
 import net.sourceforge.jnlp.ServerAccess;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
@@ -1,3 +1,40 @@
+/* BrowserTestRunner.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting;
 
 import java.lang.annotation.Annotation;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java
@@ -1,3 +1,40 @@
+/* Browsers.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting;
 
 /**
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
@@ -1,3 +1,40 @@
+/* Chrome.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import net.sourceforge.jnlp.browsertesting.Browsers;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
@@ -1,3 +1,40 @@
+/* Chromium.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import net.sourceforge.jnlp.browsertesting.Browsers;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
@@ -1,3 +1,40 @@
+/* Epiphany.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import net.sourceforge.jnlp.browsertesting.Browsers;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
@@ -1,3 +1,40 @@
+/* Firefox.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import java.util.Arrays;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
@@ -1,3 +1,40 @@
+/* LinuxBrowser.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import net.sourceforge.jnlp.browsertesting.Browser;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
@@ -1,3 +1,40 @@
+/* Midory.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import net.sourceforge.jnlp.browsertesting.Browsers;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
@@ -1,3 +1,40 @@
+/* MozillaFamilyLinuxBrowser.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import java.util.List;
diff --git a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
--- a/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
@@ -1,3 +1,39 @@
+/* Opera.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
 package net.sourceforge.jnlp.browsertesting.browsers;
 
 import java.util.Arrays;
@@ -34,4 +70,4 @@
         return null;
     }
 
-}
\ No newline at end of file
+}
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340962018 -7200
# Node ID e8652a641ba3a5b83b3e95ba64e559eaf8b8ce10
# Parent  6ac30b34c7f0a46fbc4acdf75da341a619262598
Extracted tests and inner classes from test-extensions

diff --git a/tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java b/tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java
@@ -0,0 +1,379 @@
+/* ResourcesTest.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+package net.sourceforge.jnlp;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
+import net.sourceforge.jnlp.browsertesting.Browser;
+import net.sourceforge.jnlp.browsertesting.BrowserFactory;
+import net.sourceforge.jnlp.browsertesting.BrowserTest;
+import net.sourceforge.jnlp.browsertesting.Browsers;
+import net.sourceforge.jnlp.annotations.NeedsDisplay;
+import net.sourceforge.jnlp.annotations.TestInBrowsers;
+import net.sourceforge.jnlp.browsertesting.browsers.LinuxBrowser;
+import net.sourceforge.jnlp.annotations.TestInBrowsers;
+import org.junit.Assert;
+
+import org.junit.Test;
+
+public class ResourcesTest extends  BrowserTest{
+
+
+    @Test
+    @NeedsDisplay
+    public void testNonExisitngBrowserWillNotDeadlock() throws Exception {
+        server.setCurrentBrowser(Browsers.none);
+        ServerAccess.ProcessResult pr = server.executeBrowser("simpletest1.jnlp");
+        Assert.assertNull(pr.process);
+        Assert.assertEquals(pr.stderr, "");
+        Assert.assertEquals(pr.stdout, "");
+        Assert.assertTrue(pr.wasTerminated);
+        Assert.assertTrue(pr.returnValue < 0);
+        junit.framework.Assert.assertNotNull(pr.deadlyException);
+    }
+
+    @Test
+    public void testUnexistingProcessWillFailRecognizedly() throws Exception {
+        server.setCurrentBrowser(Browsers.none);
+        List<String> al=Arrays.asList(new String[] {"definietly_not_Existing_process"});
+        ServerAccess.ProcessResult pr = server.executeProcess(al);
+        Assert.assertNull(pr.process);
+        Assert.assertEquals(pr.stderr, "");
+        Assert.assertEquals(pr.stdout, "");
+        Assert.assertTrue(pr.wasTerminated);
+        Assert.assertTrue(pr.returnValue < 0);
+        junit.framework.Assert.assertNotNull(pr.deadlyException);
+    }
+
+    @Test
+    @TestInBrowsers(testIn=Browsers.none)
+    public void testNonExisitngBrowserWillNotCauseMess() throws Exception {
+        ServerAccess.ProcessResult pr = server.executeBrowser("simpletest1.jnlp");
+        Assert.assertNull(pr.process);
+        Assert.assertEquals(pr.stderr, "");
+        Assert.assertEquals(pr.stdout, "");
+        Assert.assertTrue(pr.wasTerminated);
+        Assert.assertTrue(pr.returnValue < 0);
+        junit.framework.Assert.assertNotNull(pr.deadlyException);
+    }
+
+    @Test
+    public void testBrowsers2() throws Exception {
+        List<Browser> a = BrowserFactory.getFactory().getAllBrowsers();
+        Assert.assertNotNull("returned browsers array must not be null", a);
+        Assert.assertTrue("at least one browser must be configured", a.size() > 0);
+        for (Browser b : a) {
+            testBrowser(b);
+        }
+
+    }
+
+    @Test
+    @TestInBrowsers(testIn = Browsers.all)
+    public void testBrowser3() throws Exception {
+        testBrowser(server.getCurrentBrowser());
+
+
+    }
+
+    @Test
+    public void testBrowsers1() throws Exception {
+        BrowserFactory bf = new BrowserFactory(null);
+        int expected = 0;
+        Assert.assertTrue("Created from null there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        bf = new BrowserFactory("");
+        expected = 0;
+        Assert.assertTrue("Created from empty there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        String s = "dsgrdg";
+        bf = new BrowserFactory(s);
+        expected = 0;
+        Assert.assertTrue("Created from nonsense " + s + " there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = "sgrg/jkik";
+        bf = new BrowserFactory(s);
+        expected = 0;
+        Assert.assertTrue("Created from nonsense " + s + " there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox + "/jkik";
+        bf = new BrowserFactory(s);
+        expected = 0;
+        Assert.assertTrue("Created from nonsense " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = "sgrg/jkik:sege";
+        bf = new BrowserFactory(s);
+        expected = 0;
+        Assert.assertTrue("Created from  two nonsenses " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox.toExec() + ":" + Browsers.firefox;
+        bf = new BrowserFactory(s);
+        expected = 2;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox.toExec();
+        bf = new BrowserFactory(s);
+        expected = 1;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = "something/somewhere/" + Browsers.firefox.toExec();
+        bf = new BrowserFactory(s);
+        expected = 1;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = "something/somewhere/" + Browsers.firefox.toExec() + ":" + "something/somewhere/" + Browsers.opera.toExec();
+        bf = new BrowserFactory(s);
+        expected = 2;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = "something/somewhere/" + Browsers.firefox.toExec() + ":" + "something/somewhere/" + Browsers.opera.toExec() + ":" + Browsers.chromiumBrowser;
+        bf = new BrowserFactory(s);
+        expected = 3;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox.toExec() + ":" + "vfdgf" + ":" + Browsers.googleChrome.toExec();
+        bf = new BrowserFactory(s);
+        expected = 2;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox.toExec() + ":" + Browsers.chromiumBrowser + ":" + Browsers.googleChrome.toExec() + ":" + Browsers.opera;
+        bf = new BrowserFactory(s);
+        expected = 4;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+        testFullFactory(bf);
+
+        s = "fgfd/" + Browsers.firefox.toExec() + ":" + "/fgfd/" + Browsers.chromiumBrowser + ":" + "fgfd/dfsdf/" + Browsers.googleChrome.toExec() + ":" + "/g/fgfd/" + Browsers.opera;
+        bf = new BrowserFactory(s);
+        expected = 4;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+        testFullFactory(bf);
+
+        s = Browsers.firefox.toExec() + ":" + ":" + Browsers.googleChrome.toExec() + ":" + Browsers.opera;
+        bf = new BrowserFactory(s);
+        expected = 3;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = Browsers.firefox.toExec() + ":" + ":" + ":" + Browsers.opera;
+        bf = new BrowserFactory(s);
+        expected = 2;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = ":" + ":" + Browsers.googleChrome.toExec() + ":";
+        bf = new BrowserFactory(s);
+        expected = 1;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+        s = ":" + Browsers.firefox.toExec() + ":bfgbfg/fddf/" + Browsers.googleChrome.toExec() + ":";
+        bf = new BrowserFactory(s);
+        expected = 2;
+        Assert.assertTrue("Created from  " + s + "there must be " + expected + " browsers in factory. Is" + bf.getAllBrowsers().size(), bf.getAllBrowsers().size() == expected);
+
+
+
+
+    }
+
+    @Test
+    public void testResourcesExists() throws Exception {
+        File[] simpleContent = server.getDir().listFiles(new FileFilter() {
+
+            public boolean accept(File file) {
+                if (!file.isDirectory()) {
+                    return true;
+                } else {
+                    return false;
+                }
+            }
+        });
+        Assert.assertNotNull(simpleContent);
+        Assert.assertTrue(simpleContent.length > 5);
+
+        for (int i = 0; i < simpleContent.length; i++) {
+            File file = simpleContent[i];
+            ServerAccess.logOutputReprint(file.getName());
+            //server port have in fact no usage in converting filename to uri-like-filename.
+            //But if there is null, instead if some number, then nullpointer exception is thrown (Integer->int).
+            //So I'm using "real" currently used port, instead of some random value.
+            URI u = new URI((String) null, (String) null, (String) null, server.getPort(), file.getName(), (String) null, null);
+            ServerAccess.logOutputReprint(" ("+u.toString()+")");
+            String fname = u.toString();
+            if (file.getName().toLowerCase().endsWith(".jnlp")) {
+                String c = server.getResourceAsString("/" + fname);
+                Assert.assertTrue(c.contains("<"));
+                Assert.assertTrue(c.contains(">"));
+                Assert.assertTrue(c.contains("jnlp"));
+                Assert.assertTrue(c.contains("resources"));
+                Assert.assertTrue(c.replaceAll("\\s*", "").contains("</jnlp>"));
+
+            } else {
+                byte[] c = server.getResourceAsBytes("/" + fname).toByteArray();
+                Assert.assertEquals(c.length, file.length());
+            }
+
+        }
+
+    }
+
+    @Test
+    @NeedsDisplay
+    @TestInBrowsers(testIn = Browsers.one)
+    public void testListeners() throws Exception {
+        final StringBuilder o1 = new StringBuilder();
+        final StringBuilder e1 = new StringBuilder();
+        final StringBuilder o2 = new StringBuilder();
+        final StringBuilder e2 = new StringBuilder();
+        final ContentReaderListener lo = new ContentReaderListener() {
+
+            @Override
+            public void charReaded(char ch) {
+                //ServerAccess.logOutputReprint("OO recieved char: "+ch);
+                o1.append(ch);
+            }
+
+            @Override
+            public void lineReaded(String s) {
+                //ServerAccess.logOutputReprint("OO recieved line: "+s);
+                o2.append(s).append("\n");
+            }
+        };
+        ContentReaderListener le = new ContentReaderListener() {
+
+            @Override
+            public void charReaded(char ch) {
+                //ServerAccess.logOutputReprint("EE recieved char: "+ch);
+                e1.append(ch);
+            }
+
+            @Override
+            public void lineReaded(String s) {
+                //ServerAccess.logOutputReprint("EE recieved line: "+s);
+                e2.append(s).append("\n");
+            }
+        };
+       ServerAccess.ProcessResult pr=server.executeBrowser("simpletest1.jnlp",le,lo);
+        server.setCurrentBrowser(BrowserFactory.getFactory().getFirst().getID());
+        Assert.assertNotNull(server.getCurrentBrowsers());
+        Assert.assertNotNull(server.getCurrentBrowser());
+//        ServerAccess.logOutputReprint("total o");
+//        ServerAccess.logOutputReprint(pr.stdout);
+//        ServerAccess.logOutputReprint("total e");
+//        ServerAccess.logOutputReprint(pr.stderr);
+       Assert.assertEquals(pr.stdout, o1.toString());
+       Assert.assertEquals(pr.stderr, e1.toString());
+       //the last \n is mandatory as las tline is flushed also when proces dies
+       Assert.assertEquals(pr.stdout.replace("\n", ""), o2.toString().replace("\n", ""));
+       Assert.assertEquals(pr.stderr.replace("\n", ""), e2.toString().replace("\n", ""));
+
+    }
+
+    private void testFullFactory(BrowserFactory bf) {
+        Assert.assertEquals(bf.getBrowser(Browsers.chromiumBrowser).getID(), Browsers.chromiumBrowser);
+        Assert.assertEquals(bf.getBrowser(Browsers.googleChrome).getID(), Browsers.googleChrome);
+        Assert.assertEquals(bf.getBrowser(Browsers.firefox).getID(), Browsers.firefox);
+        Assert.assertEquals(bf.getBrowser(Browsers.opera).getID(), Browsers.opera);
+    }
+
+    private void testBrowser(Browser browser) throws IOException {
+        File f1 = null;
+        if (browser.getDefaultPluginExpectedLocation() != null) {
+            f1 = new File(browser.getDefaultPluginExpectedLocation());
+        }
+        File f2 = null;
+        if (browser.getUserDefaultPluginExpectedLocation() != null) {
+            f2 = new File(browser.getUserDefaultPluginExpectedLocation());
+        }
+        if (f1 != null) {
+            Assert.assertTrue("browser's plugins  location should exist " + f1.toString() + " for " + browser.getID().toString(), f1.exists());
+        }
+        if (f2 != null) {
+            Assert.assertTrue("browser's users-plugins  location should exist " + f2.toString() + " for " + browser.getID().toString(), f2.exists());
+        }
+
+        File[] ff1 = new File[0];
+        if (f1 != null) {
+            ff1 = f1.listFiles();
+        }
+
+        File[] ff2 = new File[0];
+        if (f2 != null) {
+            ff2 = f2.listFiles();
+        }
+
+        Assert.assertTrue("at least one of browser's plugins  directory should contains at least one file didn't. For " + browser.getID().toString(), ff1.length + ff2.length > 0);
+
+        ff1 = new File[0];
+        if (f1 != null) {
+            ff1 = f1.listFiles(new FileFilter() {
+
+                @Override
+                public boolean accept(File pathname) {
+                    return (pathname.getName().equals(LinuxBrowser.DEFAULT_PLUGIN_NAME));
+                }
+            });
+        }
+
+        ff2 = new File[0];
+        if (f2 != null) {
+            ff2 = f2.listFiles(new FileFilter() {
+
+                @Override
+                public boolean accept(File pathname) {
+                    return (pathname.getName().equals(LinuxBrowser.DEFAULT_PLUGIN_NAME));
+                }
+            });
+        }
+
+        Assert.assertTrue("browser's plugins  directories should contains exactly one  " + LinuxBrowser.DEFAULT_PLUGIN_NAME + ", but didnt for " + browser.getID().toString(),
+                ff1.length + ff2.length == 1);
+        String currentPath = server.getJavawsFile().getParentFile().getParentFile().getAbsolutePath();
+
+        File[] ff;
+        if (ff1.length == 1) {
+            ff = ff1;
+        } else {
+            ff = ff2;
+        }
+        String s = ServerAccess.getContentOfStream(new FileInputStream(ff[0]), "ASCII");
+        Assert.assertTrue("browser's plugins  shoud points to" + currentPath + ", but  didnt",
+                s.contains(s));
+    }
+}
diff --git a/tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java b/tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java
@@ -0,0 +1,233 @@
+/* ServerAccessTest.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+package net.sourceforge.jnlp;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.URL;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ *
+ * This class provides access to virtual server and stuff around.
+ * It can find unoccupied port, start server, provides its singleton instantiation, lunch parallel instantiations,
+ * read location of installed (tested javaws) see javaws.build.bin java property,
+ * location of server www root on file system (see test.server.dir java property),
+ * stubs for lunching javaws and for locating resources and read resources.
+ *
+ * It can also execute processes with timeout (@see PROCESS_TIMEOUT) (used during lunching javaws)
+ * Some protected apis are exported because public classes in this package are put to be tested by makefile.
+ *
+ * There are included test cases which show some basic usages.
+ *
+ *
+ */
+public class ServerAccessTest {
+
+    ServerAccess serverAccess = new ServerAccess();
+
+    @Test
+    public void testsProcessResultFiltering() throws Exception {
+        ProcessResult pn = new ProcessResult(null, null, null, true, 0, null);
+        Assert.assertNull(pn.notFilteredStdout);
+        Assert.assertNull(pn.stdout);
+        Assert.assertNull(pn.stderr);
+        String fakeOut2 =
+                "EMMA: processing instrumentation path ...\n"
+                + "EMMA: package [net.sourceforge.filebrowser] contains classes [ArrayOfString] without full debug info\n"
+                + "EMMA: instrumentation path processed in 1407 ms\n"
+                + "test stage 1\n"
+                + "test stage 2\n"
+                + "EMMA: The intruder!\n"
+                + "test stage 3\n"
+                + "EMMA: [45 class(es) instrumented, 13 resource(s) copied]\n"
+                + "EMMA: metadata merged into [icedtea-web/inc] {in 105 ms}\n"
+                + "EMMA: processing instrumentation path ...";
+        String filteredOut2 =
+                "test stage 1\n"
+                + "test stage 2\n"
+                + "test stage 3\n";
+        ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0, null);
+        Assert.assertEquals(p2.notFilteredStdout, fakeOut2);
+        Assert.assertEquals(p2.stdout, filteredOut2);
+        Assert.assertEquals(p2.stderr, fakeOut2);
+        fakeOut2 += "\n";
+        p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0, null);
+        Assert.assertEquals(p2.notFilteredStdout, fakeOut2);
+        Assert.assertEquals(p2.stdout, filteredOut2);
+        Assert.assertEquals(p2.stderr, fakeOut2);
+        String fakeOut =
+                "test string\n"
+                + "EMMA: processing instrumentation path ...\n"
+                + "EMMA: package [net.sourceforge.filebrowser] contains classes [ArrayOfString] without full debug info\n"
+                + "EMMA: instrumentation path processed in 1407 ms\n"
+                + "test stage 1\n"
+                + "test stage 2\n"
+                + "test stage 3\n"
+                + "EMMA: [45 class(es) instrumented, 13 resource(s) copied]\n"
+                + "EMMA: metadata merged into [icedtea-web/inc] {in 105 ms}\n"
+                + "EMMA: processing instrumentation path ...\n"
+                + "test ends";
+        String filteredOut =
+                "test string\n"
+                + "test stage 1\n"
+                + "test stage 2\n"
+                + "test stage 3\n"
+                + "test ends";
+        ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0, null);
+        Assert.assertEquals(p.notFilteredStdout, fakeOut);
+        Assert.assertEquals(p.stdout, filteredOut);
+        Assert.assertEquals(p.stderr, fakeOut);
+        fakeOut += "\n";
+        filteredOut += "\n";
+        p = new ProcessResult(fakeOut, fakeOut, null, true, 0, null);
+        Assert.assertEquals(p.notFilteredStdout, fakeOut);
+        Assert.assertEquals(p.stdout, filteredOut);
+        Assert.assertEquals(p.stderr, fakeOut);
+    }
+
+    @Test
+    public void ensureJavaws() throws Exception {
+        String javawsValue = serverAccess.getJavawsLocation();
+        Assert.assertNotNull(javawsValue);
+        Assert.assertTrue(javawsValue.trim().length() > 2);
+        File javawsFile = serverAccess.getJavawsFile();
+        Assert.assertTrue(javawsFile.exists());
+        Assert.assertFalse(javawsFile.isDirectory());
+    }
+
+    @Test
+    public void ensureServer() throws Exception {
+        ServerLauncher server = ServerAccess.getInstance();
+        Assert.assertNotNull(server.getPort());
+        Assert.assertNotNull(server.getDir());
+        Assert.assertTrue(server.getPort() > 999);
+        Assert.assertTrue(server.getDir().toString().trim().length() > 2);
+
+        Assert.assertTrue(server.getDir().exists());
+        Assert.assertTrue(server.getDir().isDirectory());
+
+        File portFile = new File(server.getDir(), "server.port");
+        File dirFile = new File(server.getDir(), "server.dir");
+
+        ServerAccess.saveFile(server.getDir().getAbsolutePath(), dirFile);
+        ServerAccess.saveFile(server.getPort().toString(), portFile);
+        ServerAccess.saveFile(server.getPort().toString(), portFile);
+
+        Assert.assertTrue(portFile.exists());
+        Assert.assertTrue(dirFile.exists());
+        Assert.assertTrue(server.getDir().listFiles().length > 1);
+
+        String portFileContent = ServerAccess.getContentOfStream(new FileInputStream(portFile));
+        String dirFileContent = ServerAccess.getContentOfStream(new FileInputStream(dirFile));
+
+        URL portUrl = new URL("http", "localhost", server.getPort(), "/server.port");
+        URL dirUrl = new URL("http", "localhost", server.getPort(), "/server.dir");
+
+        String portUrlContent = ServerAccess.getContentOfStream(portUrl.openConnection().getInputStream());
+        String dirUrlContent = ServerAccess.getContentOfStream(dirUrl.openConnection().getInputStream());
+
+        Assert.assertEquals(portUrlContent.trim(), portFileContent.trim());
+        Assert.assertEquals(dirUrlContent.trim(), dirFileContent.trim());
+        Assert.assertEquals(new File(dirUrlContent.trim()), server.getDir());
+        Assert.assertEquals(new Integer(portUrlContent.trim()), server.getPort());
+
+        URL fastUrl = new URL("http", "localhost", server.getPort(), "/simpletest1.jnlp");
+        URL slowUrl = new URL("http", "localhost", server.getPort(), "/XslowXsimpletest1.jnlp");
+
+        String fastUrlcontent = ServerAccess.getContentOfStream(fastUrl.openConnection().getInputStream());
+        String slowUrlContent = ServerAccess.getContentOfStream(slowUrl.openConnection().getInputStream());
+        Assert.assertEquals(fastUrlcontent, slowUrlContent);
+
+    }
+
+    @Test
+    public void splitArrayTest0() throws Exception {
+        byte[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
+        byte[][] bb = TinyHttpdImpl.splitArray(b, 3);
+        //printArrays(bb);
+        byte[] b1 = {1, 2, 3, 4, 5};
+        byte[] b2 = {6, 7, 8, 9, 10};
+        byte[] b3 = {11, 12, 13, 14};
+        Assert.assertEquals(3, bb.length);
+        Assert.assertArrayEquals(b1, bb[0]);
+        Assert.assertArrayEquals(b2, bb[1]);
+        Assert.assertArrayEquals(b3, bb[2]);
+    }
+
+    @Test
+    public void splitArrayTest1() throws Exception {
+        byte[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
+        byte[][] bb = TinyHttpdImpl.splitArray(b, 3);
+        //printArrays(bb);
+        byte[] b1 = {1, 2, 3, 4, 5};
+        byte[] b2 = {6, 7, 8, 9, 10};
+        byte[] b3 = {11, 12, 13};
+        Assert.assertEquals(3, bb.length);
+        Assert.assertArrayEquals(b1, bb[0]);
+        Assert.assertArrayEquals(b2, bb[1]);
+        Assert.assertArrayEquals(b3, bb[2]);
+    }
+
+    @Test
+    public void splitArrayTest2() throws Exception {
+        byte[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
+        byte[][] bb = TinyHttpdImpl.splitArray(b, 3);
+        //printArrays(bb);
+        byte[] b1 = {1, 2, 3, 4};
+        byte[] b2 = {5, 6, 7, 8};
+        byte[] b3 = {9, 10, 11, 12};
+        Assert.assertEquals(3, bb.length);
+        Assert.assertArrayEquals(b1, bb[0]);
+        Assert.assertArrayEquals(b2, bb[1]);
+        Assert.assertArrayEquals(b3, bb[2]);
+    }
+
+    private void printArrays(byte[][] bb) {
+        System.out.println("[][] l=" + bb.length);
+        for (int i = 0; i < bb.length; i++) {
+            byte[] bs = bb[i];
+            System.out.println(i + ": l=" + bs.length);
+            for (int j = 0; j < bs.length; j++) {
+                byte c = bs[j];
+                System.out.print(" " + j + ":" + c + " ");
+            }
+            System.out.println("");
+        }
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ContentReader.java b/tests/test-extensions/net/sourceforge/jnlp/ContentReader.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/ContentReader.java
@@ -0,0 +1,133 @@
+/* ContentReader.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+
+/**
+ * Class to read content of stdout/stderr of process, and to cooperate with its running/terminated/finished statuses.
+ */
+class ContentReader implements Runnable {
+
+    StringBuilder sb = new StringBuilder();
+    private final InputStream is;
+    private boolean done;
+    ContentReaderListener listener;
+
+    public String getContent() {
+        return sb.toString();
+    }
+
+    public ContentReader(InputStream is) throws IOException {
+        this.is = is;
+    }
+
+    public ContentReader(InputStream is, ContentReaderListener l) throws IOException {
+        this.is = is;
+        this.listener = l;
+    }
+
+    public void setListener(ContentReaderListener listener) {
+        this.listener = listener;
+    }
+
+    public ContentReaderListener getListener() {
+        return listener;
+    }
+
+    /**
+     * Blocks until the copy is complete, or until the thread is interrupted
+     */
+    public synchronized void waitUntilDone() throws InterruptedException {
+        boolean interrupted = false;
+        // poll interrupted flag, while waiting for copy to complete
+        while (!(interrupted = Thread.interrupted()) && !done) {
+            wait(1000);
+        }
+        if (interrupted) {
+            ServerAccess.logNoReprint("Stream copier: throwing InterruptedException");
+            //throw new InterruptedException();
+        }
+    }
+
+    @Override
+    public void run() {
+        try {
+            Reader br = new InputStreamReader(is, "UTF-8");
+            StringBuilder line = new StringBuilder();
+            while (true) {
+                int s = br.read();
+                if (s < 0) {
+                    if (line.length() > 0 && listener != null) {
+                        listener.lineReaded(line.toString());
+                    }
+                    break;
+                }
+                char ch = (char) s;
+                sb.append(ch);
+                line.append(ch);
+                if (ch == '\n') {
+                    if (listener != null) {
+                        listener.lineReaded(line.toString());
+                    }
+                    line = new StringBuilder();
+                }
+                if (listener != null) {
+                    listener.charReaded(ch);
+                }
+            }
+            //do not want to bother output with terminations
+            //mostly compaling when assassin kill the process about StreamClosed
+            //do not want to bother output with terminations
+            //mostly compaling when assassin kill the process about StreamClosed
+        } catch (Exception ex) {
+            // logException(ex);
+        } finally {
+            try {
+                is.close();
+            } catch (Exception ex) {
+                // ex.printStackTrace();
+            } finally {
+                done = true;
+            }
+        }
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java b/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java
--- a/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java
@@ -1,3 +1,40 @@
+/* ContentReaderListener.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
 package net.sourceforge.jnlp;
 
 public interface ContentReaderListener {
diff --git a/tests/test-extensions/net/sourceforge/jnlp/LogItem.java b/tests/test-extensions/net/sourceforge/jnlp/LogItem.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/LogItem.java
@@ -0,0 +1,71 @@
+/* LogItem.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.util.Date;
+
+class LogItem {
+
+    public final Date timeStamp = new Date();
+    public final StackTraceElement[] fullTrace = Thread.currentThread().getStackTrace();
+    public final String text;
+    private static final String ITEM_ELEMENT = "item";
+    private static final String ITEM_ID_ATTRIBUTE = "id";
+    private static final String STAMP_ELEMENT = "stamp";
+    private static final String TEXT_ELEMENT = "text";
+    private static final String FULLTRACE_ELEMENT = "fulltrace";
+
+    public LogItem(String text) {
+        this.text = text;
+    }
+
+    public StringBuilder toStringBuilder(int id) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("  <" + ITEM_ELEMENT + " " + ITEM_ID_ATTRIBUTE + "=\"").append(id).append("\">\n");
+        sb.append("    <" + STAMP_ELEMENT + "><![CDATA[").append(timeStamp.toString()).append("]]></" + STAMP_ELEMENT + ">\n");
+        sb.append("    <" + TEXT_ELEMENT + "><![CDATA[\n").append(text).append("\n]]></" + TEXT_ELEMENT + ">\n");
+        sb.append("    <" + FULLTRACE_ELEMENT + "><![CDATA[\n");
+        //five methods since call in log methods + getStacktrace method
+        for (int i = 6; i < fullTrace.length; i++) {
+            sb.append(fullTrace[i].toString()).append("\n");
+        }
+        sb.append("\n]]>    </" + FULLTRACE_ELEMENT + ">\n");
+        sb.append("  </" + ITEM_ELEMENT + ">\n");
+        return sb;
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java b/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java
@@ -0,0 +1,215 @@
+/* LoggingBottleneck.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import net.sourceforge.jnlp.annotations.TestInBrowsers;
+import net.sourceforge.jnlp.browsertesting.BrowserTest;
+import net.sourceforge.jnlp.browsertesting.Browsers;
+
+public class LoggingBottleneck {
+
+    /**
+     * default singleton
+     */
+    private static LoggingBottleneck loggingBottleneck;
+    private static final File DEFAULT_LOG_FILE = new File("ServerAccess-logs.xml");
+    private static final File DEFAULT_STDERR_FILE = new File("stderr.log");
+    private static final File DEFAULT_STDOUT_FILE = new File("stdout.log");
+    private static final File DEFAULT_STDLOGS_FILE = new File("all.log");
+    private static final String LOGS_ELEMENT = "logs";
+    private static final String CLASSLOG_ELEMENT = "classlog";
+    private static final String CLASSNAME_ATTRIBUTE = "className";
+    private static final String TESTLOG_ELEMENT = "testLog";
+    private static final String TESTMETHOD_ATTRIBUTE = "testMethod";
+    private static final String FULLID_ATTRIBUTE = "fullId";
+    private BufferedWriter DEFAULT_STDERR_WRITER;
+    private BufferedWriter DEFAULT_STDOUT_WRITER;
+    private BufferedWriter DEFAULT_STDLOGS_WRITER;
+    /**
+     * This is static copy of name of id of currentBrowser for logging purposes
+     */
+    private String loggedBrowser = Browsers.none.toString();
+    /**
+     * map of classes, each have map of methods, each have errorlist, outLIst, and allList (allist contains also not std or err messages)
+     * class.testMethod.logs
+     */
+    final Map<String, Map<String, TestsLogs>> processLogs = new HashMap<String, Map<String, TestsLogs>>(100);
+    private boolean added = false;
+
+    public static LoggingBottleneck getDefaultLoggingBottleneck() {
+        if (loggingBottleneck == null) {
+            loggingBottleneck = new LoggingBottleneck();
+        }
+        return loggingBottleneck;
+
+    }
+
+    private LoggingBottleneck() {
+        try {
+            DEFAULT_STDOUT_WRITER = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDOUT_FILE)));
+            DEFAULT_STDERR_WRITER = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDERR_FILE)));
+            DEFAULT_STDLOGS_WRITER = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDLOGS_FILE)));
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    void writeXmlLog() throws FileNotFoundException, IOException {
+        writeXmlLog(DEFAULT_LOG_FILE);
+    }
+
+    void writeXmlLog(File f) throws FileNotFoundException, IOException {
+        Writer w = new OutputStreamWriter(new FileOutputStream(f));
+        Set<Entry<String, Map<String, TestsLogs>>> classes = processLogs.entrySet();
+        w.write("<" + LOGS_ELEMENT + ">");
+        for (Entry<String, Map<String, TestsLogs>> classLog : classes) {
+            String className = classLog.getKey();
+            w.write("<" + CLASSLOG_ELEMENT + " " + CLASSNAME_ATTRIBUTE + "=\"" + className + "\">");
+            Set<Entry<String, TestsLogs>> testsLogs = classLog.getValue().entrySet();
+            for (Entry<String, TestsLogs> testLog : testsLogs) {
+                String testName = testLog.getKey();
+                String testLogs = testLog.getValue().toString();
+                w.write("<" + TESTLOG_ELEMENT + " " + TESTMETHOD_ATTRIBUTE + "=\"" + testName + "\" " + FULLID_ATTRIBUTE + "=\"" + className + "." + testName + "\"  >");
+                w.write(testLogs);
+                w.write("</" + TESTLOG_ELEMENT + ">");
+            }
+            w.write("</" + CLASSLOG_ELEMENT + ">");
+        }
+        w.write("</" + LOGS_ELEMENT + ">");
+        w.flush();
+        w.close();
+    }
+
+    void addToXmlLog(String message, boolean printToOut, boolean printToErr, StackTraceElement ste) {
+        Map<String, TestsLogs> classLog = processLogs.get(ste.getClassName());
+        if (classLog == null) {
+            classLog = new HashMap<String, TestsLogs>(50);
+            processLogs.put(ste.getClassName(), classLog);
+        }
+        String methodBrowseredName = ste.getMethodName();
+        methodBrowseredName = modifyMethodWithForBrowser(methodBrowseredName, ste.getClassName());
+        TestsLogs methodLog = classLog.get(methodBrowseredName);
+        if (methodLog == null) {
+            methodLog = new TestsLogs();
+            classLog.put(methodBrowseredName, methodLog);
+        }
+        if (!added) {
+            Runtime.getRuntime().addShutdownHook(new Thread() {
+
+                @Override
+                public void run() {
+                    try {
+                        LoggingBottleneck.getDefaultLoggingBottleneck().writeXmlLog();
+                    } catch (Exception ex) {
+                        ex.printStackTrace();
+                    }
+                }
+            });
+            added = true;
+        }
+        methodLog.add(printToErr, printToOut, message);
+    }
+
+    public String modifyMethodWithForBrowser(String methodBrowseredName, String className) {
+        try {
+            Class clazz = Class.forName(className);
+            /*
+             * By using this isAssignable to ensure corect class before invocation,
+             * then we lost possibility to track manualy set browsers, but it is correct,
+             * as method description is set only when annotation is used
+             */
+            if (clazz != null && BrowserTest.class.isAssignableFrom(clazz)) {
+                Method testMethod = clazz.getMethod(methodBrowseredName);
+                if (testMethod != null) {
+                    TestInBrowsers tib = testMethod.getAnnotation(TestInBrowsers.class);
+                    if (tib != null) {
+                        methodBrowseredName = methodBrowseredName + " - " + loggedBrowser;
+                    }
+                }
+            }
+        } catch (Throwable ex) {
+            ex.printStackTrace();
+        }
+        return methodBrowseredName;
+    }
+
+    public void setLoggedBrowser(String loggedBrowser) {
+        this.loggedBrowser = loggedBrowser;
+    }
+
+    public void logIntoPlaintextLog(String message, boolean printToOut, boolean printToErr) {
+        try {
+            if (printToOut) {
+                LoggingBottleneck.getDefaultLoggingBottleneck().stdout(message);
+            }
+            if (printToErr) {
+                LoggingBottleneck.getDefaultLoggingBottleneck().stderr(message);
+            }
+            LoggingBottleneck.getDefaultLoggingBottleneck().stdeall(message);
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+
+    private void stdout(String idded) throws IOException {
+        DEFAULT_STDOUT_WRITER.write(idded);
+        DEFAULT_STDOUT_WRITER.newLine();
+    }
+
+    private void stderr(String idded) throws IOException {
+        DEFAULT_STDERR_WRITER.write(idded);
+        DEFAULT_STDERR_WRITER.newLine();
+    }
+
+    private void stdeall(String idded) throws IOException {
+        DEFAULT_STDLOGS_WRITER.write(idded);
+        DEFAULT_STDLOGS_WRITER.newLine();
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java b/tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java
@@ -0,0 +1,159 @@
+/* ProcessAssasin.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+/**
+ * class which timeout any ThreadedProcess. This killing of 'thread with process' replaced not working process.destroy().
+ */
+class ProcessAssasin extends Thread {
+
+    long timeout;
+    private final ThreadedProcess p;
+    //false == is disabled:(
+    private boolean canRun = true;
+    private boolean wasTerminated = false;
+    /**
+     * if this is true, then process is not destroyed after timeout, but just left to its own destiny.
+     * Its stdout/err is no longer recorded, and it is leaking system resources until it dies by itself
+     * The contorl is returned to main thread with all informations recorded  untill now.
+     * You will be able to listen to std out from listeners still
+     */
+    private boolean skipInstedOfDesroy = false;
+
+    public ProcessAssasin(ThreadedProcess p, long timeout) {
+        this.p = (p);
+        this.timeout = timeout;
+    }
+
+    public ProcessAssasin(ThreadedProcess p, long timeout, boolean skipInstedOfDesroy) {
+        this.p = (p);
+        this.timeout = timeout;
+        this.skipInstedOfDesroy = skipInstedOfDesroy;
+    }
+
+    public void setCanRun(boolean canRun) {
+        this.canRun = canRun;
+        if (p != null) {
+            if (p.getP() != null) {
+                ServerAccess.logNoReprint("Stopping assassin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": ");
+            } else {
+                ServerAccess.logNoReprint("Stopping assassin for" + p.toString() + " " + p.getCommandLine() + ": ");
+            }
+        } else {
+            ServerAccess.logNoReprint("Stopping assassin for null job: ");
+        }
+    }
+
+    public boolean isCanRun() {
+        return canRun;
+    }
+
+    public boolean wasTerminated() {
+        return wasTerminated;
+    }
+
+    public void setSkipInstedOfDesroy(boolean skipInstedOfDesroy) {
+        this.skipInstedOfDesroy = skipInstedOfDesroy;
+    }
+
+    public boolean isSkipInstedOfDesroy() {
+        return skipInstedOfDesroy;
+    }
+
+    @Override
+    public void run() {
+        long startTime = System.nanoTime() / ServerAccess.NANO_TIME_DELIMITER;
+        while (canRun) {
+            try {
+                long time = System.nanoTime() / ServerAccess.NANO_TIME_DELIMITER;
+                //ServerAccess.logOutputReprint(time - startTime);
+                //ServerAccess.logOutputReprint((time - startTime) > timeout);
+                if ((time - startTime) > timeout) {
+                    try {
+                        if (p != null) {
+                            if (p.getP() != null) {
+                                ServerAccess.logErrorReprint("Timed out " + p.toString() + " " + p.getP().toString() + " .. killing " + p.getCommandLine() + ": ");
+                            } else {
+                                ServerAccess.logErrorReprint("Timed out " + p.toString() + " " + "null  .. killing " + p.getCommandLine() + ": ");
+                            }
+                            wasTerminated = true;
+                            p.interrupt();
+                            while (!ServerAccess.terminated.contains(p)) {
+                                Thread.sleep(100);
+                            }
+                            if (p.getP() != null) {
+                                try {
+                                    if (!skipInstedOfDesroy) {
+                                        p.getP().destroy();
+                                    }
+                                } catch (Throwable ex) {
+                                    if (p.deadlyException == null) {
+                                        p.deadlyException = ex;
+                                    }
+                                    ex.printStackTrace();
+                                }
+                            }
+                            if (p.getP() != null) {
+                                ServerAccess.logErrorReprint("Timed out " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine());
+                            } else {
+                                ServerAccess.logErrorReprint("Timed out " + p.toString() + " null  .. killed " + p.getCommandLine());
+                            }
+                        } else {
+                            ServerAccess.logErrorReprint("Timed out null job");
+                        }
+                        break;
+                    } finally {
+                        p.setDestoyed(true);
+                    }
+                }
+                Thread.sleep(100);
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        if (p != null) {
+            if (p.getP() != null) {
+                ServerAccess.logNoReprint("assassin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + "  termination " + wasTerminated);
+            } else {
+                ServerAccess.logNoReprint("assassin for" + p.toString() + " null .. done " + p.getCommandLine() + "  termination " + wasTerminated);
+            }
+        } else {
+            ServerAccess.logNoReprint("assassin for non existing job  termination " + wasTerminated);
+        }
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java b/tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java
@@ -0,0 +1,69 @@
+/* ProcessResult.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+/**
+ * artefacts what are left by finished process
+ */
+public class ProcessResult {
+
+    public final String stdout;
+    public final String notFilteredStdout;
+    public final String stderr;
+    public final Process process;
+    public final Integer returnValue;
+    public final boolean wasTerminated;
+    /*
+     * possible exception which caused Process not to be launched
+     */
+    public final Throwable deadlyException;
+
+    public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r, Throwable deadlyException) {
+        this.notFilteredStdout = stdout;
+        if (stdout == null) {
+            this.stdout = null;
+        } else {
+            this.stdout = stdout.replaceAll("EMMA:.*\n?", "");
+        }
+        this.stderr = stderr;
+        this.process = process;
+        this.wasTerminated = wasTerminated;
+        this.returnValue = r;
+        this.deadlyException = deadlyException;
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
--- a/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
+++ b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
@@ -39,10 +39,7 @@
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -50,34 +47,20 @@
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
-import java.io.Reader;
 import java.io.StringWriter;
 import java.io.Writer;
-import java.lang.reflect.Method;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketException;
 import java.net.URL;
-import java.net.URLDecoder;
 import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
-import java.util.StringTokenizer;
-import net.sourceforge.jnlp.annotations.TestInBrowsers;
 import net.sourceforge.jnlp.browsertesting.Browser;
 import net.sourceforge.jnlp.browsertesting.BrowserFactory;
-import net.sourceforge.jnlp.browsertesting.BrowserTest;
 import net.sourceforge.jnlp.browsertesting.Browsers;
 import org.junit.Assert;
-import org.junit.Test;
 
 /**
  *
@@ -116,7 +99,7 @@
     /**
      * inner version of engine
      */
-    private static final String version = "4";
+    private static final String version = "5";
     /**
      * timeout to read 'remote' resources
      * This can be changed in runtime, but will affect all following tasks
@@ -130,7 +113,7 @@
     /**
      * all terminated processes are stored here. As wee need to 'wait' to termination to be finished.
      */
-    private static Set<Thread> terminated = new HashSet<Thread>();
+    static Set<Thread> terminated = new HashSet<Thread>();
     /**
      * this flag is indicating whether output of executeProcess should be logged. By default true.
      */
@@ -138,195 +121,9 @@
     public static boolean LOGS_REPRINT = false;
 
     private Browser currentBrowser;
-    /**
-     * This is static copy of name of id of currentBrowser for logging purposes
-     */
-    private static String loggedBrowser=Browsers.none.toString();
     public static final String UNSET_BROWSER="unset_browser";
 
     /**
-     * map of classes, each have map of methods, each have errorlist, outLIst, and allList (allist contains also not std or err messages)
-     * class.testMethod.logs
-     */
-    private static final Map<String, Map<String, TestsLogs>> processLogs = new HashMap<String, Map<String, TestsLogs>>(100);
-    private static final File DEFAULT_LOG_FILE = new File("ServerAccess-logs.xml");
-    private static final File DEFAULT_STDERR_FILE = new File("stderr.log");
-    private static final File DEFAULT_STDOUT_FILE = new File("stdout.log");
-    private static final File DEFAULT_STDLOGS_FILE = new File("all.log");
-    private static BufferedWriter DEFAULT_STDERR_WRITER;
-    private static BufferedWriter DEFAULT_STDOUT_WRITER;
-    private static BufferedWriter DEFAULT_STDLOGS_WRITER;
-
-    static{
-        try{
-            DEFAULT_STDOUT_WRITER=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDOUT_FILE)));
-            DEFAULT_STDERR_WRITER=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDERR_FILE)));
-            DEFAULT_STDLOGS_WRITER=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(DEFAULT_STDLOGS_FILE)));
-        }catch(Throwable t){
-            t.printStackTrace();
-        }
-    }
-    private static final String LOGS_ELEMENT = "logs";
-    private static final String CLASSLOG_ELEMENT = "classlog";
-    private static final String CLASSNAME_ATTRIBUTE = "className";
-    private static final String TESTLOG_ELEMENT = "testLog";
-    private static final String TESTMETHOD_ATTRIBUTE = "testMethod";
-    private static final String FULLID_ATTRIBUTE = "fullId";
-    private static final String LOG_ELEMENT = "log";
-    private static final String LOG_ID_ATTRIBUTE = "id";
-    private static final String ITEM_ELEMENT = "item";
-    private static final String ITEM_ID_ATTRIBUTE = "id";
-    private static final String STAMP_ELEMENT = "stamp";
-    private static final String TEXT_ELEMENT = "text";
-    private static final String FULLTRACE_ELEMENT = "fulltrace";
-
-    private static void writeXmlLog() throws FileNotFoundException, IOException {
-        writeXmlLog(DEFAULT_LOG_FILE);
-    }
-
-    private static void writeXmlLog(File f) throws FileNotFoundException, IOException {
-        Writer w = new OutputStreamWriter(new FileOutputStream(f));
-        Set<Entry<String, Map<String, TestsLogs>>> classes = processLogs.entrySet();
-        w.write("<" + LOGS_ELEMENT + ">");
-        for (Entry<String, Map<String, TestsLogs>> classLog : classes) {
-            String className = classLog.getKey();
-            w.write("<" + CLASSLOG_ELEMENT + " " + CLASSNAME_ATTRIBUTE + "=\"" + className + "\">");
-            Set<Entry<String, TestsLogs>> testsLogs = classLog.getValue().entrySet();
-            for (Entry<String, TestsLogs> testLog : testsLogs) {
-                String testName = testLog.getKey();
-                String testLogs = testLog.getValue().toString();
-                w.write("<" + TESTLOG_ELEMENT + " " + TESTMETHOD_ATTRIBUTE + "=\"" + testName + "\" " + FULLID_ATTRIBUTE + "=\"" + className + "." + testName + "\"  >");
-                w.write(testLogs);
-                w.write("</" + TESTLOG_ELEMENT + ">");
-            }
-            w.write("</" + CLASSLOG_ELEMENT + ">");
-        }
-        w.write("</" + LOGS_ELEMENT + ">");
-        w.flush();
-        w.close();
-    }
-
-    private static void addToXmlLog(String message, boolean printToOut, boolean printToErr, StackTraceElement ste) {
-        Map<String, TestsLogs> classLog = processLogs.get(ste.getClassName());
-        if (classLog == null) {
-            classLog = new HashMap<String, TestsLogs>(50);
-            processLogs.put(ste.getClassName(), classLog);
-        }
-        String methodBrowseredName = ste.getMethodName();
-        methodBrowseredName = modifyMethodWithForBrowser(methodBrowseredName,ste.getClassName());
-        TestsLogs methodLog = classLog.get(methodBrowseredName);
-        if (methodLog == null) {
-            methodLog = new TestsLogs();
-            classLog.put(methodBrowseredName, methodLog);
-        }
-        methodLog.add(printToErr, printToOut, message);
-    }
-
-     private static String modifyMethodWithForBrowser(String methodBrowseredName, String className) {
-        try {
-            Class clazz = Class.forName(className);
-            /*
-             * By using this isAssignable to ensure corect class before invocation,
-             * then we lost possibility to track manualy set browsers, but it is correct,
-             * as method description is set only when annotation is used
-             */
-             if (clazz != null && BrowserTest.class.isAssignableFrom(clazz)){
-                Method testMethod = clazz.getMethod(methodBrowseredName);
-                if (testMethod != null) {
-                    TestInBrowsers tib = testMethod.getAnnotation(TestInBrowsers.class);
-                    if (tib != null) {
-                        methodBrowseredName = methodBrowseredName + " - " + loggedBrowser;
-                    }
-                }
-            }
-        } catch (Throwable ex) {
-            ex.printStackTrace();
-        }
-        return methodBrowseredName;
-    }
-
-    private static class TestsLogs {
-
-        public final List<LogItem> outs = new LinkedList<LogItem>();
-        public final List<LogItem> errs = new LinkedList<LogItem>();
-        public final List<LogItem> all = new LinkedList<LogItem>();
-        private static boolean added = false;
-
-        public synchronized void add(boolean err, boolean out, String text) {
-            if (text == null) {
-                text = "null";
-            }
-            LogItem li = new LogItem(text);
-            if (out) {
-                outs.add(li);
-            }
-            if (err) {
-                errs.add(li);
-            }
-            all.add(li);
-            if (!added) {
-                Runtime.getRuntime().addShutdownHook(new Thread() {
-
-                    @Override
-                    public void run() {
-                        try {
-                            writeXmlLog();
-                        } catch (Exception ex) {
-                            ex.printStackTrace();
-                        }
-                    }
-                });
-                added = true;
-            }
-        }
-
-        @Override
-        public String toString() {
-            StringBuilder sb = listToStringBuilder(outs, "out");
-            sb.append(listToStringBuilder(errs, "err"));
-            sb.append(listToStringBuilder(all, "all"));
-            return sb.toString();
-        }
-
-        private StringBuilder listToStringBuilder(List<LogItem> l, String id) {
-            StringBuilder sb = new StringBuilder();
-            sb.append("<" + LOG_ELEMENT + " " + LOG_ID_ATTRIBUTE + "=\"").append(id).append("\">\n");
-            int i = 0;
-            for (LogItem logItem : l) {
-                i++;
-                sb.append(logItem.toStringBuilder(i));
-            }
-            sb.append("</" + LOG_ELEMENT + ">\n");
-            return sb;
-        }
-    };
-
-    private static class LogItem {
-
-        public final Date timeStamp = new Date();
-        public final StackTraceElement[] fullTrace = Thread.currentThread().getStackTrace();
-        public final String text;
-
-        public LogItem(String text) {
-            this.text = text;
-        }
-
-        public StringBuilder toStringBuilder(int id) {
-            StringBuilder sb = new StringBuilder();
-            sb.append("  <" + ITEM_ELEMENT + " " + ITEM_ID_ATTRIBUTE + "=\"").append(id).append("\">\n");
-            sb.append("    <" + STAMP_ELEMENT + "><![CDATA[").append(timeStamp.toString()).append("]]></" + STAMP_ELEMENT + ">\n");
-            sb.append("    <" + TEXT_ELEMENT + "><![CDATA[\n").append(text).append("\n]]></" + TEXT_ELEMENT + ">\n");
-            sb.append("    <" + FULLTRACE_ELEMENT + "><![CDATA[\n");
-            //five methods since call in log methods + getStacktrace method
-            for (int i = 6; i < fullTrace.length; i++) {
-                sb.append(fullTrace[i].toString()).append("\n");
-            }
-            sb.append("\n]]>    </" + FULLTRACE_ELEMENT + ">\n");
-            sb.append("  </" + ITEM_ELEMENT + ">\n");
-            return sb;
-        }
-    }
-    /**
      * main method of this class prints out random free port
      * or runs server
      * param "port" prints out the port
@@ -485,18 +282,18 @@
     public void setCurrentBrowser(Browsers currentBrowser) {
         this.currentBrowser = BrowserFactory.getFactory().getBrowser(currentBrowser);
         if (this.currentBrowser == null) {
-            loggedBrowser = UNSET_BROWSER;
+           LoggingBottleneck.getDefaultLoggingBottleneck().setLoggedBrowser(UNSET_BROWSER);
         } else {
-            loggedBrowser = this.currentBrowser.getID().toString();
+            LoggingBottleneck.getDefaultLoggingBottleneck().setLoggedBrowser(this.currentBrowser.getID().toString());
         }
     }
 
     public void setCurrentBrowser(Browser currentBrowser) {
         this.currentBrowser = currentBrowser;
         if (this.currentBrowser == null) {
-            loggedBrowser = UNSET_BROWSER;
+            LoggingBottleneck.getDefaultLoggingBottleneck().setLoggedBrowser(UNSET_BROWSER);
         } else {
-            loggedBrowser = this.currentBrowser.getID().toString();
+            LoggingBottleneck.getDefaultLoggingBottleneck().setLoggedBrowser(this.currentBrowser.getID().toString());
         }
     }
 
@@ -510,121 +307,6 @@
         return new File(System.getProperty(JAVAWS_BUILD_BIN));
     }
 
-    @Test
-    public void testsProcessResultFiltering() throws Exception {
-        ProcessResult pn = new ProcessResult(null, null, null, true, 0, null);
-        Assert.assertNull(pn.notFilteredStdout);
-        Assert.assertNull(pn.stdout);
-        Assert.assertNull(pn.stderr);
-        String fakeOut2 =
-                "EMMA: processing instrumentation path ...\n"
-                + "EMMA: package [net.sourceforge.filebrowser] contains classes [ArrayOfString] without full debug info\n"
-                + "EMMA: instrumentation path processed in 1407 ms\n"
-                + "test stage 1\n"
-                + "test stage 2\n"
-                + "EMMA: The intruder!\n"
-                + "test stage 3\n"
-                + "EMMA: [45 class(es) instrumented, 13 resource(s) copied]\n"
-                + "EMMA: metadata merged into [icedtea-web/inc] {in 105 ms}\n"
-                + "EMMA: processing instrumentation path ...";
-        String filteredOut2 =
-                "test stage 1\n"
-                + "test stage 2\n"
-                + "test stage 3\n";
-        ProcessResult p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0, null);
-        Assert.assertEquals(p2.notFilteredStdout, fakeOut2);
-        Assert.assertEquals(p2.stdout, filteredOut2);
-        Assert.assertEquals(p2.stderr, fakeOut2);
-        fakeOut2+="\n";
-        p2 = new ProcessResult(fakeOut2, fakeOut2, null, true, 0, null);
-        Assert.assertEquals(p2.notFilteredStdout, fakeOut2);
-        Assert.assertEquals(p2.stdout, filteredOut2);
-        Assert.assertEquals(p2.stderr, fakeOut2);
-        String fakeOut =
-                "test string\n"
-                + "EMMA: processing instrumentation path ...\n"
-                + "EMMA: package [net.sourceforge.filebrowser] contains classes [ArrayOfString] without full debug info\n"
-                + "EMMA: instrumentation path processed in 1407 ms\n"
-                + "test stage 1\n"
-                + "test stage 2\n"
-                + "test stage 3\n"
-                + "EMMA: [45 class(es) instrumented, 13 resource(s) copied]\n"
-                + "EMMA: metadata merged into [icedtea-web/inc] {in 105 ms}\n"
-                + "EMMA: processing instrumentation path ...\n"
-                + "test ends";
-        String filteredOut =
-                "test string\n"
-                + "test stage 1\n"
-                + "test stage 2\n"
-                + "test stage 3\n"
-                + "test ends";
-        ProcessResult p = new ProcessResult(fakeOut, fakeOut, null, true, 0, null);
-        Assert.assertEquals(p.notFilteredStdout, fakeOut);
-        Assert.assertEquals(p.stdout, filteredOut);
-        Assert.assertEquals(p.stderr, fakeOut);
-        fakeOut+="\n";
-        filteredOut+="\n";
-        p = new ProcessResult(fakeOut, fakeOut, null, true, 0, null);
-        Assert.assertEquals(p.notFilteredStdout, fakeOut);
-        Assert.assertEquals(p.stdout, filteredOut);
-        Assert.assertEquals(p.stderr, fakeOut);
-    }
-
-    @Test
-    public void ensureJavaws() throws Exception {
-        String javawsValue = getJavawsLocation();
-        Assert.assertNotNull(javawsValue);
-        Assert.assertTrue(javawsValue.trim().length() > 2);
-        File javawsFile = getJavawsFile();
-        Assert.assertTrue(javawsFile.exists());
-        Assert.assertFalse(javawsFile.isDirectory());
-    }
-
-    @Test
-    public void ensureServer() throws Exception {
-
-        Assert.assertNotNull(server.getPort());
-        Assert.assertNotNull(server.getDir());
-        Assert.assertTrue(server.getPort() > 999);
-        Assert.assertTrue(server.getDir().toString().trim().length() > 2);
-
-        Assert.assertTrue(server.getDir().exists());
-        Assert.assertTrue(server.getDir().isDirectory());
-
-        File portFile = new File(server.getDir(), "server.port");
-        File dirFile = new File(server.getDir(), "server.dir");
-
-        saveFile(server.getDir().getAbsolutePath(), dirFile);
-        saveFile(server.getPort().toString(), portFile);
-        saveFile(server.getPort().toString(), portFile);
-
-        Assert.assertTrue(portFile.exists());
-        Assert.assertTrue(dirFile.exists());
-        Assert.assertTrue(server.getDir().listFiles().length > 1);
-
-        String portFileContent = getContentOfStream(new FileInputStream(portFile));
-        String dirFileContent = getContentOfStream(new FileInputStream(dirFile));
-
-        URL portUrl = new URL("http", "localhost", server.getPort(), "/server.port");
-        URL dirUrl = new URL("http", "localhost", server.getPort(), "/server.dir");
-
-        String portUrlContent = getContentOfStream(portUrl.openConnection().getInputStream());
-        String dirUrlContent = getContentOfStream(dirUrl.openConnection().getInputStream());
-
-        Assert.assertEquals(portUrlContent.trim(), portFileContent.trim());
-        Assert.assertEquals(dirUrlContent.trim(), dirFileContent.trim());
-        Assert.assertEquals(new File(dirUrlContent.trim()), server.getDir());
-        Assert.assertEquals(new Integer(portUrlContent.trim()), server.getPort());
-
-         URL fastUrl = new URL("http", "localhost", server.getPort(), "/simpletest1.jnlp");
-         URL slowUrl = new URL("http", "localhost", server.getPort(), "/XslowXsimpletest1.jnlp");
-
-        String fastUrlcontent = getContentOfStream(fastUrl.openConnection().getInputStream());
-        String slowUrlContent = getContentOfStream(slowUrl.openConnection().getInputStream());
-        Assert.assertEquals(fastUrlcontent, slowUrlContent);
-
-    }
-
     /**
      *
      * @return port on which is running cached server. If non singleton instance is running, new is created.
@@ -1012,7 +694,7 @@
         String idded;
         StackTraceElement ste = getTestMethod();
         String fullId = ste.getClassName() + "." + ste.getMethodName();
-        fullId = modifyMethodWithForBrowser(ste.getMethodName(), ste.getClassName());
+        fullId = LoggingBottleneck.getDefaultLoggingBottleneck().modifyMethodWithForBrowser(ste.getMethodName(), ste.getClassName());
         if (message.contains("\n")) {
             idded = fullId + ": \n" + message + "\n" + fullId + " ---";
         } else {
@@ -1027,22 +709,8 @@
                 System.err.println(idded);
             }
         }
-        try{
-        if (printToOut) {
-            DEFAULT_STDOUT_WRITER.write(idded);
-            DEFAULT_STDOUT_WRITER.newLine();
-        }
-        if (printToErr) {
-            DEFAULT_STDERR_WRITER.write(idded);
-            DEFAULT_STDERR_WRITER.newLine();
-        }
-        DEFAULT_STDLOGS_WRITER.write(idded);
-        DEFAULT_STDLOGS_WRITER.newLine();
-        }catch (Throwable t){
-            t.printStackTrace();
-        }
-
-        addToXmlLog(message,printToOut,printToErr,ste);
+        LoggingBottleneck.getDefaultLoggingBottleneck().logIntoPlaintextLog(idded, printToOut,printToErr);
+        LoggingBottleneck.getDefaultLoggingBottleneck().addToXmlLog(message,printToOut,printToErr,ste);
     }
 
     public static void logException(Throwable t){
@@ -1147,618 +815,14 @@
     }
 
     /**
-     *
-     * wrapper around Runtime.getRuntime().exec(...) which ensures that process is run inside its own, by us controlled, thread.
-     * Process builder caused some unexpected and weird behavior :/
+     * this is temprary solution until refactoring is fully done
+     * Use  net.sourceforge.jnlp.ProcessResult instead
      */
-    private static class ThreadedProcess extends Thread {
+    @Deprecated
+    public static class ProcessResult extends net.sourceforge.jnlp.ProcessResult {
 
-        Process p = null;
-        List<String> args;
-        Integer exitCode;
-        Boolean running;
-        File dir;
-        Throwable deadlyException = null;
-        /*
-         * before removing this "useless" variable
-         * check DeadLockTestTest.testDeadLockTestTerminated2
-         */
-        private boolean destoyed = false;
-
-        public boolean isDestoyed() {
-            return destoyed;
-        }
-
-        public void setDestoyed(boolean destoyed) {
-            this.destoyed = destoyed;
-        }
-
-        public Boolean isRunning() {
-            return running;
-        }
-
-        public Integer getExitCode() {
-            return exitCode;
-        }
-
-        public ThreadedProcess(List<String> args) {
-            this.args = args;
-        }
-         public ThreadedProcess(List<String> args,File dir) {
-            this.args = args;
-            this.dir=dir;
-        }
-
-        public String getCommandLine() {
-            String commandLine = "unknown command";
-            try {
-                if (args != null && args.size() > 0) {
-                    commandLine = "";
-                    for (String string : args) {
-                        commandLine = commandLine + " " + string;
-
-                    }
-                }
-            } catch (Exception ex) {
-                ex.printStackTrace();
-            } finally {
-                return commandLine;
-            }
-        }
-
-        public Process getP() {
-            return p;
-        }
-
-        @Override
-        public void run() {
-            try {
-                running = true;
-                Runtime r = Runtime.getRuntime();
-                if (dir==null){
-                    p = r.exec(args.toArray(new String[0]));
-                }else{
-                    p = r.exec(args.toArray(new String[0]),new String[0], dir);
-                }
-                try {
-                    exitCode = p.waitFor();
-                    Thread.sleep(500); //this is giving to fast done proecesses's e/o readers time to read all. I would like to know better solution :-/
-                } finally {
-                    destoyed = true;
-                }
-            } catch (Exception ex) {
-                if (ex instanceof InterruptedException) {
-                    //add to the set of terminated threaded processes
-                    deadlyException = ex;
-                    logException(deadlyException, false);
-                    terminated.add(this);
-                } else {
-                    //happens when non-existing process is launched, is causing p null!
-                    terminated.add(this);
-                    deadlyException = ex;
-                    logException(deadlyException, false);
-                    throw new RuntimeException(ex);
-                }
-            } finally {
-                running = false;
-            }
+        public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r, Throwable deadlyException) {
+            super(stdout, stderr, process, wasTerminated, r, deadlyException);
         }
     }
-
-    /**
-     * wrapper around tiny http server to separate lunch configurations and servers.
-     * to allow terminations and stuff around.
-     */
-    public static class ServerLauncher implements Runnable {
-
-        /**
-         * default url name part.
-         * This can be changed in runtime, but will affect all following tasks upon those server
-         */
-        private String serverName = DEFAULT_LOCALHOST_NAME;
-        private boolean running;
-        private final Integer port;
-        private final File dir;
-
-        public String getServerName() {
-            return serverName;
-        }
-
-        public void setServerName(String serverName) {
-            this.serverName = serverName;
-        }
-
-        public ServerLauncher(Integer port, File dir) {
-            this.port = port;
-            this.dir = dir;
-            System.err.println("port: " + port);
-            System.err.println("dir: " + dir);
-        }
-
-        public boolean isRunning() {
-            return running;
-        }
-
-        public Integer getPort() {
-            return port;
-        }
-
-        public File getDir() {
-            return dir;
-        }
-
-        public ServerLauncher(File dir) {
-            this(8181, dir);
-        }
-
-        public ServerLauncher(Integer port) {
-
-            this(port, new File(System.getProperty("user.dir")));
-        }
-
-        public ServerLauncher() {
-            this(8181, new File(System.getProperty("user.dir")));
-
-        }
-
-        public void run() {
-            running = true;
-            try {
-                ServerSocket s = new ServerSocket(
-                        port);
-                while (running) {
-                    new TinyHttpdImpl(s.accept(), dir, port);
-                }
-            } catch (Exception e) {
-                e.printStackTrace();
-            } finally {
-                running = false;
-            }
-
-        }
-
-        public URL getUrl(String resource) throws MalformedURLException {
-            return new URL("http", getServerName(), getPort(), resource);
-        }
-
-        public URL getUrl() throws MalformedURLException {
-            return getUrl("");
-        }
-
-        /**
-         * based on http://www.mcwalter.org/technology/java/httpd/tiny/index.html
-         * Very small implementation of http return headers for our served resources
-         *
-         * When resource starts with XslowX prefix, then resouce (without XslowX)
-         * is returned, but its delivery is delayed
-         */
-        private class TinyHttpdImpl extends Thread {
-
-            Socket c;
-            private final File dir;
-            private final int port;
-            private boolean canRun = true;
-            private static final String XSX="/XslowX";
-
-            public void setCanRun(boolean canRun) {
-                this.canRun = canRun;
-            }
-
-            public TinyHttpdImpl(Socket s, File f, int port) {
-                c = s;
-                this.dir = f;
-                this.port = port;
-                start();
-            }
-
-            public int getPort() {
-                return port;
-            }
-
-            @Override
-            public void run() {
-                try {
-                    BufferedReader i = new BufferedReader(new InputStreamReader(c.getInputStream()));
-                    DataOutputStream o = new DataOutputStream(c.getOutputStream());
-                    try {
-                        while (canRun) {
-                            String s = i.readLine();
-                            if (s.length() < 1) {
-                                break;
-                            }
-                            if (s.startsWith("GET")) {
-                                StringTokenizer t = new StringTokenizer(s, " ");
-                                t.nextToken();
-                                String op = t.nextToken();
-                                String p = op;
-                                if (p.startsWith(XSX))p=p.replace(XSX, "/");
-                                logNoReprint("Getting: "+p);
-                                p=URLDecoder.decode(p, "UTF-8");
-                                logNoReprint("Serving: "+p);
-                                p = (".".concat(((p.endsWith("/")) ? p.concat(
-                                        "index.html") : p))).replace('/', File.separatorChar);
-                                File pp = new File(dir, p);
-                                int l = (int) pp.length();
-                                byte[] b = new byte[l];
-                                FileInputStream f = new FileInputStream(pp);
-                                f.read(b);
-                                String content = "";
-                                String ct = "Content-Type: ";
-                                if (p.toLowerCase().endsWith(".jnlp")) {
-                                    content = ct + "application/x-java-jnlp-file\n";
-                                } else if (p.toLowerCase().endsWith(".html")) {
-                                    content = ct + "text/html\n";
-                                } else if (p.toLowerCase().endsWith(".jar")) {
-                                    content = ct + "application/x-jar\n";
-                                }
-                                o.writeBytes("HTTP/1.0 200 OK\nConten"
-                                        + "t-Length:" + l + "\n" + content + "\n");
-                                if (op.startsWith(XSX)){
-                                    byte[][] bb=ServerAccess.splitArray(b,10);
-                                    for (int j = 0; j < bb.length; j++) {
-                                        Thread.sleep(2000);
-                                        byte[] bs = bb[j];
-                                        o.write(bs, 0, bs.length);
-                                    }
-                                }else{
-                                o.write(b, 0, l);
-                                }
-                            }
-                        }
-                    }catch (SocketException e) {
-                        logException(e, false);
-                    } catch (Exception e) {
-                        o.writeBytes("HTTP/1.0 404 ERROR\n\n\n");
-                        logException(e, false);
-                    }
-                    o.close();
-                } catch (Exception e) {
-                    logException(e, false);
-                }
-            }
-        }
     }
-
-
-    /**
-     * This function splits input array to severasl pieces
-     * from byte[length] splitt to n pieces s is retrunrd byte[n][length/n], except
-     * last piece which contains length%n
-     *
-     * @param input - array to be splitted
-     * @param pieces - to how many pieces it should be broken
-     * @return inidividual pices of original array, which concatet again givs original array
-     */
-  public static byte[][] splitArray(byte[] input, int pieces) {
-        int rest = input.length;
-        int rowLength = rest / pieces;
-        if (rest % pieces > 0) rowLength++;
-        if (pieces * rowLength >= rest + rowLength) pieces--;
-        int i = 0, j = 0;
-        byte[][] array = new byte[pieces][];
-        array[0] = new byte[rowLength];
-        for (byte b : input) {
-            if (i >= rowLength) {
-                i = 0;
-                array[++j] = new byte[Math.min(rowLength, rest)];
-            }
-            array[j][i++] = b;
-            rest--;
-        }
-        return array;
-    }
-
-
-     @Test
-    public void splitArrayTest0() throws Exception {
-         byte[] b={1,2,3,4,5,6,7,8,9,10,11,12,13,14};
-         byte[][] bb=splitArray(b, 3);
-        //printArrays(bb);
-        byte[] b1={1,2,3,4,5};
-        byte[] b2={6,7,8,9,10};
-        byte[] b3={11,12,13,14};
-        Assert.assertEquals(3,bb.length);
-        Assert.assertArrayEquals(b1,bb[0]);
-        Assert.assertArrayEquals(b2,bb[1]);
-        Assert.assertArrayEquals(b3,bb[2]);
-     }
-
-     @Test
-    public void splitArrayTest1() throws Exception {
-         byte[] b={1,2,3,4,5,6,7,8,9,10,11,12,13};
-         byte[][] bb=splitArray(b, 3);
-        //printArrays(bb);
-         byte[] b1={1,2,3,4,5};
-        byte[] b2={6,7,8,9,10};
-        byte[] b3={11,12,13};
-        Assert.assertEquals(3,bb.length);
-        Assert.assertArrayEquals(b1,bb[0]);
-        Assert.assertArrayEquals(b2,bb[1]);
-        Assert.assertArrayEquals(b3,bb[2]);
-     }
-
-      @Test
-    public void splitArrayTest2() throws Exception {
-         byte[] b={1,2,3,4,5,6,7,8,9,10,11,12};
-         byte[][] bb=splitArray(b, 3);
-        //printArrays(bb);
-        byte[] b1={1,2,3,4};
-        byte[] b2={5,6,7,8};
-        byte[] b3={9,10,11,12};
-        Assert.assertEquals(3,bb.length);
-        Assert.assertArrayEquals(b1,bb[0]);
-        Assert.assertArrayEquals(b2,bb[1]);
-        Assert.assertArrayEquals(b3,bb[2]);
-     }
-
-    private void printArrays(byte[][] bb) {
-        System.out.println("[][] l=" + bb.length);
-        for (int i = 0; i < bb.length; i++) {
-            byte[] bs = bb[i];
-            System.out.println(i + ": l=" + bs.length);
-            for (int j = 0; j < bs.length; j++) {
-                byte c = bs[j];
-                System.out.print(" " + j + ":" + c + " ");
-            }
-            System.out.println("");
-        }
-    }
-
-
-    /**
-     * class which timeout any ThreadedProcess. This killing of 'thread with process' replaced not working process.destroy().
-     */
-    private static class ProcessAssasin extends Thread {
-
-        long timeout;
-        private final ThreadedProcess p;
-        //false == is disabled:(
-        private boolean canRun = true;
-        private boolean wasTerminated = false;
-        /**
-         * if this is true, then process is not destroyed after timeout, but just left to its own destiny.
-         * Its stdout/err is no longer recorded, and it is leaking system resources until it dies by itself
-         * The contorl is returned to main thread with all informations recorded  untill now.
-         * You will be able to listen to std out from listeners still
-         */
-        private boolean skipInstedOfDesroy = false;
-
-        /**
-         *
-         * @param p
-         * @param timeout - time to die in milliseconds
-         */
-        public ProcessAssasin(ThreadedProcess p, long timeout) {
-            this.p = (p);
-            this.timeout = timeout;
-
-
-        }
-
-        public ProcessAssasin(ThreadedProcess p, long timeout, boolean skipInstedOfDesroy) {
-            this.p = (p);
-            this.timeout = timeout;
-            this.skipInstedOfDesroy = skipInstedOfDesroy;
-
-
-        }
-
-        public void setCanRun(boolean canRun) {
-            this.canRun = canRun;
-            if (p != null) {
-                if (p.getP() != null) {
-                    logNoReprint("Stopping assassin for" + p.toString() + " " + p.getP().toString() + " " + p.getCommandLine() + ": ");
-                } else {
-                    logNoReprint("Stopping assassin for" + p.toString() + " " + p.getCommandLine() + ": ");
-                }
-            } else {
-                logNoReprint("Stopping assassin for null job: ");
-            }
-        }
-
-        public boolean isCanRun() {
-            return canRun;
-        }
-
-        public boolean wasTerminated() {
-            return wasTerminated;
-        }
-
-        public void setSkipInstedOfDesroy(boolean skipInstedOfDesroy) {
-            this.skipInstedOfDesroy = skipInstedOfDesroy;
-        }
-
-        public boolean isSkipInstedOfDesroy() {
-            return skipInstedOfDesroy;
-        }
-
-        @Override
-        public void run() {
-
-            long startTime = System.nanoTime() / NANO_TIME_DELIMITER;
-            while (canRun) {
-                try {
-
-                    long time = System.nanoTime() / NANO_TIME_DELIMITER;
-                    //ServerAccess.logOutputReprint(time - startTime);
-                    //ServerAccess.logOutputReprint((time - startTime) > timeout);
-                    if ((time - startTime) > timeout) {
-                        try {
-                            if (p != null) {
-                                if (p.getP() != null) {
-                                    logErrorReprint("Timed out " + p.toString() + " " + p.getP().toString() + " .. killing " + p.getCommandLine() + ": ");
-                                } else {
-                                    logErrorReprint("Timed out " + p.toString() + " " + "null  .. killing " + p.getCommandLine() + ": ");
-                                }
-                                wasTerminated = true;
-                                p.interrupt();
-                                while (!terminated.contains(p)) {
-                                    Thread.sleep(100);
-                                }
-                                if (p.getP() != null) {
-                                    try {
-                                        if (!skipInstedOfDesroy) {
-                                            p.getP().destroy();
-                                        }
-                                    } catch (Throwable ex) {
-                                        if (p.deadlyException == null) {
-                                            p.deadlyException = ex;
-                                        }
-                                        ex.printStackTrace();
-                                    }
-                                }
-                                if (p.getP() != null) {
-                                    logErrorReprint("Timed out " + p.toString() + " " + p.getP().toString() + " .. killed " + p.getCommandLine());
-                                } else {
-                                    logErrorReprint("Timed out " + p.toString() + " null  .. killed " + p.getCommandLine());
-                                }
-                            } else {
-                                logErrorReprint("Timed out null job");
-                            }
-                            break;
-                        } finally {
-                            p.setDestoyed(true);
-                        }
-
-
-                    }
-                    Thread.sleep(100);
-                } catch (Exception ex) {
-                    ex.printStackTrace();
-                }
-            }
-            if (p != null) {
-                if (p.getP() != null) {
-                    logNoReprint("assassin for" + p.toString() + " " + p.getP().toString() + " .. done " + p.getCommandLine() + "  termination " + wasTerminated);
-                } else {
-                    logNoReprint("assassin for" + p.toString() + " null .. done " + p.getCommandLine() + "  termination " + wasTerminated);
-                }
-            } else {
-                logNoReprint("assassin for non existing job  termination " + wasTerminated);
-            }
-        }
-    }
-
-    /**
-     * artefacts what are left by finished process
-     */
-    public static class ProcessResult {
-
-        public final String stdout;
-        public final String notFilteredStdout;
-        public final String stderr;
-        public final Process process;
-        public final Integer returnValue;
-        public final boolean wasTerminated;
-        /*
-         * possible exception which caused Process not to be launched
-         */
-        public final Throwable deadlyException;
-
-        public ProcessResult(String stdout, String stderr, Process process, boolean wasTerminated, Integer r, Throwable deadlyException) {
-            this.notFilteredStdout = stdout;
-            if (stdout == null) {
-                this.stdout = null;
-            } else {
-                this.stdout = stdout.replaceAll("EMMA:.*\n?", "");
-            }
-            this.stderr = stderr;
-            this.process = process;
-            this.wasTerminated = wasTerminated;
-            this.returnValue = r;
-            this.deadlyException = deadlyException;
-        }
-    }
-
-    /**
-     * Class to read content of stdout/stderr of process, and to cooperate with its running/terminated/finished statuses.
-     */
-    private static class ContentReader implements Runnable {
-
-        StringBuilder sb = new StringBuilder();
-        private final InputStream is;
-        private boolean done;
-        ContentReaderListener listener;
-
-        public String getContent() {
-            return sb.toString();
-        }
-
-        public ContentReader(InputStream is) throws IOException {
-            this.is = is;
-        }
-        public ContentReader(InputStream is,ContentReaderListener l) throws IOException {
-            this.is = is;
-            this.listener=l;
-        }
-
-        public void setListener(ContentReaderListener listener) {
-            this.listener = listener;
-        }
-
-        public ContentReaderListener getListener() {
-            return listener;
-        }
-
-
-        /**
-         * Blocks until the copy is complete, or until the thread is interrupted
-         */
-        public synchronized void waitUntilDone() throws InterruptedException {
-            boolean interrupted = false;
-
-            // poll interrupted flag, while waiting for copy to complete
-            while (!(interrupted = Thread.interrupted()) && !done) {
-                wait(1000);
-            }
-
-            if (interrupted) {
-                logNoReprint("Stream copier: throwing InterruptedException");
-                //throw new InterruptedException();
-            }
-        }
-
-        @Override
-        public void run() {
-            try {
-                Reader br = new InputStreamReader(is, "UTF-8");
-                StringBuilder line = new StringBuilder();
-                while (true) {
-                    int s = br.read();
-                    if (s < 0) {
-                        if (line.length() > 0 && listener != null) {
-                            listener.lineReaded(line.toString());
-                        }
-                        break;
-                    }
-                    char ch = ((char) s);
-                    sb.append(ch);
-                    line.append(ch);
-                    if (ch == '\n') {
-                        if (listener != null) {
-                            listener.lineReaded(line.toString());
-                        }
-                        line = new StringBuilder();
-                    }
-                    if (listener != null) {
-                        listener.charReaded(ch);
-                    }
-
-                }
-                //do not want to bother output with terminations
-                //mostly compaling when assassin kill the process about StreamClosed
-            } catch (Exception ex) {
-                // logException(ex);
-            } finally {
-                try {
-                    is.close();
-                } catch (Exception ex) {
-                    // ex.printStackTrace();
-                } finally {
-                    done = true;
-                }
-            }
-
-        }
-    }
-}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java b/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java
@@ -0,0 +1,120 @@
+/* ServerLauncher.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.ServerSocket;
+import java.net.URL;
+
+/**
+ * wrapper around tiny http server to separate lunch configurations and servers.
+ * to allow terminations and stuff around.
+ */
+public class ServerLauncher implements Runnable {
+
+    /**
+     * default url name part.
+     * This can be changed in runtime, but will affect all following tasks upon those server
+     */
+    private String serverName = ServerAccess.DEFAULT_LOCALHOST_NAME;
+    private boolean running;
+    private final Integer port;
+    private final File dir;
+
+    public String getServerName() {
+        return serverName;
+    }
+
+    public void setServerName(String serverName) {
+        this.serverName = serverName;
+    }
+
+    public ServerLauncher(Integer port, File dir) {
+        this.port = port;
+        this.dir = dir;
+        System.err.println("port: " + port);
+        System.err.println("dir: " + dir);
+    }
+
+    public boolean isRunning() {
+        return running;
+    }
+
+    public Integer getPort() {
+        return port;
+    }
+
+    public File getDir() {
+        return dir;
+    }
+
+    public ServerLauncher(File dir) {
+        this(8181, dir);
+    }
+
+    public ServerLauncher(Integer port) {
+        this(port, new File(System.getProperty("user.dir")));
+    }
+
+    public ServerLauncher() {
+        this(8181, new File(System.getProperty("user.dir")));
+    }
+
+    public void run() {
+        running = true;
+        try {
+            ServerSocket s = new ServerSocket(port);
+            while (running) {
+                new TinyHttpdImpl(s.accept(), dir, port);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            running = false;
+        }
+    }
+
+    public URL getUrl(String resource) throws MalformedURLException {
+        return new URL("http", getServerName(), getPort(), resource);
+    }
+
+    public URL getUrl() throws MalformedURLException {
+        return getUrl("");
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java b/tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java
@@ -0,0 +1,85 @@
+/* TestsLogs.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.util.LinkedList;
+import java.util.List;
+
+class TestsLogs {
+
+    public final List<LogItem> outs = new LinkedList<LogItem>();
+    public final List<LogItem> errs = new LinkedList<LogItem>();
+    public final List<LogItem> all = new LinkedList<LogItem>();
+    private static final String LOG_ELEMENT = "log";
+    private static final String LOG_ID_ATTRIBUTE = "id";
+
+    synchronized void add(boolean err, boolean out, String text) {
+        if (text == null) {
+            text = "null";
+        }
+        LogItem li = new LogItem(text);
+        if (out) {
+            outs.add(li);
+        }
+        if (err) {
+            errs.add(li);
+        }
+        all.add(li);
+
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = listToStringBuilder(outs, "out");
+        sb.append(listToStringBuilder(errs, "err"));
+        sb.append(listToStringBuilder(all, "all"));
+        return sb.toString();
+    }
+
+    private StringBuilder listToStringBuilder(List<LogItem> l, String id) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("<" + LOG_ELEMENT + " " + LOG_ID_ATTRIBUTE + "=\"").append(id).append("\">\n");
+        int i = 0;
+        for (LogItem logItem : l) {
+            i++;
+            sb.append(logItem.toStringBuilder(i));
+        }
+        sb.append("</" + LOG_ELEMENT + ">\n");
+        return sb;
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java b/tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java
@@ -0,0 +1,140 @@
+/* ThreadedProcess.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.io.File;
+import java.util.List;
+
+/**
+ *
+ * wrapper around Runtime.getRuntime().exec(...) which ensures that process is run inside its own, by us controlled, thread.
+ * Process builder caused some unexpected and weird behavior :/
+ */
+class ThreadedProcess extends Thread {
+
+    Process p = null;
+    List<String> args;
+    Integer exitCode;
+    Boolean running;
+    File dir;
+    Throwable deadlyException = null;
+    /*
+     * before removing this "useless" variable
+     * check DeadLockTestTest.testDeadLockTestTerminated2
+     */
+    private boolean destoyed = false;
+
+    public boolean isDestoyed() {
+        return destoyed;
+    }
+
+    public void setDestoyed(boolean destoyed) {
+        this.destoyed = destoyed;
+    }
+
+    public Boolean isRunning() {
+        return running;
+    }
+
+    public Integer getExitCode() {
+        return exitCode;
+    }
+
+    public ThreadedProcess(List<String> args) {
+        this.args = args;
+    }
+
+    public ThreadedProcess(List<String> args, File dir) {
+        this.args = args;
+        this.dir = dir;
+    }
+
+    public String getCommandLine() {
+        String commandLine = "unknown command";
+        try {
+            if (args != null && args.size() > 0) {
+                commandLine = "";
+                for (String string : args) {
+                    commandLine = commandLine + " " + string;
+                }
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        } finally {
+            return commandLine;
+        }
+    }
+
+    public Process getP() {
+        return p;
+    }
+
+    @Override
+    public void run() {
+        try {
+            running = true;
+            Runtime r = Runtime.getRuntime();
+            if (dir == null) {
+                p = r.exec(args.toArray(new String[0]));
+            } else {
+                p = r.exec(args.toArray(new String[0]), new String[0], dir);
+            }
+            try {
+                exitCode = p.waitFor();
+                Thread.sleep(500); //this is giving to fast done proecesses's e/o readers time to read all. I would like to know better solution :-/
+            } finally {
+                destoyed = true;
+            }
+        } catch (Exception ex) {
+            if (ex instanceof InterruptedException) {
+                //add to the set of terminated threaded processes
+                deadlyException = ex;
+                ServerAccess.logException(deadlyException, false);
+                ServerAccess.terminated.add(this);
+            } else {
+                //happens when non-existing process is launched, is causing p null!
+                ServerAccess.terminated.add(this);
+                deadlyException = ex;
+                ServerAccess.logException(deadlyException, false);
+                throw new RuntimeException(ex);
+            }
+        } finally {
+            running = false;
+        }
+    }
+}
diff --git a/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java b/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java
new file mode 100644
--- /dev/null
+++ b/tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java
@@ -0,0 +1,174 @@
+/* TinyHttpdImpl.java
+Copyright (C) 2011,2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+package net.sourceforge.jnlp;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.URLDecoder;
+import java.util.StringTokenizer;
+
+/**
+ * based on http://www.mcwalter.org/technology/java/httpd/tiny/index.html
+ * Very small implementation of http return headers for our served resources
+ * Originally Licenced under GPLv2.0 
+ *
+ * When resource starts with XslowX prefix, then resouce (without XslowX)
+ * is returned, but its delivery is delayed
+ */
+class TinyHttpdImpl extends Thread {
+
+    Socket c;
+    private final File dir;
+    private final int port;
+    private boolean canRun = true;
+    private static final String XSX = "/XslowX";
+
+    public TinyHttpdImpl(Socket s, File f, int port) {
+        c = s;
+        this.dir = f;
+        this.port = port;
+        start();
+    }
+
+    public void setCanRun(boolean canRun) {
+        this.canRun = canRun;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    @Override
+    public void run() {
+        try {
+            BufferedReader i = new BufferedReader(new InputStreamReader(c.getInputStream()));
+            DataOutputStream o = new DataOutputStream(c.getOutputStream());
+            try {
+                while (canRun) {
+                    String s = i.readLine();
+                    if (s.length() < 1) {
+                        break;
+                    }
+                    if (s.startsWith("GET")) {
+                        StringTokenizer t = new StringTokenizer(s, " ");
+                        t.nextToken();
+                        String op = t.nextToken();
+                        String p = op;
+                        if (p.startsWith(XSX)) {
+                            p = p.replace(XSX, "/");
+                        }
+                        ServerAccess.logNoReprint("Getting: " + p);
+                        p = URLDecoder.decode(p, "UTF-8");
+                        ServerAccess.logNoReprint("Serving: " + p);
+                        p = (".".concat((p.endsWith("/")) ? p.concat("index.html") : p)).replace('/', File.separatorChar);
+                        File pp = new File(dir, p);
+                        int l = (int) pp.length();
+                        byte[] b = new byte[l];
+                        FileInputStream f = new FileInputStream(pp);
+                        f.read(b);
+                        String content = "";
+                        String ct = "Content-Type: ";
+                        if (p.toLowerCase().endsWith(".jnlp")) {
+                            content = ct + "application/x-java-jnlp-file\n";
+                        } else if (p.toLowerCase().endsWith(".html")) {
+                            content = ct + "text/html\n";
+                        } else if (p.toLowerCase().endsWith(".jar")) {
+                            content = ct + "application/x-jar\n";
+                        }
+                        o.writeBytes("HTTP/1.0 200 OK\nConten" + "t-Length:" + l + "\n" + content + "\n");
+                        if (op.startsWith(XSX)) {
+                            byte[][] bb = splitArray(b, 10);
+                            for (int j = 0; j < bb.length; j++) {
+                                Thread.sleep(2000);
+                                byte[] bs = bb[j];
+                                o.write(bs, 0, bs.length);
+                            }
+                        } else {
+                            o.write(b, 0, l);
+                        }
+                    }
+                }
+            } catch (SocketException e) {
+                ServerAccess.logException(e, false);
+            } catch (Exception e) {
+                o.writeBytes("HTTP/1.0 404 ERROR\n\n\n");
+                ServerAccess.logException(e, false);
+            }
+            o.close();
+        } catch (Exception e) {
+            ServerAccess.logException(e, false);
+        }
+    }
+
+    /**
+     * This function splits input array to severasl pieces
+     * from byte[length] splitt to n pieces s is retrunrd byte[n][length/n], except
+     * last piece which contains length%n
+     *
+     * @param input - array to be splitted
+     * @param pieces - to how many pieces it should be broken
+     * @return inidividual pices of original array, which concatet again givs original array
+     */
+    public static byte[][] splitArray(byte[] input, int pieces) {
+        int rest = input.length;
+        int rowLength = rest / pieces;
+        if (rest % pieces > 0) {
+            rowLength++;
+        }
+        if (pieces * rowLength >= rest + rowLength) {
+            pieces--;
+        }
+        int i = 0, j = 0;
+        byte[][] array = new byte[pieces][];
+        array[0] = new byte[rowLength];
+        for (byte b : input) {
+            if (i >= rowLength) {
+                i = 0;
+                array[++j] = new byte[Math.min(rowLength, rest)];
+            }
+            array[j][i++] = b;
+            rest--;
+        }
+        return array;
+    }
+}
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340961674 -7200
# Node ID 8102368fa76cd11f5855ee5cb4942876f177ea95
# Parent  8f7e65f53eb6d2c87196e2431c98e96864f8b8e6
hg move tests/jnlp_tests/ tests/reproducers

diff --git a/tests/jnlp_tests/README b/tests/reproducers/README
rename from tests/jnlp_tests/README
rename to tests/reproducers/README
diff --git a/tests/jnlp_tests/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html b/tests/reproducers/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html
rename from tests/jnlp_tests/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html
rename to tests/reproducers/custom/AppletFolderInArchiveTag/resources/AppletFolderInArchiveTag.html
diff --git a/tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java b/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java
rename from tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java
rename to tests/reproducers/custom/AppletFolderInArchiveTag/srcs/AppletFolderInArchiveTag.java
diff --git a/tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/Makefile b/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile
rename from tests/jnlp_tests/custom/AppletFolderInArchiveTag/srcs/Makefile
rename to tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile
diff --git a/tests/jnlp_tests/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java b/tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java
rename from tests/jnlp_tests/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java
rename to tests/reproducers/custom/AppletFolderInArchiveTag/testcases/AppletFolderInArchiveTagTests.java
diff --git a/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp b/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp
rename from tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp
rename to tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedJAVAXJNLP.jnlp
diff --git a/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp b/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp
rename from tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp
rename to tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedNETSF.jnlp
diff --git a/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp b/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp
rename from tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp
rename to tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSELF.jnlp
diff --git a/tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp b/tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp
rename from tests/jnlp_tests/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp
rename to tests/reproducers/signed/AccessClassInPackageSigned/resources/AccessClassInPackageSignedSUNSEC.jnlp
diff --git a/tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java b/tests/reproducers/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java
rename from tests/jnlp_tests/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java
rename to tests/reproducers/signed/AccessClassInPackageSigned/srcs/AccessClassInPackageSigned.java
diff --git a/tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.html b/tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.html
rename from tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.html
rename to tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.html
diff --git a/tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.jnlp b/tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.jnlp
rename from tests/jnlp_tests/signed/AppletTestSigned/resources/AppletTestSigned.jnlp
rename to tests/reproducers/signed/AppletTestSigned/resources/AppletTestSigned.jnlp
diff --git a/tests/jnlp_tests/signed/AppletTestSigned/srcs/AppletTestSigned.java b/tests/reproducers/signed/AppletTestSigned/srcs/AppletTestSigned.java
rename from tests/jnlp_tests/signed/AppletTestSigned/srcs/AppletTestSigned.java
rename to tests/reproducers/signed/AppletTestSigned/srcs/AppletTestSigned.java
diff --git a/tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java b/tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java
rename from tests/jnlp_tests/signed/AppletTestSigned/testcases/AppletTestSignedTests.java
rename to tests/reproducers/signed/AppletTestSigned/testcases/AppletTestSignedTests.java
diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp b/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1.jnlp
rename from tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1.jnlp
rename to tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1.jnlp
diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp b/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp
rename from tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp
rename to tests/reproducers/signed/CacheReproducer/resources/CacheReproducer1_1.jnlp
diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp b/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2.jnlp
rename from tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2.jnlp
rename to tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2.jnlp
diff --git a/tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp b/tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp
rename from tests/jnlp_tests/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp
rename to tests/reproducers/signed/CacheReproducer/resources/CacheReproducer2_1.jnlp
diff --git a/tests/jnlp_tests/signed/CacheReproducer/srcs/CacheReproducer.java b/tests/reproducers/signed/CacheReproducer/srcs/CacheReproducer.java
rename from tests/jnlp_tests/signed/CacheReproducer/srcs/CacheReproducer.java
rename to tests/reproducers/signed/CacheReproducer/srcs/CacheReproducer.java
diff --git a/tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java b/tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
rename from tests/jnlp_tests/signed/CacheReproducer/testcases/CacheReproducerTest.java
rename to tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-hack.jnlp
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-applet-new.jnlp
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.html
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-hack.jnlp
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.html
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/resources/InternalClassloaderWithDownloadedResource-new.jnlp
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/srcs/InternalClassloaderWithDownloadedResource.java
diff --git a/tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java b/tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java
rename from tests/jnlp_tests/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java
rename to tests/reproducers/signed/InternalClassloaderWithDownloadedResource/testcases/InternalClassloaderWithDownloadedResourceTest.java
diff --git a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp b/tests/reproducers/signed/MissingJar/resources/MissingJar.jnlp
rename from tests/jnlp_tests/signed/MissingJar/resources/MissingJar.jnlp
rename to tests/reproducers/signed/MissingJar/resources/MissingJar.jnlp
diff --git a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp b/tests/reproducers/signed/MissingJar/resources/MissingJar2.jnlp
rename from tests/jnlp_tests/signed/MissingJar/resources/MissingJar2.jnlp
rename to tests/reproducers/signed/MissingJar/resources/MissingJar2.jnlp
diff --git a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp b/tests/reproducers/signed/MissingJar/resources/MissingJar3.jnlp
rename from tests/jnlp_tests/signed/MissingJar/resources/MissingJar3.jnlp
rename to tests/reproducers/signed/MissingJar/resources/MissingJar3.jnlp
diff --git a/tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp b/tests/reproducers/signed/MissingJar/resources/MissingJar4.jnlp
rename from tests/jnlp_tests/signed/MissingJar/resources/MissingJar4.jnlp
rename to tests/reproducers/signed/MissingJar/resources/MissingJar4.jnlp
diff --git a/tests/jnlp_tests/signed/MissingJar/srcs/MissingJar.java b/tests/reproducers/signed/MissingJar/srcs/MissingJar.java
rename from tests/jnlp_tests/signed/MissingJar/srcs/MissingJar.java
rename to tests/reproducers/signed/MissingJar/srcs/MissingJar.java
diff --git a/tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java b/tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java
rename from tests/jnlp_tests/signed/MissingJar/testcases/MissingJarTest.java
rename to tests/reproducers/signed/MissingJar/testcases/MissingJarTest.java
diff --git a/tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp b/tests/reproducers/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp
rename from tests/jnlp_tests/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp
rename to tests/reproducers/signed/ReadPropertiesBySignedHack/resources/ReadPropertiesBySignedHack.jnlp
diff --git a/tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java b/tests/reproducers/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java
rename from tests/jnlp_tests/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java
rename to tests/reproducers/signed/ReadPropertiesBySignedHack/srcs/ReadPropertiesBySignedHack.java
diff --git a/tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java b/tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java
rename from tests/jnlp_tests/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java
rename to tests/reproducers/signed/ReadPropertiesBySignedHack/testcases/ReadPropertiesBySignedHackTest.java
diff --git a/tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp b/tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp
rename from tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp
rename to tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned1.jnlp
diff --git a/tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp b/tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp
rename from tests/jnlp_tests/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp
rename to tests/reproducers/signed/ReadPropertiesSigned/resources/ReadPropertiesSigned2.jnlp
diff --git a/tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java b/tests/reproducers/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java
rename from tests/jnlp_tests/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java
rename to tests/reproducers/signed/ReadPropertiesSigned/srcs/ReadPropertiesSigned.java
diff --git a/tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java b/tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java
rename from tests/jnlp_tests/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java
rename to tests/reproducers/signed/ReadPropertiesSigned/testcases/ReadPropertiesSignedTest.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp b/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp
rename to tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication1.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp b/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp
rename to tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication2.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp b/tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp
rename to tests/reproducers/signed/SignedJnlpApplication/resources/SignedJnlpApplication3.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp b/tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
rename to tests/reproducers/signed/SignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java b/tests/reproducers/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java
rename from tests/jnlp_tests/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java
rename to tests/reproducers/signed/SignedJnlpApplication/srcs/SignedJnlpApplication.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java b/tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java
rename from tests/jnlp_tests/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java
rename to tests/reproducers/signed/SignedJnlpApplication/testcases/SignedJnlpApplicationTest.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne1.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestOne/resources/SignedJnlpCaseTestOne2.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/JNLP-INF/aPpLiCaTioN.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java b/tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java
rename to tests/reproducers/signed/SignedJnlpCaseTestOne/srcs/SignedJnlpCase.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java b/tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java
rename to tests/reproducers/signed/SignedJnlpCaseTestOne/testcases/SignedJnlpCaseOneTest.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo1.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestTwo/resources/SignedJnlpCaseTestTwo2.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp b/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp
rename to tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/JNLP-INF/aPpLiCaTiOn_tEmPlAte.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java b/tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java
rename to tests/reproducers/signed/SignedJnlpCaseTestTwo/srcs/SignedJnlpCase.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java b/tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java
rename from tests/jnlp_tests/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java
rename to tests/reproducers/signed/SignedJnlpCaseTestTwo/testcases/SignedJnlpCaseTwoTest.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp b/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp
rename to tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate1.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp b/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp
rename to tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate2.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp b/tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp
rename to tests/reproducers/signed/SignedJnlpTemplate/resources/SignedJnlpTemplate3.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp b/tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
rename to tests/reproducers/signed/SignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java b/tests/reproducers/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java
rename to tests/reproducers/signed/SignedJnlpTemplate/srcs/SignedJnlpTemplate.java
diff --git a/tests/jnlp_tests/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java b/tests/reproducers/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java
rename from tests/jnlp_tests/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java
rename to tests/reproducers/signed/SignedJnlpTemplate/testcases/SignedJnlpTemplateTest.java
diff --git a/tests/jnlp_tests/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp b/tests/reproducers/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp
rename from tests/jnlp_tests/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp
rename to tests/reproducers/signed/SimpletestSigned1/resources/SimpletestSigned1.jnlp
diff --git a/tests/jnlp_tests/signed/SimpletestSigned1/srcs/SimpletestSigned1.java b/tests/reproducers/signed/SimpletestSigned1/srcs/SimpletestSigned1.java
rename from tests/jnlp_tests/signed/SimpletestSigned1/srcs/SimpletestSigned1.java
rename to tests/reproducers/signed/SimpletestSigned1/srcs/SimpletestSigned1.java
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/NotOnly spaces can kill ěščřž too signed.jnlp b/tests/reproducers/signed/Spaces can be everywhere signed/resources/NotOnly spaces can kill ěščřž too signed.jnlp
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/NotOnly spaces can kill ěščřž too signed.jnlp
rename to tests/reproducers/signed/Spaces can be everywhere signed/resources/NotOnly spaces can kill ěščřž too signed.jnlp
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp b/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp
rename to tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere1 signed.jnlp
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp b/tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp
rename to tests/reproducers/signed/Spaces can be everywhere signed/resources/Spaces can be everywhere2 signed.jnlp
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp b/tests/reproducers/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp
rename to tests/reproducers/signed/Spaces can be everywhere signed/resources/SpacesCanBeEverywhere1signed.jnlp
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html b/tests/reproducers/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html
rename to tests/reproducers/signed/Spaces can be everywhere signed/resources/spaces applet Tests signed.html
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java b/tests/reproducers/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java
rename to tests/reproducers/signed/Spaces can be everywhere signed/srcs/SpacesCanBeEverywhereSigned.java
diff --git a/tests/jnlp_tests/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java b/tests/reproducers/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java
rename from tests/jnlp_tests/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java
rename to tests/reproducers/signed/Spaces can be everywhere signed/testcases/SpacesCanBeEverywhereTestsSigned.java
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp b/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp
rename from tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp
rename to tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageJAVAXJNLP.jnlp
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp b/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp
rename from tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp
rename to tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageNETSF.jnlp
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp b/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp
rename from tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp
rename to tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSELF.jnlp
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp b/tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp
rename from tests/jnlp_tests/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp
rename to tests/reproducers/simple/AccessClassInPackage/resources/AccessClassInPackageSUNSEC.jnlp
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java b/tests/reproducers/simple/AccessClassInPackage/srcs/AccessClassInPackage.java
rename from tests/jnlp_tests/simple/AccessClassInPackage/srcs/AccessClassInPackage.java
rename to tests/reproducers/simple/AccessClassInPackage/srcs/AccessClassInPackage.java
diff --git a/tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java b/tests/reproducers/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java
rename from tests/jnlp_tests/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java
rename to tests/reproducers/simple/AccessClassInPackage/testcases/AccessClassInPackageTest.java
diff --git a/tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp b/tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook.jnlp
rename from tests/jnlp_tests/simple/AddShutdownHook/resources/AddShutdownHook.jnlp
rename to tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook.jnlp
diff --git a/tests/jnlp_tests/simple/AddShutdownHook/srcs/AddShutdownHook.java b/tests/reproducers/simple/AddShutdownHook/srcs/AddShutdownHook.java
rename from tests/jnlp_tests/simple/AddShutdownHook/srcs/AddShutdownHook.java
rename to tests/reproducers/simple/AddShutdownHook/srcs/AddShutdownHook.java
diff --git a/tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java b/tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java
rename from tests/jnlp_tests/simple/AddShutdownHook/testcases/AddShutdownHookTest.java
rename to tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java
diff --git a/tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp b/tests/reproducers/simple/AllStackTraces/resources/AllStackTraces.jnlp
rename from tests/jnlp_tests/simple/AllStackTraces/resources/AllStackTraces.jnlp
rename to tests/reproducers/simple/AllStackTraces/resources/AllStackTraces.jnlp
diff --git a/tests/jnlp_tests/simple/AllStackTraces/srcs/AllStackTraces.java b/tests/reproducers/simple/AllStackTraces/srcs/AllStackTraces.java
rename from tests/jnlp_tests/simple/AllStackTraces/srcs/AllStackTraces.java
rename to tests/reproducers/simple/AllStackTraces/srcs/AllStackTraces.java
diff --git a/tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java b/tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java
rename from tests/jnlp_tests/simple/AllStackTraces/testcases/AllStackTracesTest.java
rename to tests/reproducers/simple/AllStackTraces/testcases/AllStackTracesTest.java
diff --git a/tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html b/tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html
rename from tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html
rename to tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.html
diff --git a/tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp b/tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp
rename from tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp
rename to tests/reproducers/simple/AppletBaseURLTest/resources/AppletBaseURLTest.jnlp
diff --git a/tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html b/tests/reproducers/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html
rename from tests/jnlp_tests/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html
rename to tests/reproducers/simple/AppletBaseURLTest/resources/AppletJNLPHrefBaseURLTest.html
diff --git a/tests/jnlp_tests/simple/AppletBaseURLTest/srcs/AppletBaseURL.java b/tests/reproducers/simple/AppletBaseURLTest/srcs/AppletBaseURL.java
rename from tests/jnlp_tests/simple/AppletBaseURLTest/srcs/AppletBaseURL.java
rename to tests/reproducers/simple/AppletBaseURLTest/srcs/AppletBaseURL.java
diff --git a/tests/jnlp_tests/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java b/tests/reproducers/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java
rename from tests/jnlp_tests/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java
rename to tests/reproducers/simple/AppletBaseURLTest/testcases/AppletBaseURLTest.java
diff --git a/tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html b/tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html
rename from tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html
rename to tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.html
diff --git a/tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp b/tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp
rename from tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp
rename to tests/reproducers/simple/AppletReadsInvalidJar/resources/AppletReadsInvalidJar.jnlp
diff --git a/tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar b/tests/reproducers/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar
rename from tests/jnlp_tests/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar
rename to tests/reproducers/simple/AppletReadsInvalidJar/resources/NOT_A_VALID_JAR.jar
diff --git a/tests/jnlp_tests/simple/AppletReadsInvalidJar/srcs/Valid.java b/tests/reproducers/simple/AppletReadsInvalidJar/srcs/Valid.java
rename from tests/jnlp_tests/simple/AppletReadsInvalidJar/srcs/Valid.java
rename to tests/reproducers/simple/AppletReadsInvalidJar/srcs/Valid.java
diff --git a/tests/jnlp_tests/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java b/tests/reproducers/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java
rename from tests/jnlp_tests/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java
rename to tests/reproducers/simple/AppletReadsInvalidJar/testcases/AppletReadsInvalidJarTests.java
diff --git a/tests/jnlp_tests/simple/AppletTakesLastParam/resources/appletTakesLastParam.html b/tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.html
rename from tests/jnlp_tests/simple/AppletTakesLastParam/resources/appletTakesLastParam.html
rename to tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.html
diff --git a/tests/jnlp_tests/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp b/tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp
rename from tests/jnlp_tests/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp
rename to tests/reproducers/simple/AppletTakesLastParam/resources/appletTakesLastParam.jnlp
diff --git a/tests/jnlp_tests/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java b/tests/reproducers/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java
rename from tests/jnlp_tests/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java
rename to tests/reproducers/simple/AppletTakesLastParam/srcs/AppletTakesLastParam.java
diff --git a/tests/jnlp_tests/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java b/tests/reproducers/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java
rename from tests/jnlp_tests/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java
rename to tests/reproducers/simple/AppletTakesLastParam/testcases/AppletTakesLastParamTests.java
diff --git a/tests/jnlp_tests/simple/AppletTest/resources/AppletTest.jnlp b/tests/reproducers/simple/AppletTest/resources/AppletTest.jnlp
rename from tests/jnlp_tests/simple/AppletTest/resources/AppletTest.jnlp
rename to tests/reproducers/simple/AppletTest/resources/AppletTest.jnlp
diff --git a/tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html b/tests/reproducers/simple/AppletTest/resources/appletAutoTests.html
rename from tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests.html
rename to tests/reproducers/simple/AppletTest/resources/appletAutoTests.html
diff --git a/tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html b/tests/reproducers/simple/AppletTest/resources/appletAutoTests2.html
rename from tests/jnlp_tests/simple/AppletTest/resources/appletAutoTests2.html
rename to tests/reproducers/simple/AppletTest/resources/appletAutoTests2.html
diff --git a/tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html b/tests/reproducers/simple/AppletTest/resources/appletViewTest.html
rename from tests/jnlp_tests/simple/AppletTest/resources/appletViewTest.html
rename to tests/reproducers/simple/AppletTest/resources/appletViewTest.html
diff --git a/tests/jnlp_tests/simple/AppletTest/srcs/AppletTest.java b/tests/reproducers/simple/AppletTest/srcs/AppletTest.java
rename from tests/jnlp_tests/simple/AppletTest/srcs/AppletTest.java
rename to tests/reproducers/simple/AppletTest/srcs/AppletTest.java
diff --git a/tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java b/tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java
rename from tests/jnlp_tests/simple/AppletTest/testcases/AppletTestTests.java
rename to tests/reproducers/simple/AppletTest/testcases/AppletTestTests.java
diff --git a/tests/jnlp_tests/simple/CheckServices/resources/CheckPluginServices.html b/tests/reproducers/simple/CheckServices/resources/CheckPluginServices.html
rename from tests/jnlp_tests/simple/CheckServices/resources/CheckPluginServices.html
rename to tests/reproducers/simple/CheckServices/resources/CheckPluginServices.html
diff --git a/tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp b/tests/reproducers/simple/CheckServices/resources/CheckServices.jnlp
rename from tests/jnlp_tests/simple/CheckServices/resources/CheckServices.jnlp
rename to tests/reproducers/simple/CheckServices/resources/CheckServices.jnlp
diff --git a/tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java b/tests/reproducers/simple/CheckServices/srcs/CheckServices.java
rename from tests/jnlp_tests/simple/CheckServices/srcs/CheckServices.java
rename to tests/reproducers/simple/CheckServices/srcs/CheckServices.java
diff --git a/tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java b/tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java
rename from tests/jnlp_tests/simple/CheckServices/testcases/CheckServicesTests.java
rename to tests/reproducers/simple/CheckServices/testcases/CheckServicesTests.java
diff --git a/tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp b/tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
rename from tests/jnlp_tests/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
rename to tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp
diff --git a/tests/jnlp_tests/simple/CreateClassLoader/srcs/CreateClassLoader.java b/tests/reproducers/simple/CreateClassLoader/srcs/CreateClassLoader.java
rename from tests/jnlp_tests/simple/CreateClassLoader/srcs/CreateClassLoader.java
rename to tests/reproducers/simple/CreateClassLoader/srcs/CreateClassLoader.java
diff --git a/tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java b/tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java
rename from tests/jnlp_tests/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java
rename to tests/reproducers/simple/CreateClassLoader/testcases/CreateClassLoaderTest.java
diff --git a/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp b/tests/reproducers/simple/InformationTitleVendorParser/resources/InformationParser.jnlp
rename from tests/jnlp_tests/simple/InformationTitleVendorParser/resources/InformationParser.jnlp
rename to tests/reproducers/simple/InformationTitleVendorParser/resources/InformationParser.jnlp
diff --git a/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp b/tests/reproducers/simple/InformationTitleVendorParser/resources/TitleParser.jnlp
rename from tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleParser.jnlp
rename to tests/reproducers/simple/InformationTitleVendorParser/resources/TitleParser.jnlp
diff --git a/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp b/tests/reproducers/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp
rename from tests/jnlp_tests/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp
rename to tests/reproducers/simple/InformationTitleVendorParser/resources/TitleVendorParser.jnlp
diff --git a/tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp b/tests/reproducers/simple/InformationTitleVendorParser/resources/VendorParser.jnlp
rename from tests/jnlp_tests/simple/InformationTitleVendorParser/resources/VendorParser.jnlp
rename to tests/reproducers/simple/InformationTitleVendorParser/resources/VendorParser.jnlp
diff --git a/tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java b/tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java
rename from tests/jnlp_tests/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java
rename to tests/reproducers/simple/InformationTitleVendorParser/testcases/InformationTitleVendorParserTest.java
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2mainNoAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1main2nothingNoAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainHaveAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1mainNoAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1noAppDescAtAll.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp b/tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp
rename from tests/jnlp_tests/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp
rename to tests/reproducers/simple/ManifestedJar1/resources/ManifestedJar-1nothing2nothingNoAppDesc.jnlp
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF b/tests/reproducers/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF
rename from tests/jnlp_tests/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF
rename to tests/reproducers/simple/ManifestedJar1/srcs/META-INF/MANIFEST.MF
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java b/tests/reproducers/simple/ManifestedJar1/srcs/ManifestedJar1.java
rename from tests/jnlp_tests/simple/ManifestedJar1/srcs/ManifestedJar1.java
rename to tests/reproducers/simple/ManifestedJar1/srcs/ManifestedJar1.java
diff --git a/tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java b/tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java
rename from tests/jnlp_tests/simple/ManifestedJar1/testcases/ManifestedJar1Test.java
rename to tests/reproducers/simple/ManifestedJar1/testcases/ManifestedJar1Test.java
diff --git a/tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF b/tests/reproducers/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF
rename from tests/jnlp_tests/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF
rename to tests/reproducers/simple/ManifestedJar2/srcs/META-INF/MANIFEST.MF
diff --git a/tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java b/tests/reproducers/simple/ManifestedJar2/srcs/ManifestedJar2.java
rename from tests/jnlp_tests/simple/ManifestedJar2/srcs/ManifestedJar2.java
rename to tests/reproducers/simple/ManifestedJar2/srcs/ManifestedJar2.java
diff --git a/tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp b/tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
rename from tests/jnlp_tests/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
rename to tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp
diff --git a/tests/jnlp_tests/simple/ReadEnvironment/srcs/ReadEnvironment.java b/tests/reproducers/simple/ReadEnvironment/srcs/ReadEnvironment.java
rename from tests/jnlp_tests/simple/ReadEnvironment/srcs/ReadEnvironment.java
rename to tests/reproducers/simple/ReadEnvironment/srcs/ReadEnvironment.java
diff --git a/tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java b/tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java
rename from tests/jnlp_tests/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java
rename to tests/reproducers/simple/ReadEnvironment/testcases/ReadEnvironmentTest.java
diff --git a/tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp b/tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp
rename from tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties1.jnlp
rename to tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp
diff --git a/tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp b/tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp
rename from tests/jnlp_tests/simple/ReadProperties/resources/ReadProperties2.jnlp
rename to tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp
diff --git a/tests/jnlp_tests/simple/ReadProperties/srcs/ReadProperties.java b/tests/reproducers/simple/ReadProperties/srcs/ReadProperties.java
rename from tests/jnlp_tests/simple/ReadProperties/srcs/ReadProperties.java
rename to tests/reproducers/simple/ReadProperties/srcs/ReadProperties.java
diff --git a/tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java b/tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java
rename from tests/jnlp_tests/simple/ReadProperties/testcases/ReadPropertiesTest.java
rename to tests/reproducers/simple/ReadProperties/testcases/ReadPropertiesTest.java
diff --git a/tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp b/tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp
rename from tests/jnlp_tests/simple/RedirectStreams/resources/RedirectStreams.jnlp
rename to tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp
diff --git a/tests/jnlp_tests/simple/RedirectStreams/srcs/RedirectStreams.java b/tests/reproducers/simple/RedirectStreams/srcs/RedirectStreams.java
rename from tests/jnlp_tests/simple/RedirectStreams/srcs/RedirectStreams.java
rename to tests/reproducers/simple/RedirectStreams/srcs/RedirectStreams.java
diff --git a/tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java b/tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java
rename from tests/jnlp_tests/simple/RedirectStreams/testcases/RedirectStreamsTest.java
rename to tests/reproducers/simple/RedirectStreams/testcases/RedirectStreamsTest.java
diff --git a/tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp b/tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
rename from tests/jnlp_tests/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
rename to tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp
diff --git a/tests/jnlp_tests/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java b/tests/reproducers/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java
rename from tests/jnlp_tests/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java
rename to tests/reproducers/simple/ReplaceSecurityManager/srcs/ReplaceSecurityManager.java
diff --git a/tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java b/tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java
rename from tests/jnlp_tests/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java
rename to tests/reproducers/simple/ReplaceSecurityManager/testcases/ReplaceSecurityManagerTest.java
diff --git a/tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp b/tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
rename from tests/jnlp_tests/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
rename to tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp
diff --git a/tests/jnlp_tests/simple/SetContextClassLoader/srcs/SetContextClassLoader.java b/tests/reproducers/simple/SetContextClassLoader/srcs/SetContextClassLoader.java
rename from tests/jnlp_tests/simple/SetContextClassLoader/srcs/SetContextClassLoader.java
rename to tests/reproducers/simple/SetContextClassLoader/srcs/SetContextClassLoader.java
diff --git a/tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java b/tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java
rename from tests/jnlp_tests/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java
rename to tests/reproducers/simple/SetContextClassLoader/testcases/SetContextClassLoaderTest.java
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/resources/NotOnly spaces can kill ěščřž too.jnlp b/tests/reproducers/simple/Spaces can be everywhere/resources/NotOnly spaces can kill ěščřž too.jnlp
rename from tests/jnlp_tests/simple/Spaces can be everywhere/resources/NotOnly spaces can kill ěščřž too.jnlp
rename to tests/reproducers/simple/Spaces can be everywhere/resources/NotOnly spaces can kill ěščřž too.jnlp
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp b/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp
rename from tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp
rename to tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere1.jnlp
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp b/tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp
rename from tests/jnlp_tests/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp
rename to tests/reproducers/simple/Spaces can be everywhere/resources/Spaces can be everywhere2.jnlp
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp b/tests/reproducers/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp
rename from tests/jnlp_tests/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp
rename to tests/reproducers/simple/Spaces can be everywhere/resources/SpacesCanBeEverywhere1.jnlp
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/resources/spaces applet Tests.html b/tests/reproducers/simple/Spaces can be everywhere/resources/spaces applet Tests.html
rename from tests/jnlp_tests/simple/Spaces can be everywhere/resources/spaces applet Tests.html
rename to tests/reproducers/simple/Spaces can be everywhere/resources/spaces applet Tests.html
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java b/tests/reproducers/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java
rename from tests/jnlp_tests/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java
rename to tests/reproducers/simple/Spaces can be everywhere/srcs/SpacesCanBeEverywhere.java
diff --git a/tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java b/tests/reproducers/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java
rename from tests/jnlp_tests/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java
rename to tests/reproducers/simple/Spaces can be everywhere/testcases/SpacesCanBeEverywhereTests.java
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp b/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp
rename to tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication1.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp b/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp
rename to tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication2.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp b/tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp
rename to tests/reproducers/simple/UnsignedJnlpApplication/resources/UnsignedJnlpApplication3.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp b/tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
rename to tests/reproducers/simple/UnsignedJnlpApplication/srcs/JNLP-INF/APPLICATION.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java b/tests/reproducers/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java
rename to tests/reproducers/simple/UnsignedJnlpApplication/srcs/UnsignedJnlpApplication.java
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java b/tests/reproducers/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java
rename from tests/jnlp_tests/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java
rename to tests/reproducers/simple/UnsignedJnlpApplication/testcases/UnsignedJnlpApplicationTest.java
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp b/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp
rename to tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate1.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp b/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp
rename to tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate2.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp b/tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp
rename to tests/reproducers/simple/UnsignedJnlpTemplate/resources/UnsignedJnlpTemplate3.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp b/tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
rename to tests/reproducers/simple/UnsignedJnlpTemplate/srcs/JNLP-INF/APPLICATION_TEMPLATE.jnlp
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java b/tests/reproducers/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java
rename to tests/reproducers/simple/UnsignedJnlpTemplate/srcs/UnsignedJnlpTemplate.java
diff --git a/tests/jnlp_tests/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java b/tests/reproducers/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java
rename from tests/jnlp_tests/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java
rename to tests/reproducers/simple/UnsignedJnlpTemplate/testcases/UnsignedJnlpTemplateTest.java
diff --git a/tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest.jnlp b/tests/reproducers/simple/deadlocktest/resources/deadlocktest.jnlp
rename from tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest.jnlp
rename to tests/reproducers/simple/deadlocktest/resources/deadlocktest.jnlp
diff --git a/tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp b/tests/reproducers/simple/deadlocktest/resources/deadlocktest_1.jnlp
rename from tests/jnlp_tests/simple/deadlocktest/resources/deadlocktest_1.jnlp
rename to tests/reproducers/simple/deadlocktest/resources/deadlocktest_1.jnlp
diff --git a/tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java b/tests/reproducers/simple/deadlocktest/srcs/DeadlockTest.java
rename from tests/jnlp_tests/simple/deadlocktest/srcs/DeadlockTest.java
rename to tests/reproducers/simple/deadlocktest/srcs/DeadlockTest.java
diff --git a/tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java b/tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java
rename from tests/jnlp_tests/simple/deadlocktest/testcases/DeadLockTestTest.java
rename to tests/reproducers/simple/deadlocktest/testcases/DeadLockTestTest.java
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletest1.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletest1.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletest1.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletest1.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletestCustomSplash.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletestCustomSplash.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletestCustomSplash.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletestMegaSlow.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletestMegaSlow.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletestMegaSlow.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletestSlow.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletestSlow.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletestSlow.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletestSlowBrokenCustomSplash.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp b/tests/reproducers/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp
rename from tests/jnlp_tests/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp
rename to tests/reproducers/simple/simpletest1/resources/simpletestSlowSlowCustomSplash.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest1/srcs/SimpleTest1.java b/tests/reproducers/simple/simpletest1/srcs/SimpleTest1.java
rename from tests/jnlp_tests/simple/simpletest1/srcs/SimpleTest1.java
rename to tests/reproducers/simple/simpletest1/srcs/SimpleTest1.java
diff --git a/tests/jnlp_tests/simple/simpletest1/testcases/SimpleTest1Test.java b/tests/reproducers/simple/simpletest1/testcases/SimpleTest1Test.java
rename from tests/jnlp_tests/simple/simpletest1/testcases/SimpleTest1Test.java
rename to tests/reproducers/simple/simpletest1/testcases/SimpleTest1Test.java
diff --git a/tests/jnlp_tests/simple/simpletest2/resources/simpletest2.jnlp b/tests/reproducers/simple/simpletest2/resources/simpletest2.jnlp
rename from tests/jnlp_tests/simple/simpletest2/resources/simpletest2.jnlp
rename to tests/reproducers/simple/simpletest2/resources/simpletest2.jnlp
diff --git a/tests/jnlp_tests/simple/simpletest2/srcs/SimpleTest2.java b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
rename from tests/jnlp_tests/simple/simpletest2/srcs/SimpleTest2.java
rename to tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
diff --git a/tests/jnlp_tests/simple/simpletest2/testcases/SimpleTest2Test.java b/tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java
rename from tests/jnlp_tests/simple/simpletest2/testcases/SimpleTest2Test.java
rename to tests/reproducers/simple/simpletest2/testcases/SimpleTest2Test.java
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340961720 -7200
# Node ID 6ac30b34c7f0a46fbc4acdf75da341a619262598
# Parent  8102368fa76cd11f5855ee5cb4942876f177ea95
hg move tests/netx/jnlp_testsengine/ tests/test-extensions

diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java b/tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ContentReaderListener.java
rename to tests/test-extensions/net/sourceforge/jnlp/ContentReaderListener.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java b/tests/test-extensions/net/sourceforge/jnlp/ResourcesTest.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ResourcesTest.java
rename to tests/test-extensions/net/sourceforge/jnlp/ResourcesTest.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java b/tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/ServerAccess.java
rename to tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/Bug.java
rename to tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/KnownToFail.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/KnownToFail.java
rename to tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/NeedsDisplay.java
rename to tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java b/tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/annotations/TestInBrowsers.java
rename to tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browser.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTest.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/Browsers.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Midory.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java
diff --git a/tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Opera.java b/tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
rename from tests/netx/jnlp_testsengine/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
rename to tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java
-------------- next part --------------
# HG changeset patch
# User Jiri Vanek <jvanek at redhat.com>
# Date 1340971958 -7200
# Node ID c913c1fd1138c833df13146da42c9d0a3512d7fd
# Parent  5b088a10b659082df3abe9629cc8dae9cc453dd3
Renamed make variables to correspond with new directory structure

diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,19 +12,21 @@
 export TESTS_DIR=$(abs_top_builddir)/tests.build
 
 export NETX_UNIT_TEST_SRCDIR=$(TESTS_SRCDIR)/netx/unit
-export NETX_UNIT_TEST_DIR=$(TESTS_DIR)/netx/unit
+export NETX_TEST_DIR=$(TESTS_DIR)/netx
+export NETX_UNIT_TEST_DIR=$(NETX_TEST_DIR)/unit
 
 export JUNIT_RUNNER_DIR=$(TESTS_DIR)/junit-runner
 export JUNIT_RUNNER_SRCDIR=$(TESTS_SRCDIR)/junit-runner
 
 
-export JNLP_TESTS_ENGINE_SRCDIR=$(TESTS_SRCDIR)/test-extensions
-export JNLP_TESTS_ENGINE_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
-export JNLP_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
-export JNLP_TESTS_ENGINE_DIR=$(TESTS_DIR)/jnlp_testsengine
-export JNLP_TESTS_ENGINE_TESTS_DIR=$(TESTS_DIR)/netx/jnlp_testsengine_tests
-export JNLP_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/jnlp_test_server
-export JNLP_TESTS_DIR=$(TESTS_DIR)/jnlp_tests
+export TEST_EXTENSIONS_SRCDIR=$(TESTS_SRCDIR)/test-extensions
+export TEST_EXTENSIONS_TESTS_SRCDIR=$(TESTS_SRCDIR)/test-extensions-tests
+export REPRODUCERS_TESTS_SRCDIR=$(TESTS_SRCDIR)/reproducers
+export TEST_EXTENSIONS_DIR=$(TESTS_DIR)/test-extensions
+export TEST_EXTENSIONS_COMPATIBILITY_SYMLINK=$(TESTS_DIR)/netx/jnlp_testsengine
+export TEST_EXTENSIONS_TESTS_DIR=$(TESTS_DIR)/test-extensions-tests
+export REPRODUCERS_TESTS_SERVER_DEPLOYDIR=$(TESTS_DIR)/reproducers_test_server_deploydir
+export REPRODUCERS_BUILD_DIR=$(TESTS_DIR)/reproducers.classes
 export PRIVATE_KEYSTORE_NAME=teststore.ks
 export PRIVATE_KEYSTORE_PASS=123456789
 export EXPORTED_TEST_CERT_PREFIX=icedteatests
@@ -155,7 +157,7 @@
  itweb-settings.desktop.in $(top_srcdir)/tests
 
 # reproducers `D`shortcuts
-export DTEST_SERVER=-Dtest.server.dir=$(JNLP_TESTS_SERVER_DEPLOYDIR)
+export DTEST_SERVER=-Dtest.server.dir=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
 export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws)
 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY)
 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION)
@@ -498,31 +500,31 @@
 junit-runner-source-files.txt:
 	find $(JUNIT_RUNNER_SRCDIR) -name '*.java' | sort > $@
 
-$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/netx-dist-tests-compile.stamp
+$(JUNIT_RUNNER_JAR): junit-runner-source-files.txt stamps/test-extensions-compile.stamp
 	mkdir -p $(JUNIT_RUNNER_DIR) && \
 	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	  -d $(JUNIT_RUNNER_DIR) \
-	  -classpath $(JUNIT_JAR):$(JNLP_TESTS_ENGINE_DIR) \
+	  -classpath $(JUNIT_JAR):$(TEST_EXTENSIONS_DIR) \
 	  @junit-runner-source-files.txt && \
 	$(BOOT_DIR)/bin/jar cf $@  -C $(JUNIT_RUNNER_DIR) .
 
 stamps/junit-jnlp-dist-dirs: junit-jnlp-dist-simple.txt stamps/junit-jnlp-dist-signed.stamp junit-jnlp-dist-custom.txt
-	mkdir -p $(JNLP_TESTS_SERVER_DEPLOYDIR)
-	mkdir -p $(JNLP_TESTS_DIR)
+	mkdir -p $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
+	mkdir -p $(REPRODUCERS_BUILD_DIR)
 	touch $@
 
 junit-jnlp-dist-custom.txt:
-	cd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
+	cd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/ ; \
 	find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
 
 junit-jnlp-dist-simple.txt:
-	cd $(JNLP_TESTS_SRCDIR)/simple/ ; \
+	cd $(REPRODUCERS_TESTS_SRCDIR)/simple/ ; \
 	find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/$@
 
 stamps/junit-jnlp-dist-signed.stamp: 
 	types=($(SIGNED_REPRODUCERS)) ; \
 	for which in "$${types[@]}" ; do \
-	  pushd $(JNLP_TESTS_SRCDIR)/$$which/ ; \
+	  pushd $(REPRODUCERS_TESTS_SRCDIR)/$$which/ ; \
 	  find .  -maxdepth 1 -mindepth 1 | sed "s/.\/*//" > $(abs_top_builddir)/junit-jnlp-dist-$$which.txt ; \
 	  popd ; \
 	done ; \
@@ -537,22 +539,22 @@
 	  IFS="$$IFS_BACKUP" ; \
 	  for dir in "$${simpleReproducers[@]}" ; do \
 	    echo "processing: $$dir" ; \
-	    mkdir -p "$(JNLP_TESTS_DIR)/$$dir" ; \
-	    if [ -e "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \
+	    mkdir -p "$(REPRODUCERS_BUILD_DIR)/$$dir" ; \
+	    if [ -e "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ]; then \
 	      d=`pwd` ; \
-	      cd "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
+	      cd "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/srcs/" ; \
 	      srcFiles=`find . -mindepth 1 -type f -name "*.java" | sed "s/.\/*//"` ; \
 	      notSrcFiles=`find . -mindepth 1 -type f \! -name "*.java" | sed "s/.\/*//"` ; \
-	      $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(JNLP_TESTS_DIR)/$$dir/" $$srcFiles ; \
+	      $(BOOT_DIR)/bin/javac -cp $(NETX_DIR)/lib/classes.jar -d "$(REPRODUCERS_BUILD_DIR)/$$dir/" $$srcFiles ; \
 	      if [ -n "$$notSrcFiles" ] ; then \
-	        cp -R --parents $$notSrcFiles "$(JNLP_TESTS_DIR)/$$dir/" ; \
+	        cp -R --parents $$notSrcFiles "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \
 	      fi ; \
-	      cd "$(JNLP_TESTS_DIR)/$$dir/" ; \
+	      cd "$(REPRODUCERS_BUILD_DIR)/$$dir/" ; \
 	      if [ -f $(META_MANIFEST) ]; \
 	      then \
-	        $(BOOT_DIR)/bin/jar cfm "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
+	        $(BOOT_DIR)/bin/jar cfm "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" $(META_MANIFEST) * ; \
 	      else \
-	        $(BOOT_DIR)/bin/jar cf "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
+	        $(BOOT_DIR)/bin/jar cf "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar" * ; \
 	      fi; \
 	      cd "$$d" ; \
 	    fi; \
@@ -571,14 +573,14 @@
 	  signedReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
 	    IFS="$$IFS_BACKUP" ; \
 	  for dir in "$${signedReproducers[@]}" ; do \
-	   $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS)  "$(JNLP_TESTS_SERVER_DEPLOYDIR)/$$dir.jar"  $$tcaw ; \
+	   $(BOOT_DIR)/bin/jarsigner -keystore $$keystore -storepass $(PRIVATE_KEYSTORE_PASS) -keypass $(PRIVATE_KEYSTORE_PASS)  "$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$$dir.jar"  $$tcaw ; \
 	  done ; \
 	done ; \
 	mkdir -p stamps && \
 	touch $@
 
 stamps/change-dots-to-paths.stamp: stamps/netx-dist-tests-sign-some-reproducers.stamp
-	pushd  $(JNLP_TESTS_SERVER_DEPLOYDIR); \
+	pushd  $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR); \
 	types=($(ALL_NONCUSTOM_REPRODUCERS)); \
 	for which in "$${types[@]}" ; do \
 	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
@@ -639,33 +641,34 @@
 	done ;
 	-rm -rf stamps/netx-dist-tests-import-cert-to-public
 
-netx-dist-tests-source-files.txt:
-	find $(JNLP_TESTS_ENGINE_SRCDIR) -name '*.java' | sort > $@
+test-extensions-source-files.txt:
+	find $(TEST_EXTENSIONS_SRCDIR) -name '*.java' | sort > $@
 
-stamps/netx-dist-tests-compile.stamp: stamps/netx.stamp \
- stamps/junit-jnlp-dist-dirs netx-dist-tests-source-files.txt
-	mkdir -p $(JNLP_TESTS_ENGINE_DIR);
+stamps/test-extensions-compile.stamp: stamps/junit-jnlp-dist-dirs test-extensions-source-files.txt
+	mkdir -p $(TEST_EXTENSIONS_DIR);
+	mkdir -p $(NETX_TEST_DIR);
+	ln -s $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_COMPATIBILITY_SYMLINK);
 	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
-	 -d $(JNLP_TESTS_ENGINE_DIR) \
-	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar \
-	 @netx-dist-tests-source-files.txt && \
+	 -d $(TEST_EXTENSIONS_DIR) \
+	 -classpath $(JUNIT_JAR) \
+	 @test-extensions-source-files.txt && \
 	mkdir -p stamps && \
 	touch $@
 
-netx-dist-tests-tests-source-files.txt:
-	find $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) -name '*.java' | sort > $@
+test-extensions-tests-source-files.txt:
+	find $(TEST_EXTENSIONS_TESTS_SRCDIR) -name '*.java' | sort > $@
 
-stamps/netx-dist-tests-tests-compile.stamp: stamps/junit-jnlp-dist-dirs netx-dist-tests-tests-source-files.txt  stamps/netx-dist-tests-compile.stamp
-	mkdir -p $(JNLP_TESTS_ENGINE_TESTS_DIR);
+stamps/test-extensions-tests-compile.stamp: stamps/junit-jnlp-dist-dirs test-extensions-tests-source-files.txt  stamps/test-extensions-compile.stamp
+	mkdir -p $(TEST_EXTENSIONS_TESTS_DIR);
 	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
-	 -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
-	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
-	 @netx-dist-tests-tests-source-files.txt && \
+	 -d $(TEST_EXTENSIONS_TESTS_DIR) \
+	 -classpath $(JUNIT_JAR):$(TEST_EXTENSIONS_DIR) \
+	 @test-extensions-tests-source-files.txt && \
 	mkdir -p stamps && \
 	touch $@
 
-stamps/netx-dist-tests-compile-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \
- netx-dist-tests-source-files.txt stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-tests-compile.stamp
+stamps/compile-reproducers-testcases.stamp: stamps/netx.stamp stamps/junit-jnlp-dist-dirs \
+ test-extensions-source-files.txt stamps/test-extensions-compile.stamp stamps/test-extensions-tests-compile.stamp
 	types=($(ALL_REPRODUCERS)); \
 	for which in "$${types[@]}" ; do \
 	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
@@ -673,22 +676,22 @@
 	  IFS="$$IFS_BACKUP" ; \
 	  for dir in "$${simpleReproducers[@]}" ; do \
 	    $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
-	      -d $(JNLP_TESTS_ENGINE_TESTS_DIR) \
-	      -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
-	    "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \
+	      -d $(TEST_EXTENSIONS_TESTS_DIR) \
+	      -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \
+	    "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/"* ; \
 	  done ; \
 	done ; \
 	mkdir -p stamps && \
 	touch $@
 
-stamps/netx-dist-tests-copy-resources.stamp: stamps/junit-jnlp-dist-dirs
+stamps/copy-reproducers-resources.stamp: stamps/junit-jnlp-dist-dirs
 	types=($(ALL_REPRODUCERS)); \
 	for which in "$${types[@]}" ; do \
 	  . $(abs_top_srcdir)/NEW_LINE_IFS ; \
 	  simpleReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-$$which.txt `); \
 	  IFS="$$IFS_BACKUP" ; \
 	  for dir in "$${simpleReproducers[@]}" ; do \
-	    cp -R "$(JNLP_TESTS_SRCDIR)/$$which/$$dir/resources/"*  $(JNLP_TESTS_SERVER_DEPLOYDIR)/ ; \
+	    cp -R "$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/resources/"*  $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/ ; \
 	  done ; \
 	done ; \
 	mkdir -p stamps && \
@@ -696,7 +699,7 @@
 
 $(REPRODUCERS_CLASS_NAMES): $(REPRODUCERS_CLASS_WHITELIST)
 	whiteListed=`cat $(REPRODUCERS_CLASS_WHITELIST)`; \
-	cd $(JNLP_TESTS_ENGINE_TESTS_DIR) ; \
+	cd $(TEST_EXTENSIONS_TESTS_DIR) ; \
 	class_names= ; \
 	for test in `find -type f` ; do \
 	  class_name=`echo $$test | sed -e 's|\.class$$||' -e 's|^\./||'` ; \
@@ -721,27 +724,27 @@
 stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp extra-lib/about.jar stamps/plugin.stamp launcher.build/$(javaws) \
  javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop \
  stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
- stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\
+ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\
  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp
-	cd $(JNLP_TESTS_ENGINE_DIR) ; \
+	cd $(TEST_EXTENSIONS_DIR) ; \
 	class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
-	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(JNLP_TESTS_ENGINE_TESTS_DIR) \
+	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):.:$(TEST_EXTENSIONS_TESTS_DIR) \
 	  $(BOOT_DIR)/bin/java $(REPRODUCERS_DPARAMETERS) \
 	 -Xbootclasspath:$(RUNTIME) CommandLine $$class_names
 if WITH_XSLTPROC
-	$(XSLTPROC)  $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(JNLP_TESTS_ENGINE_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html
-	$(XSLTPROC)  --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(JNLP_TESTS_ENGINE_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html
+	$(XSLTPROC)  $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(TEST_EXTENSIONS_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_reproducers.html
+	$(XSLTPROC)  --stringparam logs logs_reproducers.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(TEST_EXTENSIONS_DIR)/tests-output.xml > $(TESTS_DIR)/index_reproducers.html
 endif
 	touch $@
 
 stamps/process-custom-reproducers.stamp: stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
- stamps/netx-dist-tests-compile.stamp stamps/netx-dist-tests-compile-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/netx-dist-tests-copy-resources.stamp\
+ stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\
  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES)
 	. $(abs_top_srcdir)/NEW_LINE_IFS ; \
 	customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \
 	IFS="$$IFS_BACKUP" ; \
 	for dir in "$${customReproducers[@]}" ; do \
-	  pushd $(JNLP_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \
+	  pushd $(REPRODUCERS_TESTS_SRCDIR)/$(CUSTOM_REPRODUCERS)/$$dir/srcs; \
 	  $(MAKE) prepare-reproducer ; \
 	  popd ; \
 	done ; \
@@ -753,7 +756,7 @@
 	customReproducers=(`cat $(abs_top_builddir)/junit-jnlp-dist-custom.txt `); \
 	IFS="$$IFS_BACKUP" ; \
 	for dir in "$${customReproducers[@]}" ; do \
-	  pushd $(JNLP_TESTS_SRCDIR)/custom/$$dir/srcs; \
+	  pushd $(REPRODUCERS_TESTS_SRCDIR)/custom/$$dir/srcs; \
 	  $(MAKE) clean-reproducer ; \
 	  popd ; \
 	done ; \
@@ -869,11 +872,11 @@
 	find $(NETX_UNIT_TEST_SRCDIR) -name '*.java' | sort > $@
 
 stamps/netx-unit-tests-compile.stamp: stamps/netx.stamp \
- netx-unit-tests-source-files.txt stamps/netx-dist-tests-compile.stamp
+ netx-unit-tests-source-files.txt stamps/test-extensions-compile.stamp
 	mkdir -p $(NETX_UNIT_TEST_DIR) && \
 	$(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \
 	 -d $(NETX_UNIT_TEST_DIR) \
-	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(JNLP_TESTS_ENGINE_DIR) \
+	 -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \
 	 @netx-unit-tests-source-files.txt && \
 	mkdir -p stamps && \
 	touch $@
@@ -903,7 +906,7 @@
 	done ; \
 	cd $(NETX_UNIT_TEST_DIR) ; \
 	class_names=`cat $(UNIT_CLASS_NAMES)` ; \
-	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(JNLP_TESTS_ENGINE_DIR):. \
+	CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):. \
 	  $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names 
 if WITH_XSLTPROC
 	$(XSLTPROC) $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/logs.xsl $(NETX_UNIT_TEST_DIR)/ServerAccess-logs.xml > $(TESTS_DIR)/logs_unit.html
@@ -938,7 +941,7 @@
 	 -cp $(BOOT_DIR)/jre/lib/jsse.jar \
 	 -cp $(BOOT_DIR)/jre/lib/resources.jar \
 	 -cp $(RHINO_RUNTIME) \
-	 -cp $(JNLP_TESTS_ENGINE_DIR) \
+	 -cp $(TEST_EXTENSIONS_DIR) \
 	 -cp . \
 	 -ix "-org.junit.*" \
 	 -ix "-junit.*" \
@@ -959,7 +962,7 @@
 if WITH_EMMA
 	cd $(TESTS_DIR) ; \
 	for file in $(EMMA_MODIFIED_FILES) ; do \
-	  mv $(JNLP_TESTS_ENGINE_DIR)/$$file $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
+	  mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
 	done ;\
 	echo "backuping javaws and netx.jar in $(DESTDIR)" ; \
 	netx_backup=$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx_backup.jar ; \
@@ -987,11 +990,11 @@
 	  for dir in "$${simpleReproducers[@]}" ; do \
 	    testcases_srcs[k]="-sp" ; \
 	    k=$$((k+1)) ; \
-	    testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
+	    testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
 	    k=$$((k+1)) ; \
 	    done ; \
 	  done ; \
-	cd $(JNLP_TESTS_ENGINE_DIR) ; \
+	cd $(TEST_EXTENSIONS_DIR) ; \
 	class_names=`cat $(REPRODUCERS_CLASS_NAMES)` ; \
 	$(BOOT_DIR)/bin/java  \
 	 $(EMMA_JAVA_ARGS) \
@@ -1006,24 +1009,24 @@
 	   -cp $(BOOT_DIR)/jre/lib/resources.jar \
 	   -cp $(RHINO_RUNTIME) \
 	   -cp . \
-	   -cp $(JNLP_TESTS_ENGINE_TESTS_DIR) \
+	   -cp $(TEST_EXTENSIONS_TESTS_DIR) \
 	   -ix "-org.junit.*" \
 	   -ix "-junit.*" \
 	   CommandLine $$class_names ; \
-	mv $(JNLP_TESTS_ENGINE_DIR)/coverage.ec $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec ; \
-	mv $(JNLP_TESTS_ENGINE_DIR)/coverage.es $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
+	mv $(TEST_EXTENSIONS_DIR)/coverage.ec $(TEST_EXTENSIONS_DIR)/coverageX.ec ; \
+	mv $(TEST_EXTENSIONS_DIR)/coverage.es $(TEST_EXTENSIONS_DIR)/coverageX.es ; \
 	$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
 	  -in $(TESTS_DIR)/coverage.em \
-	  -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.ec \
-	  -in $(JNLP_TESTS_ENGINE_DIR)/coverageX.es ; \
+	  -in $(TEST_EXTENSIONS_DIR)/coverageX.ec \
+	  -in $(TEST_EXTENSIONS_DIR)/coverageX.es ; \
 	$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
 	  -Dreport.html.out.encoding=UTF-8 \
-	  -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es  \
+	  -in $(TEST_EXTENSIONS_DIR)/coverage.es  \
 	  -sp $(NETX_SRCDIR) \
 	  -sp $(NETX_UNIT_TEST_SRCDIR) \
 	  -sp $(JUNIT_RUNNER_SRCDIR) \
-	  -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
-	  -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
+	  -sp $(TEST_EXTENSIONS_SRCDIR) \
+	  -sp $(TEST_EXTENSIONS_TESTS_SRCDIR) \
 	  -r html \
 	  -r xml \
 	  "$${testcases_srcs[@]}" ; \
@@ -1033,10 +1036,10 @@
 	mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws);  \
 	mv $$netx_backup $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar ; \
 	for file in $(EMMA_MODIFIED_FILES) ; do \
-	  mv $(JNLP_TESTS_ENGINE_DIR)/$$file  $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
-	  mv $(JNLP_TESTS_ENGINE_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)"  $(JNLP_TESTS_ENGINE_DIR)/$$file ; \
+	  mv $(TEST_EXTENSIONS_DIR)/$$file  $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_SUFFIX)" ; \
+	  mv $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)"  $(TEST_EXTENSIONS_DIR)/$$file ; \
 	done ;\
-	rm $(JNLP_TESTS_ENGINE_DIR)/coverage.txt ; 
+	rm $(TEST_EXTENSIONS_DIR)/coverage.txt ; 
 else
 	echo "Sorry, coverage report cant be run without emma installed. Try install emma or specify with-emma value" ;
 	exit 5
@@ -1055,13 +1058,13 @@
 	  for dir in "$${simpleReproducers[@]}" ; do \
 	    testcases_srcs[k]="-sp" ; \
 	    k=$$((k+1)) ; \
-	    testcases_srcs[k]="$(JNLP_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
+	    testcases_srcs[k]="$(REPRODUCERS_TESTS_SRCDIR)/$$which/$$dir/testcases/" ; \
 	    k=$$((k+1)) ; \
 	  done ; \
 	done ; \
 	$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR) emma merge \
 	 -in $(NETX_UNIT_TEST_DIR)/coverage.es \
-	 -in $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
+	 -in $(TEST_EXTENSIONS_DIR)/coverage.es ; \
 	$(BOOT_DIR)/bin/java $(EMMA_JAVA_ARGS) -cp $(EMMA_JAR)  -Demma.report.html.out.encoding=UTF-8 emma report \
 	 -Dreport.html.out.encoding=UTF-8 \
 	 -in $(TESTS_DIR)/coverage.es \
@@ -1069,8 +1072,8 @@
 	 -sp $(NETX_SRCDIR) \
 	 -sp $(NETX_UNIT_TEST_SRCDIR) \
 	 -sp $(JUNIT_RUNNER_SRCDIR) \
-	 -sp $(JNLP_TESTS_ENGINE_SRCDIR) \
-	 -sp $(JNLP_TESTS_ENGINE_TESTS_SRCDIR) \
+	 -sp $(TEST_EXTENSIONS_SRCDIR) \
+	 -sp $(TEST_EXTENSIONS_TESTS_SRCDIR) \
 	 "$${testcases_srcs[@]}" \
 	 -r html \
 	 -r xml ; 
@@ -1102,15 +1105,16 @@
 	rm -f  $(TESTS_DIR)/*.html
 
 clean-netx-dist-tests: clean_tests_reports netx-dist-tests-remove-cert-from-public clean-custom-reproducers
-	rm -f netx-dist-tests-source-files.txt
-	rm -rf $(JNLP_TESTS_DIR)
-	rm -rf $(JNLP_TESTS_SERVER_DEPLOYDIR)
-	rm -rf $(JNLP_TESTS_ENGINE_DIR)
+	rm -f test-extensions-source-files.txt
+	rm -f test-extensions-tests-source-files.txt
+	rm -rf $(REPRODUCERS_BUILD_DIR)
+	rm -rf $(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
+	rm -rf $(TEST_EXTENSIONS_DIR)
 	rm -f stamps/junit-jnlp-dist-dirs
-	rm -f stamps/netx-dist-tests-compile.stamp
+	rm -f stamps/test-extensions-compile.stamp
 	rm -f stamps/netx-dist-tests-prepare-reproducers.stamp
-	rm -f stamps/netx-dist-tests-compile-testcases.stamp
-	rm -f stamps/netx-dist-tests-copy-resources.stamp
+	rm -f stamps/compile-reproducers-testcases.stamp
+	rm -f stamps/copy-reproducers-resources.stamp
 	rm -f stamps/netx-dist-tests-sign-some-reproducers.stamp
 	rm -f stamps/change-dots-to-paths.stamp
 	rm -f junit-jnlp-dist-simple.txt
@@ -1138,10 +1142,10 @@
 
 clean-reproducers-test-code-coverage:
 	if [ -e stamps/run-reproducers-test-code-coverage.stamp ]; then \
-	 rm -rf $(JNLP_TESTS_ENGINE_DIR)/coverage ; \
-	 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.xml ; \
-	 rm -f $(JNLP_TESTS_ENGINE_DIR)/coverage.es ; \
-	 rm -f $(JNLP_TESTS_ENGINE_DIR)/tests-output_withEmma.xml ; \
+	 rm -rf $(TEST_EXTENSIONS_DIR)/coverage ; \
+	 rm -f $(TEST_EXTENSIONS_DIR)/coverage.xml ; \
+	 rm -f $(TEST_EXTENSIONS_DIR)/coverage.es ; \
+	 rm -f $(TEST_EXTENSIONS_DIR)/tests-output_withEmma.xml ; \
 	 rm -f stamps/run-reproducers-test-code-coverage.stamp ; \
 	fi
 
diff --git a/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile b/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile
--- a/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile
+++ b/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile
@@ -1,7 +1,7 @@
 TESTNAME=AppletFolderInArchiveTag
 ARCHIVE_TEST_FOLDER=archive_tag_folder_test
 JAVAC_CLASSPATH=$(JNLP_TESTS_ENGINE_DIR):$(NETX_DIR)/lib/classes.jar
-DEPLOY_SUBDIR=$(JNLP_TESTS_SERVER_DEPLOYDIR)/$(ARCHIVE_TEST_FOLDER)
+DEPLOY_SUBDIR=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)/$(ARCHIVE_TEST_FOLDER)
 INDEX_HTML_BODY="<html><body><h1>Required to recognize folder structure</h1></body></html>"
 
 prepare-reproducer:
-------------- next part --------------
2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	Makefile variables and targets adapted to new directory structures
	* Makefile.am:
	JNLP_TESTS_ENGINE_SRCDIR -> TEST_EXTENSIONS_SRCDIR
	JNLP_TESTS_ENGINE_TESTS_SRCDIR -> TEST_EXTENSIONS_TESTS_SRCDIR
	JNLP_TESTS_SRCDIR- > REPRODUCERS_TESTS_SRCDIR
	JNLP_TESTS_ENGINE -> TEST_EXTENSIONS_DIR
	new variable TEST_EXTENSIONS_COMPATIBILITY_SYMLINK - symlink to old value from  TEST_EXTENSIONS_DIR for tools depending on it
	JNLP_TESTS_ENGINE_TESTS_DIR -> TEST_EXTENSIONS_TESTS_DIR
	JNLP_TESTS_SERVER_DEPLOYDIR -> REPRODUCERS_TESTS_SERVER_DEPLOYDIR
	JNLP_TESTS_DIR -> REPRODUCERS_BUILD_DIR
	stamps/netx-dist-tests-compile.stamp -> stamps/test-extensions-compile.stamp
	netx-dist-tests-tests-source-files.txt -> test-extensions-tests-source-files.txt
	stamps/netx-dist-tests-tests-compile.stamp -> stamps/test-extensions-tests-compile.stamp
	stamps/netx-dist-tests-compile-testcases.stamp -> stamps/compile-reproducers-testcases.stamp
	stamps/netx-dist-tests-copy-resources.stamp -> stamps/copy-reproducers-resources.stamp
	stamps/netx-dist-tests-compile.stamp -> stamps/test-extensions-compile.stamp
	stamps/netx-dist-tests-compile.stamp -> stamps/test-extensions-compile.stamp
	*tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile b/tests/reproducers/custom/AppletFolderInArchiveTag/srcs/Makefile:
	adapted for REPRODUCERS_TESTS_SERVER_DEPLOYDIR

2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	Added missing headers
	* tests/reproducers/simple/CreateClassLoader/resources/CreateClassLoader.jnlp: 
	* tests/reproducers/simple/ReadEnvironment/resources/ReadEnvironment.jnlp: 
	* tests/reproducers/simple/ReadProperties/resources/ReadProperties1.jnlp: 
	* tests/reproducers/simple/ReadProperties/resources/ReadProperties2.jnlp: 
	* tests/reproducers/simple/RedirectStreams/resources/RedirectStreams.jnlp: 
	* tests/reproducers/simple/ReplaceSecurityManager/resources/ReplaceSecurityManager.jnlp: 
	* tests/reproducers/simple/SetContextClassLoader/resources/SetContextClassLoader.jnlp: 
	* tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java: 
	* tests/test-extensions/net/sourceforge/jnlp/annotations/Bug.java: 
	* tests/test-extensions/net/sourceforge/jnlp/annotations/KnownToFail.java: 
	* tests/test-extensions/net/sourceforge/jnlp/annotations/NeedsDisplay.java: 
	* tests/test-extensions/net/sourceforge/jnlp/annotations/TestInBrowsers.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browser.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserFactory.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTest.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/BrowserTestRunner.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/Browsers.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chrome.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Chromium.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Epiphany.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Firefox.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/LinuxBrowser.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Midory.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/MozillaFamilyLinuxBrowser.java: 
	* tests/test-extensions/net/sourceforge/jnlp/browsertesting/browsers/Opera.java: 
	added license headers

2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	Makefile adapted to recent (three changesets) refactoring
	* Makefile.am: (JNLP_TESTS_ENGINE_SRCDIR) now points correctly to
	test-extensions. (JNLP_TESTS_ENGINE_TESTS_SRCDIR) new variable for
	test-extensions-tests. (JNLP_TESTS_SRCDIR) now points to reproducers.
	(JNLP_TESTS_ENGINE_TESTS_DIR) new variable for built
	JNLP_TESTS_ENGINE_TESTS_SRCDIR
	(netx-dist-tests-tests-source-files.txt) new target for list of
	content of JNLP_TESTS_ENGINE_TESTS_SRCDIR.
	(stamps/netx-dist-tests-tests-compile.stamp) new target for compiling
	netx-dist-tests-tests-source-files.txt
	(netx-dist-tests-source-files.tx) now depends on
	stamps/netx-dist-tests-tests-compile.stamp
	($(REPRODUCERS_CLASS_NAMES)) target is now working in JNLP_TESTS_ENGINE_TESTS_DIR
	instead of JNLP_TESTS_ENGINE_DIR
	(stamps/run-netx-dist-tests.stamp): added JNLP_TESTS_ENGINE_TESTS_DIR to classpath
	(stamps/run-unit-test-code-coverage.stamp), (stamps/run-reproducers-test-code-coverage.stamp)
	added JNLP_TESTS_ENGINE_TESTS_DIR to classpath and
	JNLP_TESTS_ENGINE_TESTS_SRCDIR to sources path

2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	All tests from test-extensions extracted to test-extensions-tests.
	All inner classes in test-extensions extracted as outer classes
	* tests/test-extensions/net/sourceforge/jnlp/ResourcesTest.java:
	moved to test-extensions-tests
	* tests/test-extensions-tests/net/sourceforge/jnlp/ResourcesTest.java:
	new file, copied from test-extensions
	* tests/test-extensions-tests/net/sourceforge/jnlp/ServerAccessTest.java:
	all tests from original ServerAccess.java
	* tests/test-extensions/net/sourceforge/jnlp/ContentReader.java:
	* tests/test-extensions/net/sourceforge/jnlp/LogItem.java:
	* tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java:
	* tests/test-extensions/net/sourceforge/jnlp/ProcessAssasin.java:
	* tests/test-extensions/net/sourceforge/jnlp/ProcessResult.java:
	* tests/test-extensions/net/sourceforge/jnlp/ServerLauncher.java:
	* tests/test-extensions/net/sourceforge/jnlp/TestsLogs.java:
	* tests/test-extensions/net/sourceforge/jnlp/ThreadedProcess.java:
	* tests/test-extensions/net/sourceforge/jnlp/TinyHttpdImpl.java:
	new files, extracted classes from ServerAccess
	* tests/test-extensions/net/sourceforge/jnlp/ServerAccess.java:
	extracted tests and inner classes
	

2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	hg move tests/netx/jnlp_testsengine/ tests/test-extensions

2012-06-28  Jiri Vanek  <jvanek at redhat.com>

	hg move tests/jnlp_tests/ tests/reproducers


More information about the distro-pkg-dev mailing list