From 7a2e5c263f493228776e0a22202cdea9ce859212 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 01:27:26 -0200 Subject: [PATCH 001/156] Fixing IOUtil.findAllFiles() acessing a loc's extension in the wrong way. - An extension is a field of a Location. --- src/io/IOUtil.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/IOUtil.rsc b/src/io/IOUtil.rsc index 1196ba1..f8eb26c 100644 --- a/src/io/IOUtil.rsc +++ b/src/io/IOUtil.rsc @@ -9,7 +9,7 @@ list[loc] findAllFiles(loc location, str ext) { res = []; list[loc] allFiles; - if((isDirectory(location)) || (extension(location) == "jar") || (extension(location) == "zip")) { + if((isDirectory(location)) || (location.extension == "jar") || (location.extension == "zip")) { allFiles = location.ls; } else { From 8925e843964921c0bc5ba43fbf4c84b22421a9c5 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 01:28:54 -0200 Subject: [PATCH 002/156] Method to find all '.java' files in a location. - Previously there was only a method for 'class'. --- src/lang/java/m3/M3Util.rsc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lang/java/m3/M3Util.rsc b/src/lang/java/m3/M3Util.rsc index 036ed17..fd56a2d 100644 --- a/src/lang/java/m3/M3Util.rsc +++ b/src/lang/java/m3/M3Util.rsc @@ -18,6 +18,10 @@ list[loc] listAllClassFiles(loc location) { return findAllFiles(location, "class"); } +list[loc] listAllJavaFiles(loc location) { + return findAllFiles(location, "java"); +} + /* * computes a list of class names from a classpath, * that is, a list of Jar files. From 0394726e1f171be2ff0ad9fb8054c2d6c0a3cf37 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 01:30:29 -0200 Subject: [PATCH 003/156] Finding all classes that is a direct subclass of Exception. - Still needs to find indirect subclasses of Exception. --- src/ExceptionFinder.rsc | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/ExceptionFinder.rsc diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc new file mode 100644 index 0000000..bbf9c9d --- /dev/null +++ b/src/ExceptionFinder.rsc @@ -0,0 +1,46 @@ +module ExceptionFinder + +import IO; +import lang::java::m3::M3Util; +import lang::java::\syntax::Java18; +import ParseTree; + +set[str] findCheckedExceptions(list[loc] locs) { + set[str] classesToBeVerified = {}; + set[str] checkedExceptionClasses = {"Exception"}; + for(int i <- [0 .. size(locs) - 1]) { + location = locs[i]; + content = readFile(location); + + try { + unit = parse(#CompilationUnit, content); + + bool unitHasSuperClass = false; + str superClassName = ""; + visit(unit) { + case(Superclass) `extends `: { + unitHasSuperClass = true; + superClassName = unparse(id); + } + } + + if (superClassName in checkedExceptionClasses) { + className = retrieveClassNameFromUnit(unit); + checkedExceptionClasses = checkedExceptionClasses + className; + } + } catch: + continue; + + + } + return checkedExceptionClasses; +} + +str retrieveClassNameFromUnit(unit) { + visit(unit) { + case(NormalClassDeclaration) ` class `: + return unparse(id); + } + // Not the best solution. quick workaround + throw "Could not find class name"; +} \ No newline at end of file From 9d75a7f227bed23191428c6eff2197653da15107 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 02:10:21 -0200 Subject: [PATCH 004/156] First implementation on finding indirect subclasses of Exception. --- src/ExceptionFinder.rsc | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index bbf9c9d..d6654b8 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -4,9 +4,10 @@ import IO; import lang::java::m3::M3Util; import lang::java::\syntax::Java18; import ParseTree; +import Map; set[str] findCheckedExceptions(list[loc] locs) { - set[str] classesToBeVerified = {}; + map[str, set[str]] superClassesBySubClasses = (); set[str] checkedExceptionClasses = {"Exception"}; for(int i <- [0 .. size(locs) - 1]) { location = locs[i]; @@ -24,10 +25,25 @@ set[str] findCheckedExceptions(list[loc] locs) { } } - if (superClassName in checkedExceptionClasses) { - className = retrieveClassNameFromUnit(unit); - checkedExceptionClasses = checkedExceptionClasses + className; + if (unitHasSuperClass) { + subClassName = retrieveClassNameFromUnit(unit); + if (superClassName in checkedExceptionClasses) { + checkedExceptionClasses += subClassName; + + if (subClassName in superClassesBySubClasses) { + checkedExceptionClasses += superClassesBySubClasses[subClassName]; + delete(superClassesBySubClasses, subClassName); + } + + } else { + if (superClassName in superClassesBySubClasses) { + superClassesBySubClasses[superClassName] += {subClassName}; + } else { + superClassesBySubClasses[superClassName] = {subClassName}; + } + } } + } catch: continue; From 185aaed79f6c4655a4949ae8e2f060145d95386e Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 02:24:15 -0200 Subject: [PATCH 005/156] Starting refactors. Retrieving superClass data in a method. - Instance fields to facilitate definition of new methods. - Using a tuple to return two values. -- Tuple also has the benefit of nice names. --- src/ExceptionFinder.rsc | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index d6654b8..36941b2 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -6,28 +6,22 @@ import lang::java::\syntax::Java18; import ParseTree; import Map; +private map[str, set[str]] superClassesBySubClasses = (); +private set[str] checkedExceptionClasses = {"Exception"}; + set[str] findCheckedExceptions(list[loc] locs) { - map[str, set[str]] superClassesBySubClasses = (); - set[str] checkedExceptionClasses = {"Exception"}; for(int i <- [0 .. size(locs) - 1]) { location = locs[i]; content = readFile(location); try { unit = parse(#CompilationUnit, content); + + superClass = retrieveSuperClass(unit); - bool unitHasSuperClass = false; - str superClassName = ""; - visit(unit) { - case(Superclass) `extends `: { - unitHasSuperClass = true; - superClassName = unparse(id); - } - } - - if (unitHasSuperClass) { + if (superClass.present) { subClassName = retrieveClassNameFromUnit(unit); - if (superClassName in checkedExceptionClasses) { + if (superClass.name in checkedExceptionClasses) { checkedExceptionClasses += subClassName; if (subClassName in superClassesBySubClasses) { @@ -36,10 +30,10 @@ set[str] findCheckedExceptions(list[loc] locs) { } } else { - if (superClassName in superClassesBySubClasses) { - superClassesBySubClasses[superClassName] += {subClassName}; + if (superClass.name in superClassesBySubClasses) { + superClassesBySubClasses[superClass.name] += {subClassName}; } else { - superClassesBySubClasses[superClassName] = {subClassName}; + superClassesBySubClasses[superClass.name] = {subClassName}; } } } @@ -52,7 +46,19 @@ set[str] findCheckedExceptions(list[loc] locs) { return checkedExceptionClasses; } -str retrieveClassNameFromUnit(unit) { +private tuple[bool present, str name] retrieveSuperClass(unit) { + tuple[bool present, str name] SuperClass = ; + visit(unit) { + case(Superclass) `extends `: { + SuperClass.present = true; + SuperClass.name = unparse(id); + } + } + return SuperClass; +} + + +private str retrieveClassNameFromUnit(unit) { visit(unit) { case(NormalClassDeclaration) ` class `: return unparse(id); From 5da145841fa1dd6d13ffcbaf870f1cd821cd2266 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 8 Dec 2016 02:24:15 -0200 Subject: [PATCH 006/156] Adding comments to help understanding and future refactors. --- src/ExceptionFinder.rsc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 36941b2..e6b9b4e 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -21,15 +21,19 @@ set[str] findCheckedExceptions(list[loc] locs) { if (superClass.present) { subClassName = retrieveClassNameFromUnit(unit); + + // If class extends Exception or class that is a subclass of Exception if (superClass.name in checkedExceptionClasses) { checkedExceptionClasses += subClassName; + if (subClassName in superClassesBySubClasses) { + // All subClasses of class extends Exception indirectly checkedExceptionClasses += superClassesBySubClasses[subClassName]; delete(superClassesBySubClasses, subClassName); } - } else { + } else { // Class has a superClass that we don't know yet if it's a sub class of Exception if (superClass.name in superClassesBySubClasses) { superClassesBySubClasses[superClass.name] += {subClassName}; } else { From c2db7856583bc2f2ed774921077933a30e2805a7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 14 Mar 2017 23:49:29 -0300 Subject: [PATCH 007/156] Deeper Inheritance Hierarchy and some tests to verify correctness. --- src/ExceptionFinderTest.rsc | 44 +++++++++++++++++++++++++++++++++ testes/exception-hierarchy.zip | Bin 0 -> 13321 bytes 2 files changed, 44 insertions(+) create mode 100644 src/ExceptionFinderTest.rsc create mode 100644 testes/exception-hierarchy.zip diff --git a/src/ExceptionFinderTest.rsc b/src/ExceptionFinderTest.rsc new file mode 100644 index 0000000..7466201 --- /dev/null +++ b/src/ExceptionFinderTest.rsc @@ -0,0 +1,44 @@ +module ExceptionFinderTest + +import lang::java::m3::M3Util; +import IO; +import ExceptionFinder; + +private loc zipFile = |jar:///D:/exception-hierarchy.zip!|; +private list[loc] javaClassesLocations = listAllJavaFiles(zipFile); + +private set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); + +public test bool shouldReturnExceptionClass() { + return "Exception" in checkedExceptions; +} + +public test bool shouldReturnLevelTwoHierarchyClasses() { + return "AException" in checkedExceptions && "BException" in checkedExceptions && + "CException" in checkedExceptions && "ZException" in checkedExceptions; +} + +public test bool shouldReturnLevelThreeHierarchyClasses() { + return "DException" in checkedExceptions && "FException" in checkedExceptions && + "IException" in checkedExceptions; +} + +public test bool shouldReturnLevelFourHierarchyClasses() { + return "LException" in checkedExceptions && "EException" in checkedExceptions && + "JException" in checkedExceptions && "HException" in checkedExceptions; +} + +public test bool shouldReturnLevelFiveHierarchyClasses() { + return "GException" in checkedExceptions && "KException" in checkedExceptions; +} + +public test bool shouldReturnLevelSixHierarchyClasses() { + return "MException" in checkedExceptions; +} + +public test bool shouldNotReturnUncheckedExceptions() { + return "RuntimeException" notin checkedExceptions && + "UncheckedLevelFourRuntimeException" notin checkedExceptions && + "UncheckedLevelThreeRuntimeException" notin checkedExceptions && + "UncheckedLevelTwoRuntimeException" notin checkedExceptions; +} \ No newline at end of file diff --git a/testes/exception-hierarchy.zip b/testes/exception-hierarchy.zip new file mode 100644 index 0000000000000000000000000000000000000000..303af0b740becdff738aa8ffb3b1a7d55c61d426 GIT binary patch literal 13321 zcmd5?c{o(<8y?vP6N6+aq3kiEMJbYP>|5D>+9W1B6H_Ql)@-G0B}-Zel@uY7EG7He zg0f|)^z~_xl=#i5Pjk*0zR%&GPFL5ZtLr-V{obDQKKFCKudyCI!!i^ajYbKkxay)n zk09k|f|m`EM0Rj<)pj7dTf5uXd*g97&ek3tBx|z0Z?qm;g&a1xiFN8k%)Q;EW6jd5 zd6r#IdvdMHHmjvb$~$c8SdV02_rXxNj>LTbt*>8)J(W`DA5l9&(5}!Xm_14u%uLDk zyZJ;vWT^4U3%8pYAC72ur(P~yow&}9G19e9{ZW~Y^=pE_ZaUT*jwf5+#xYLjZ=zDYc!&6b zO=1e)4Z`b8U>|;0xgT*FchVptNKvim z?NN&!oX2ZPqoo5~)nae*x*iLEN*ZTY*3FU&Ij5SbCGVN5Ykq9&s`b1<$fX2X?4X@`i4WQ-%sW=B-W(Xd#~-dV-f811=o4zVxXtb zL6h))&8M=ubS75y0;5mc7&=ARiofg_TAK58Y9&$DR${lu)#|hFP;8%?bsjz0LHN$z zES`sXCcL4rwK?_6ZG7HM%?p4;bz=vj?^6UYUjnWdAJ_-8b#{pkIJn}8GvAR1-o~D2 z<3zN@@B001{raMO4a*HHjIqh->G4aRzV6_2eO&JOA@qaV=XO&0=ia|QJbzHxd44CR z>|uB?z0duHt^)9fcmbFrI!0bwgb|U+l{&b>0}_% z^)FI74VZL_V{XrsnV6Wkndpu%iEA=Vv_}lI2gcM-mK^vo5Y;~Lu6@}L4PRc1bCQbm zY&gOx5+MrXyeZK;QS3+*re5H@breRXaY8C<52hZItc1CaagM@FDkpkp`K900$s&k^ z>ukx2!l)@v)P!%b4ksiEE1RB97hRKg?u=^7iR0I<^Ya%4e$tDKF?qRO_1jm@okuOh ziQ$+CjLKEH39o z(_ianrtIX*=$iObjrA1O6dZtv_Ol<1cH1F7?jUAy! zAAU=DWgPPA!-cmM_w5As8Zg-H=ZfWEF~53G`1wtT`c*RRNtqQQU(e`x6@UMq`zDJz zdG1x0O|Olq5i@$rE~VV8PrzzSUwO-2Vp&|b(MbQpaE~G0&G9Byaa>g#Y0k3hdAR|_`Empq;V;#ZV*4(#u+n|ltslR2l+MRAgqu~L z=hwC-={1q`-ly_ zk)xBY$Yg>9H-{fei16IJWyZ3dcs0y>{Meoed+fK8&6DPxN?nq92l9qOblYFGS&sE_ z9mOBLYL=as{!Jd;{rF(PO77&Ou5-PH9~qfR&F|A#qOqErUcLDu-*+G@CeJ{nEy8dh`^_7Riod zQ0!q|e{bwN(U&Lnr~6p4p)aJB#6eWOgmoHl?qb*j**^CABW+ug53evK-am zm*<}*!#(l*%l%(ah}q0f`otqdXHB=m?mG{=k{w)#zhCkz9Z4}VFse|& z`l{<);|Uq%P?$KB%gen{0LNgslv(wC-Fh91x`eoduZ2oyNTbZ7moaUtdGP{vv70~b z>+Y(5cfa5Q>V5Oa9c#!Fdq1t;oV7P3GLQ^J4n;T3O~bro@ba zo=Zv92MJzbQ{Io(i10<`c-z-b@{+s!I8d31>ipLI6a^C@)2l5^W3xqRY-;aLB+ex=C4%}#+u)9@)PVufIIu0#8A8q@~IeITgwMp|DRV5BIl++xHO?>&RTH^Rx zvie3ez2B1(TvT3CQT|rqkNUc=hkC?H2Avaz>f2hEAAI<#R4Le~NV)1q|I|^I@|0T{ zd|V|{6Un{NFJjhsDY#w?Ki;epHK=oU7fIP9GK!_N$|1hN%vE|y@pELmGkSB4e_4^3 z21ic4d{2_2^)#w!Ft$@VS@o0_kEoOuTWCf9dHRM(&y}S*Z7QOC?dlv7fj5K#+S@w2 zbIelQ0EsWsHC*YX2zdTqB{o@{#GY<*34F`2QV#3;>C#)GnYIF;=VjX#@ z7T;L^THrIP`XOov&{qTLmsyLiO&vo?Uy#yWdQC2u+)#nVARo8j_NzWo-tKV(lATXc;(nGLf6BG+EQ zm<>=Q^n!>C&r7$=F0zNa&41*jj@C!4*J|rG8tNOFY2VN`l$EThZ(93QuTk5e(a_-5 z&|v?dw4_08jlQ{dqmB&DJj^{rYKb&nr$JB3TqVpjDDK%ucen)k2jwsI zAON0EDk35Z$tVAvYKvYz4OtR7M2g-~au%|7ggxdO6e>V*Qpv&-L8N3siQodr9-@*Z zX`s!5+J8%{S*#vFpfCkG0+lU1i9^a3l*BE7?O_mGRS4TvwW{lB*}@|*q-;SE*aFyk zg4hxuY%2>Z#c0{WqbHro<+KLn$5vOGf z&lZreg=7o=#r8Jsb_=RoXm9W{43wtbZsEf`QnH|7egR}XsAWrnmhGd$h&ozn;X@5l zwxA&zIonYZh^;!L5PVcj*lF3qhgW25A;ar`u`Qr21kjcMErbHy;X>L%c)qCp3o6c1V%#W&tK+KM~^AQ&d1Z-7h@w`9nT1(LMncWmW5d!fP@cC$t8FZd&n|(f7 z_~L?Xm!)Sg&8+S-y#cVga^u~p(HCzE*!s;ZE#u3Q?Us~f1^?^Pc2fTL_hd{Rujjk8 zS>}>OEG%xAd1hH;`Ua_=j`hLmOv;xPd~w%4+|S>bGrL@w1%WBz^{;iaex^He1!lwy`?^m3`lSw6V1=-UtlC)00AGn zLy^)Mks*P`5gH_5cmSVOLy@|ekRgFa2^u88_=C@Pp-5OXG9=I#K!XIBcJP@f6iJf> z84}3C(;xw7tl)D*D3T8=G9-}wra=PCGWhTfigcR|84}1k(;xvx7kpp^MH96K?0l| zICh63J>*1!1o3$^NPy!7N7YcIX)a_)@K7JT?*Wzy9M}T3gZjuXn-3BqgGIAe!1#dk zOduGhK8ZYwVKBQ5nw0`L?E`!z^_g70C Date: Wed, 15 Mar 2017 02:05:53 -0300 Subject: [PATCH 008/156] Testing a recursive like solution. Still not working as expected. --- src/ExceptionFinder.rsc | 35 ++++++++++++++++++++++++++++++----- src/ExceptionFinderTest.rsc | 3 ++- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index e6b9b4e..b96a661 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -4,13 +4,14 @@ import IO; import lang::java::m3::M3Util; import lang::java::\syntax::Java18; import ParseTree; +import Set; import Map; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; set[str] findCheckedExceptions(list[loc] locs) { - for(int i <- [0 .. size(locs) - 1]) { + for(int i <- [0 .. size(locs)]) { location = locs[i]; content = readFile(location); @@ -22,18 +23,24 @@ set[str] findCheckedExceptions(list[loc] locs) { if (superClass.present) { subClassName = retrieveClassNameFromUnit(unit); + //println("Current class (subClass): " + subClassName); + //println("Super class: " + superClass.name); + //println("checkedExceptionClasses: " + toString(checkedExceptionClasses)); + //println("superClassesBySubClasses: " + toString(superClassesBySubClasses)); + //println(); + // If class extends Exception or class that is a subclass of Exception if (superClass.name in checkedExceptionClasses) { checkedExceptionClasses += subClassName; - if (subClassName in superClassesBySubClasses) { - // All subClasses of class extends Exception indirectly - checkedExceptionClasses += superClassesBySubClasses[subClassName]; - delete(superClassesBySubClasses, subClassName); + addAllSubClassesOf(subClassName); } } else { // Class has a superClass that we don't know yet if it's a sub class of Exception + + // TODO: check if superClass is already a sub class mapped to another superclass + if (superClass.name in superClassesBySubClasses) { superClassesBySubClasses[superClass.name] += {subClassName}; } else { @@ -47,6 +54,7 @@ set[str] findCheckedExceptions(list[loc] locs) { } + println(checkedExceptionClasses); return checkedExceptionClasses; } @@ -69,4 +77,21 @@ private str retrieveClassNameFromUnit(unit) { } // Not the best solution. quick workaround throw "Could not find class name"; +} + +private void addAllSubClassesOf(str subClassName) { + directSubClasses = superClassesBySubClasses[subClassName]; + checkedExceptionClasses += directSubClasses; + superClassesBySubClasses = delete(superClassesBySubClasses, subClassName); + + //println(); + println("subClassName: " + subClassName); + //println("directSubClasses: " + toString(directSubClasses)); + //println(); + + list[str] directSubClassesList = toList(directSubClasses); + println("directSubClasses: " + toString(directSubClassesList)); + for(int i <- [0 .. size(directSubClassesList)]) { + addAllSubClassesOf(directSubClassesList[i]); + } } \ No newline at end of file diff --git a/src/ExceptionFinderTest.rsc b/src/ExceptionFinderTest.rsc index 7466201..d619e8a 100644 --- a/src/ExceptionFinderTest.rsc +++ b/src/ExceptionFinderTest.rsc @@ -29,7 +29,8 @@ public test bool shouldReturnLevelFourHierarchyClasses() { } public test bool shouldReturnLevelFiveHierarchyClasses() { - return "GException" in checkedExceptions && "KException" in checkedExceptions; + return "GException" in checkedExceptions && "KException" in checkedExceptions && + "NException" in checkedExceptions; } public test bool shouldReturnLevelSixHierarchyClasses() { From 5e3cec9beef6d01264c8ada6bb416515aaba5d4e Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:24:48 -0300 Subject: [PATCH 009/156] Finally working. - An error was silently finishing the loop. -- We had to check if the key was present in the map. --- src/ExceptionFinder.rsc | 52 ++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 13 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index b96a661..6fb87d4 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -34,6 +34,7 @@ set[str] findCheckedExceptions(list[loc] locs) { checkedExceptionClasses += subClassName; if (subClassName in superClassesBySubClasses) { + println(); addAllSubClassesOf(subClassName); } @@ -79,19 +80,44 @@ private str retrieveClassNameFromUnit(unit) { throw "Could not find class name"; } -private void addAllSubClassesOf(str subClassName) { - directSubClasses = superClassesBySubClasses[subClassName]; - checkedExceptionClasses += directSubClasses; - superClassesBySubClasses = delete(superClassesBySubClasses, subClassName); +private void addAllSubClassesOf(str className) { + set[str] allSubClasses = {}; + allSubClasses += superClassesBySubClasses[className]; + println("className: " + className); + println("allSubClasses (pre-while): " + toString(allSubClasses)); + println("checkedExceptionClasses (pre-while): " + toString(checkedExceptionClasses)); + while(!isEmpty(allSubClasses)) { + println(); + currentClass = getOneFrom(allSubClasses); + println("currentClass: " + currentClass); + checkedExceptionClasses += currentClass; + println("checkedExceptionClasses: " + toString(checkedExceptionClasses)); + allSubClasses -= currentClass; + println("allSubClasses (removing current): " + toString(allSubClasses)); + + if (currentClass in superClassesBySubClasses) { + directSubClasses = superClassesBySubClasses[currentClass]; + println("directSubClasses: " + toString(directSubClasses)); + allSubClasses += directSubClasses; + println("allSubClasses (adding direct sub: " + toString(allSubClasses)); + } + + superClassesBySubClasses = delete(superClassesBySubClasses, currentClass); + } - //println(); - println("subClassName: " + subClassName); - //println("directSubClasses: " + toString(directSubClasses)); - //println(); - list[str] directSubClassesList = toList(directSubClasses); - println("directSubClasses: " + toString(directSubClassesList)); - for(int i <- [0 .. size(directSubClassesList)]) { - addAllSubClassesOf(directSubClassesList[i]); - } + ////println(); + //println("subClassName: " + subClassName); + ////println("directSubClasses: " + toString(directSubClasses)); + ////println(); + // + //list[str] directSubClassesList = toList(directSubClasses); + //println("directSubClasses: " + toString(directSubClassesList)); + //for(int i <- [0 .. size(directSubClassesList)]) { + // addAllSubClassesOf(directSubClassesList[i]); + //} +} + +private set[str] retrieveDirectSubClasses(str className) { + return superClassesBySubClasses[className]; } \ No newline at end of file From e32af3807ab08cacbf68ea18794869f97b4b882d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 010/156] Iterative version of checking exception hierarchy. - Removing unecessary comments and debug prints. --- src/ExceptionFinder.rsc | 42 ++++++----------------------------------- 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 6fb87d4..c7fbcd5 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -22,26 +22,16 @@ set[str] findCheckedExceptions(list[loc] locs) { if (superClass.present) { subClassName = retrieveClassNameFromUnit(unit); - - //println("Current class (subClass): " + subClassName); - //println("Super class: " + superClass.name); - //println("checkedExceptionClasses: " + toString(checkedExceptionClasses)); - //println("superClassesBySubClasses: " + toString(superClassesBySubClasses)); - //println(); - + // If class extends Exception or class that is a subclass of Exception if (superClass.name in checkedExceptionClasses) { checkedExceptionClasses += subClassName; if (subClassName in superClassesBySubClasses) { - println(); addAllSubClassesOf(subClassName); } - } else { // Class has a superClass that we don't know yet if it's a sub class of Exception - - // TODO: check if superClass is already a sub class mapped to another superclass - + } else { // Class has a superClass that we don't know yet if it's a sub class of Exception if (superClass.name in superClassesBySubClasses) { superClassesBySubClasses[superClass.name] += {subClassName}; } else { @@ -55,7 +45,6 @@ set[str] findCheckedExceptions(list[loc] locs) { } - println(checkedExceptionClasses); return checkedExceptionClasses; } @@ -82,40 +71,21 @@ private str retrieveClassNameFromUnit(unit) { private void addAllSubClassesOf(str className) { set[str] allSubClasses = {}; - allSubClasses += superClassesBySubClasses[className]; - println("className: " + className); - println("allSubClasses (pre-while): " + toString(allSubClasses)); - println("checkedExceptionClasses (pre-while): " + toString(checkedExceptionClasses)); + allSubClasses += retrieveDirectSubClasses(className); while(!isEmpty(allSubClasses)) { - println(); currentClass = getOneFrom(allSubClasses); - println("currentClass: " + currentClass); + checkedExceptionClasses += currentClass; - println("checkedExceptionClasses: " + toString(checkedExceptionClasses)); + allSubClasses -= currentClass; - println("allSubClasses (removing current): " + toString(allSubClasses)); if (currentClass in superClassesBySubClasses) { - directSubClasses = superClassesBySubClasses[currentClass]; - println("directSubClasses: " + toString(directSubClasses)); + directSubClasses = retrieveDirectSubClasses(currentClass); allSubClasses += directSubClasses; - println("allSubClasses (adding direct sub: " + toString(allSubClasses)); } superClassesBySubClasses = delete(superClassesBySubClasses, currentClass); } - - - ////println(); - //println("subClassName: " + subClassName); - ////println("directSubClasses: " + toString(directSubClasses)); - ////println(); - // - //list[str] directSubClassesList = toList(directSubClasses); - //println("directSubClasses: " + toString(directSubClassesList)); - //for(int i <- [0 .. size(directSubClassesList)]) { - // addAllSubClassesOf(directSubClassesList[i]); - //} } private set[str] retrieveDirectSubClasses(str className) { From 54c14ac5b231d70b07616e13e433a073317812b8 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 011/156] Refactoring. - Extracting key membership logic in own method. - Changing old 'for's to a more for-each syntax like. --- src/ExceptionFinder.rsc | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index c7fbcd5..dc7911d 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -10,9 +10,8 @@ import Map; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; -set[str] findCheckedExceptions(list[loc] locs) { - for(int i <- [0 .. size(locs)]) { - location = locs[i]; +set[str] findCheckedExceptions(list[loc] locations) { + for(location <- locations) { content = readFile(location); try { @@ -70,24 +69,17 @@ private str retrieveClassNameFromUnit(unit) { } private void addAllSubClassesOf(str className) { - set[str] allSubClasses = {}; - allSubClasses += retrieveDirectSubClasses(className); - while(!isEmpty(allSubClasses)) { - currentClass = getOneFrom(allSubClasses); + directSubClasses = getAllDirectSubClassesOf(className); + checkedExceptionClasses += directSubClasses; + superClassesBySubClasses = delete(superClassesBySubClasses, className); - checkedExceptionClasses += currentClass; - - allSubClasses -= currentClass; - - if (currentClass in superClassesBySubClasses) { - directSubClasses = retrieveDirectSubClasses(currentClass); - allSubClasses += directSubClasses; - } - - superClassesBySubClasses = delete(superClassesBySubClasses, currentClass); - } + for (str className <- directSubClasses) + addAllSubClassesOf(className); } -private set[str] retrieveDirectSubClasses(str className) { - return superClassesBySubClasses[className]; +private set[str] getAllDirectSubClassesOf(str className) { + directSubClasses = {}; + if (className in superClassesBySubClasses) + directSubClasses = superClassesBySubClasses[className]; + return directSubClasses; } \ No newline at end of file From cf4d969604f34114168a8b4825aec48778eba31f Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 012/156] Removing unecessary parathensis --- src/io/IOUtil.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/io/IOUtil.rsc b/src/io/IOUtil.rsc index f8eb26c..175ba6a 100644 --- a/src/io/IOUtil.rsc +++ b/src/io/IOUtil.rsc @@ -9,7 +9,7 @@ list[loc] findAllFiles(loc location, str ext) { res = []; list[loc] allFiles; - if((isDirectory(location)) || (location.extension == "jar") || (location.extension == "zip")) { + if(isDirectory(location) || (location.extension == "jar") || (location.extension == "zip")) { allFiles = location.ls; } else { From d370ca59eb8aca3ad1751ad875c1a11beec1e42d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 013/156] Updating zip with classes being used for tests. --- testes/exception-hierarchy.zip | Bin 13321 -> 14015 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testes/exception-hierarchy.zip b/testes/exception-hierarchy.zip index 303af0b740becdff738aa8ffb3b1a7d55c61d426..494ad321797cf286eddec1838b85ad20c8eb22fe 100644 GIT binary patch delta 788 zcmeCo*q^&WosW4pZ~o-{+_v?8t`*6t1tppJd3wn?iN(dOetYu{CGglx-fwn+?JKL+ zwrL9^Z#cvTSi9;deAAbo_Jhkez(ZjD(Uv0zm_Gz?sEf=9$bI?7dj3*tneu7|SrgkU z9P9U7+jGKqmX5P+s_kRX6^9O9cm0}h-`F)=_~6@_N1n`QdHuH5XT$H8EwvF9^*IL` zy*ZR7e^~IN*HU_A#krR08dtOI!e(mzoS*SLc(cluMfE|Yoc|1Tjn3X*_J=!fdB6PD zpbW=F3v?z;<7k?>wvBSKO+} zoTcG;)>|{|gCj?1^OftLiWq@LuybVTW**#JD7T%96BvkIU<)S8tBX!{)6@f-Fi}l< zvWBJ{W6f25l{-b7DZI&E!a9vB~Ro1Si|;$T1m8 zfQ8;DivWf6nWjljZj{oQ%%f|`WG@9|>P;>MGT%U$6V$jT@75ET{8Lwsan|HUJ^jh+ zrT8cB*W;O-q$kJZAp=&wLC=!u8-zK56QbTkUyf;sELe7@3`E0Rpiqz;Sm+NoL=~HX z920{)ScpfHd$NKY3&>~=P%wc4Z8D>t7}GkiJfq*_je1g(^MM*-6ecGc>H)*al8I9h z%q)@= hU>LbDm8-(JZT55>GvZaJ5=(H4p zwKoI~(G(61(NIHEU@h&AErwn1_1@(>zjHn~d`}ydwfjV0t*8`L6crWwQHCqUfkG&Z zQp8>R2`8-B)+k1_j^V-qv*TN%WI;jQqC?Xs$(bs~cEo{Q=0r`WIf+j=Zuz=+ku3XBj_Rl;Z1^-(Y$YkN25@UI zRDue=3_BVeJxJ8F$ka@Vl9ixHHHK}drWkSe3;CCtAayxTh2(zOpk#A^yQ}69Zj2xlI Ef1+WVRR910 From bbb1bc07b2833460e4a9c2364c93ec5a8e9fae27 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 014/156] Extracting methods with more meaningful names. --- src/ExceptionFinder.rsc | 78 ++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index dc7911d..b26f558 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -10,55 +10,41 @@ import Map; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; -set[str] findCheckedExceptions(list[loc] locations) { - for(location <- locations) { - content = readFile(location); - - try { - unit = parse(#CompilationUnit, content); - - superClass = retrieveSuperClass(unit); - - if (superClass.present) { - subClassName = retrieveClassNameFromUnit(unit); +set[str] findCheckedExceptions(list[loc] javaFilesLocations) { + for(javaFileLocation <- javaFilesLocations) { + javaFileContent = readFile(javaFileLocation); + tryToNavigateClassesFindingSubClassesOfException(javaFileContent); + } + return checkedExceptionClasses; +} - // If class extends Exception or class that is a subclass of Exception - if (superClass.name in checkedExceptionClasses) { - checkedExceptionClasses += subClassName; - - if (subClassName in superClassesBySubClasses) { - addAllSubClassesOf(subClassName); - } - - } else { // Class has a superClass that we don't know yet if it's a sub class of Exception - if (superClass.name in superClassesBySubClasses) { - superClassesBySubClasses[superClass.name] += {subClassName}; - } else { - superClassesBySubClasses[superClass.name] = {subClassName}; - } - } - } - +private void tryToNavigateClassesFindingSubClassesOfException(str javaFileContent) { + try { + compilationUnit = parse(#CompilationUnit, javaFileContent); + handleIfClassHasASuperClass(compilationUnit); } catch: continue; - - +} + +private void handleIfClassHasASuperClass(unit) { + superClass = retrieveSuperClass(unit); + if (superClass.present) { + className = retrieveClassNameFromUnit(unit); + handleIfClassIsAnException(className, superClass.name); } - return checkedExceptionClasses; } private tuple[bool present, str name] retrieveSuperClass(unit) { - tuple[bool present, str name] SuperClass = ; + tuple[bool present, str name] superClass = ; visit(unit) { case(Superclass) `extends `: { - SuperClass.present = true; - SuperClass.name = unparse(id); + superClass.present = true; + superClass.name = unparse(id); } } - return SuperClass; + return superClass; } - private str retrieveClassNameFromUnit(unit) { visit(unit) { case(NormalClassDeclaration) ` class `: @@ -68,6 +54,26 @@ private str retrieveClassNameFromUnit(unit) { throw "Could not find class name"; } +private void handleIfClassIsAnException(str className, str superClassName) { + if (superClassName in checkedExceptionClasses) + addClassAndItsSubClassesAsExceptions(className); + else + addClassAsASubClassOfItsSuperClass(className, superClassName); +} + +private void addClassAndItsSubClassesAsExceptions(str className) { + checkedExceptionClasses += className; + if (className in superClassesBySubClasses) + addAllSubClassesOf(className); +} + +private void addClassAsASubClassOfItsSuperClass(str className, str superClassName) { + if (superClassName in superClassesBySubClasses) + superClassesBySubClasses[superClassName] += {className}; + else + superClassesBySubClasses[superClassName] = {className}; +} + private void addAllSubClassesOf(str className) { directSubClasses = getAllDirectSubClassesOf(className); checkedExceptionClasses += directSubClasses; From a0320825720695193c4f399623df0251df8a0282 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 16:00:39 -0300 Subject: [PATCH 015/156] Git ignore --- bin/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 bin/.gitignore diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..c8bcf3e --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/ExceptionFinder.rsc From 816549a297e3808d80a156136e1ca34a3f86af71 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 15 Mar 2017 12:27:50 -0300 Subject: [PATCH 016/156] Capturing classes with more than one class modifier. - Forgot a '*', meaning that more than one class modifier would not pattern match. --- src/ExceptionFinder.rsc | 4 ++-- src/ExceptionFinderTest.rsc | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index b26f558..6b4697b 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -47,7 +47,7 @@ private tuple[bool present, str name] retrieveSuperClass(unit) { private str retrieveClassNameFromUnit(unit) { visit(unit) { - case(NormalClassDeclaration) ` class `: + case(NormalClassDeclaration) ` class `: return unparse(id); } // Not the best solution. quick workaround @@ -57,7 +57,7 @@ private str retrieveClassNameFromUnit(unit) { private void handleIfClassIsAnException(str className, str superClassName) { if (superClassName in checkedExceptionClasses) addClassAndItsSubClassesAsExceptions(className); - else + else addClassAsASubClassOfItsSuperClass(className, superClassName); } diff --git a/src/ExceptionFinderTest.rsc b/src/ExceptionFinderTest.rsc index d619e8a..e703673 100644 --- a/src/ExceptionFinderTest.rsc +++ b/src/ExceptionFinderTest.rsc @@ -42,4 +42,8 @@ public test bool shouldNotReturnUncheckedExceptions() { "UncheckedLevelFourRuntimeException" notin checkedExceptions && "UncheckedLevelThreeRuntimeException" notin checkedExceptions && "UncheckedLevelTwoRuntimeException" notin checkedExceptions; +} + +public test bool shouldReturnAbstractCheckedException() { + return "AbstractCheckedException" in checkedExceptions; } \ No newline at end of file From cd58a6a098698cd90d1f1fbc220bfbfdf177f6fe Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 01:26:47 -0300 Subject: [PATCH 017/156] Initializing classes found when method is called. - Initializing at module level didn't reset the state on future calls. --- src/ExceptionFinder.rsc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 6b4697b..a8a2b5a 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -7,10 +7,11 @@ import ParseTree; import Set; import Map; -private map[str, set[str]] superClassesBySubClasses = (); -private set[str] checkedExceptionClasses = {"Exception"}; +private map[str, set[str]] superClassesBySubClasses; +private set[str] checkedExceptionClasses; set[str] findCheckedExceptions(list[loc] javaFilesLocations) { + initializeClassesFound(); for(javaFileLocation <- javaFilesLocations) { javaFileContent = readFile(javaFileLocation); tryToNavigateClassesFindingSubClassesOfException(javaFileContent); @@ -18,6 +19,11 @@ set[str] findCheckedExceptions(list[loc] javaFilesLocations) { return checkedExceptionClasses; } +private void initializeClassesFound() { + superClassesBySubClasses = (); + checkedExceptionClasses = {"Exception"}; +} + private void tryToNavigateClassesFindingSubClassesOfException(str javaFileContent) { try { compilationUnit = parse(#CompilationUnit, javaFileContent); From 5386e472f93ed01d050640fda839eba77a09ce74 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 01:44:43 -0300 Subject: [PATCH 018/156] Map has to be instantiated with '()'. - Don't know why, but errors occur when don't. --- src/ExceptionFinder.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index a8a2b5a..aeb60c8 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -7,8 +7,8 @@ import ParseTree; import Set; import Map; -private map[str, set[str]] superClassesBySubClasses; -private set[str] checkedExceptionClasses; +private map[str, set[str]] superClassesBySubClasses = (); +private set[str] checkedExceptionClasses = {"Exception"}; set[str] findCheckedExceptions(list[loc] javaFilesLocations) { initializeClassesFound(); From f398ddfade21c8145571600bc907e4aa31c04ead Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 12:27:32 -0300 Subject: [PATCH 019/156] Making sure that findCheckedExceptions() is called before every test. - Assuring test are independent/isolated. - Slower runtime but still fast due to small example case. - I didn't find a DRY way to do it like JUnit's @Before -- Tests don't run in declaration order. We can't declare a function first and expect it to work. - It only ran once at test startup, much like @BeforeClass. --- bin/.gitignore | 1 + src/ExceptionFinderTest.rsc | 18 ++++++++++++++++-- testes/exception-hierarchy.zip | Bin 14015 -> 22625 bytes 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/bin/.gitignore b/bin/.gitignore index c8bcf3e..63402fa 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1 +1,2 @@ /ExceptionFinder.rsc +/ExceptionFinderTest.rsc diff --git a/src/ExceptionFinderTest.rsc b/src/ExceptionFinderTest.rsc index e703673..bd07cc2 100644 --- a/src/ExceptionFinderTest.rsc +++ b/src/ExceptionFinderTest.rsc @@ -7,37 +7,42 @@ import ExceptionFinder; private loc zipFile = |jar:///D:/exception-hierarchy.zip!|; private list[loc] javaClassesLocations = listAllJavaFiles(zipFile); -private set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); - public test bool shouldReturnExceptionClass() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "Exception" in checkedExceptions; } public test bool shouldReturnLevelTwoHierarchyClasses() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "AException" in checkedExceptions && "BException" in checkedExceptions && "CException" in checkedExceptions && "ZException" in checkedExceptions; } public test bool shouldReturnLevelThreeHierarchyClasses() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "DException" in checkedExceptions && "FException" in checkedExceptions && "IException" in checkedExceptions; } public test bool shouldReturnLevelFourHierarchyClasses() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "LException" in checkedExceptions && "EException" in checkedExceptions && "JException" in checkedExceptions && "HException" in checkedExceptions; } public test bool shouldReturnLevelFiveHierarchyClasses() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "GException" in checkedExceptions && "KException" in checkedExceptions && "NException" in checkedExceptions; } public test bool shouldReturnLevelSixHierarchyClasses() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "MException" in checkedExceptions; } public test bool shouldNotReturnUncheckedExceptions() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "RuntimeException" notin checkedExceptions && "UncheckedLevelFourRuntimeException" notin checkedExceptions && "UncheckedLevelThreeRuntimeException" notin checkedExceptions && @@ -45,5 +50,14 @@ public test bool shouldNotReturnUncheckedExceptions() { } public test bool shouldReturnAbstractCheckedException() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); return "AbstractCheckedException" in checkedExceptions; +} + +public test bool shouldReturnStaticInnerCheckedExceptions() { + set[str] checkedExceptions = findCheckedExceptions(javaClassesLocations); + return "ExceptionClassWithOnlyZeroArgCtor" in checkedExceptions && + "CustomServiceLocatorException3" in checkedExceptions && + "CustomServiceLocatorException2" in checkedExceptions && + "DeepNestedStaticException" in checkedExceptions; } \ No newline at end of file diff --git a/testes/exception-hierarchy.zip b/testes/exception-hierarchy.zip index 494ad321797cf286eddec1838b85ad20c8eb22fe..7c25e56e78c0b99600eb029da8a5d0e44662f8ed 100644 GIT binary patch delta 8598 zcmb_h2{_c<_h*oiWb9kUnq(RKzAt6X8nT3mA!4k_KGBq{sc&QrMQ>!^%RXsZ$oe8m z*;{1aL;f?vEBZZo-rw)}e?6Z0-h0pYo^wCv+;h)4x50h5n7CMhgoHlWvrL&pni&5A zbkZmQjUrS)1L^E;dx~sz_x(LTEpX(>VL*la{cd0UF)ARHLJ)`tH}3WooumaaDJFK? zZ^gE0HV*%y`9Zm|J1#=?iw9VO3h+MqZD&jgNTc4^eHRvj;O6B8j?iH6ePx|A65E2S z(JKK(+?0SJ-3(zsjech!mzNiqJwXk0z?gwJDFz^&nH>1Y@Pk0~p3$E0b(u2r1!5Z9 ze7Zz?9#sHN!HV+my@>GEfcqePMAR<$_yrKr%co~7uC6CQ5tJiNygA3G2C4~_ZifF){1NQn<=EYi@Neww@HR0exDnET)YhPTSfOmAGj1$8S+ z&;U&f8qpGOo8|fC7f!d@GrK4@%3;wMR@zUI3V;r9N@kl-n+<&Z9|uCbViRv3=(2$-B;K%;9B4hA)~f> z!F}_rfNhjIe9m5P<}2&KtLf8s+?G57XcbpUHjFQnMlo*4CN++|ZAneOS6hoxRw9wb zq(mGWK9?e9!T#te(hq3H+;mBGyJF(*_+iwQTOIl;o+YCbqbtg3iB!JNopl%kQ2qY zD({APY=q5HdX&*+rw7EQm~jr2prEv5qmJf(&v#Tf>q3v**|Kkle8(lE5!Ge-Pf(mn$icLm zJ_Plsg8tuBB)(roWtD>!=9jG3hfhHiFOpGmbDz~bc^EU2le6MW?Q4e-@=@7cq?t{_rG)0S)#jSR{)6$N%(ftj$*|IVY}W)1I`I()dD(f>~9n=Rk6EW``-A0yJms^ zU3XRg(^E=8Rrn>WmvJ(L##8$n{(~HptD950#H{LXOg9u@kO?a z@HG;=PV{b_fJ)-Fj5y@~Pbm^RN-@Om8~U`qX}>9}0{4PCitvbUO;CE8Jlm)X@HvyO zO6N7$`uXlSMx$DQp(c)@TeN^#IcK0~*os*4iqrg$}J#b z`X+{@@B2}2ho0c(CG~7Y9}gd=<{?G*vRfD1V#mr?mee1o9X|P8E^F{i zJq6E`>uJj?ShRg6G9X4gPYQjLV!SY7GBSQcKEtrO9uCCNrPxZdNeBmTQ5^E)J2K3> zmNBQymEwbPcvlWtg~vl~oh>vCJy~nz5U>>HOy}Bi4lSLv5Y2>H{)8+hSqWLyn7;A2 zn)&H;>-e3P;h%Ko(DTNayl5|CTdqckl!bdpeDRH?3pzLDrK37ei*;*0Nt$nwVXygd z6t4nLbh9NlP6a=I_guO}NA@^;gWnzgK1ZgBKzJG;e0&j(roM1r7l&OZwylcceK2jm&${4`DJ3 zAA_fYgX`-^WSdT3J%k#5?8{;ig6PNgo#KKQ=Eo0GPQ1QaFzWl|uEdXd%Z29TQt%K> z<=VZ0bI$o3vax2t3l^HQ?fUQ!a#>HSRJi>&#m6CM%6ZC%=;R|$`iq7f^SS&NR*o)E zC)Z5bBq4c@qthq31U)+TX-n}q`nk82OTBoR&fr?*^Pr_{aA&PEW2V+So8pM#3Qsye zPUj2D+WKvDN6;^%$gRkW&IR7i3^VE|dSNX@dHNICh{d-J*I4%aNb1RDSa0V~5FTv7 zLFG9T9MF~j3HBbW%@4$S7hA$9V&UR@(GcktV1@AZQ1f=yz?~rf*ng8Q{@mzB*7%(- za3^agqyE-Z=YKnjGdjHZn_BLW@OcfHQocK9qC*o;G+pBu(uyoI&Ss*~A9`CW6Of#Y zTDjFHLlkt5x|8!en}v32l&<;f+}^ar2Ny~MHj-M%|B6}0RCvF*4$DAhOKJI~$UA6| zqMOo_qO<7(Q#P2vQzSVF3cQk4l`qkpQdQ#Wbm`2(6bCrw zK+v^u3fP5K+XVr5Qc(W!;6CN=i$FRe9M9rxe&_i94@=j1Sdlwoxi~~V5H0gU&lnPZ zFY#m5YgLPpL#6M38M@A5{57R&T&Po*-riocLQQ1xj=F;@?H=-VkESK6a+KVGSLiN- zcks%{yRo$Pch62*TuS#My5(7(o0*_J>rvi0o!Frymrhr!lk9_rVVIRx(Q0{ADuwr% zY~KF;AU=v$Si-E;Ea%cs!9ZlL@G$r0%fvqPMXSQRn3>Ci4)0*q!6uhZ-F$C#742CJ z2f-I#9#L<2;R%+bU*ZvyvosQgNF!xC6oQ`jJ|Sh-3=id5esOj6gxZGRLPPfuQOyWl zq$4T@qPxzu3<)K8bdFw4sdXHb^#_9Oe4vHz4~TS-z6ft8xB~)j>Nw!N;RYT^4G(uu zHy1e4_YA`KqKD&-$;T6-%o|&|DM?nBCSNdp;j%qK@1ewaUH5Md()LMtKI@S}H|$7R zz$|evzZc4sl*EL88orgBF`SyQwh_2RNoxZKq-=pG=dg)o4Q;*Ep~JRy6K;B@5zM30W0sW1k36%DAs%)lNfF&_ zkBkEY?wA|=gVNj(zm9s_>Uk))eSz1cJ!#osM^_{^1 zzIY(u{}He6bKn1A#<9B&+cNd^de)HTStII+5uCq;fFOTl-5_y{9`VtmUZr-J?z=d-5@e9TFV8`+ykkf*7 zojO@lm*&$7WLMC$ZRbX3C3TZONZ$&a~!D@*Lsm@sSg3=d}QghBf}4$P1P z!BjiYdiQ|26CcJJ?qomsOm2f|sRgh#adlPZf*x~3 zf_QtsL&-!J4TjCVyyp0#VS6Il-dx2iM)?NCAuxqYA(e`o?O`Ni-s2?E*OMk@dOcqf zx1z$VUG!vMZQKBhz7@~4?LtT`!3k?tc+|GuGov;DjV zXc$zZ%C{V7`+N4rW9-BcqCLxxTTK}AZuSMVi2`K6Fv^y}@2}RSyN_cHvU^Tv8hl9` zH^U~kcKZj(K53?XaJK(WiYTk0G(#^8{L{cr|AF~mF)yDXhQEhIKoWyM#Bd{cnQC;$ z77s6}-KXWy^k<~%R5P5*AFj5%3R@lHQ!G?Et*oxux_YMk{0w2|mUaxtKEpv{wF3>) zZU(-uZt<^eZ3mlwcCgV~TrkC)=3y-}SlRm%98NA0Xhg~s1@3Y%hA=ATi$FBaRpm$W zy3F+}E)xGRdQrqQ7@ja8{t2DjI%ZwakVu5|5`xeay8Cw{1?o`CUjZ>i^Dc>}{+-HW z1H!sF5>Fh9kwP83i_YF$-MT5RPtut{E)7xeqpK79X|B(^S`<{ zvdXcPyy%+qm0v%Quh*ZSd#NxH;jM5*S0#}_hV}0PnN)8ya?>DFOSb>^DcN~5+++&9n)KAZ*U^njJ@qq~-IvACvLC}07oXWK>&S~WP75ZS z=kmNr;zb;;-wrgn{}$Gr94$7!9bXp0HsnfO+B%oI+(B+6%AIu0Hd`yp=%&B6oqf$w z7u{COwAE~n;wq8yU0*u%>BsR(-#z@6Q~Ud82nP+xBM>{Lz>iJZ5Y<&0dk^vTxw;jq z+N$L8$<*_OvYoo}?$cz?&~xU~jyA8vqwRXF&ErJhyptM3Pk!NZ>AYg#A9F{e;qT$GMXV;Xv=4{}gNW`U#iILF z)GSg&d^?I(h;Q7d<47L`Wi=dc*Xejq0CbkC zf^8ZH=*)qDN*=U_ccPuUb{@29^e@`oPx8>a>-AV|opmv`&O4Q99*b?xDCO?^0gw7>~yqd?dC46+zCy` z?x3%y_?gx9xd?1&OS7MP)vKr{|FWwOt^}cbltY4X6`q(Aq4;{EZ$Ws;HeyrnVYC8V zNS!Z5M(trj#gunuy?1J>d(FNE7)F=IEQ*DO+FtHCX zDLf&)K;sj!Bx(|A=`<~#A)ayE6h$a-RlM}qr@+-w>c{{Ql4E7XESX1G{;5Pt#Cq)W zgDOA?3oGlN>$iX!J0t3q$ZKt3Zv!C%;mV2ek#Pb3GjCq&n``R}z)tGw!;H1tbcA5$ zo@noM2@{~q)YL}sjwz+C_`(9ciJ-2@f=Ltugu92+)HUGgws;+L5hggpx5xeeDv=gB zcW0a|B zX=|o#-kN@N=7Q^)ScW>Z|a2 zp&uvV(_l6*$om5NHm`sx$c|^d*_jV3e*}TivEe>~VFe;B51ii1d5@N;$i54gnO0SFC~CEN?8qs* zv>e$id!n*mz%)d1PFnsnJC$GJ4<+eWF2r}<&eA)^FNv!exX(ZDM`5QT7>km>Np^Rx zY+4Am=dH$$NY=iDKI)BepC|`C*Rx0;E4bxMWqLF{@s{Z;Ps6(CJ!KA& z&orZJ=(Cl<#W+z?&qRNWGuA21FL;#D1TPXz7RGSYn*H_qUIAvD9Usbk zepw_?fpdZSrPw4QGXd3`j1Q>w= zetiPv2LCptkc^!=fimpm_CUu;X99t|z&3$h&E1;>f(C(Yf}?`l1pb2C1kY%K6bJ;H zg4+c8LfZtDJHMR5+wCY}6k+Bgu&adMTd+{V?a1C60961gg1=cIJ!pq{!Pq!)7X-R{ z>(Zt;>;Lt9Vg;JWST63_rTenBe{*|aq(=;*C;Al&?G{{dequkf2gm+*W;;>R@67g= z7WXr=fd22yc4CL$ne8pD8T`T!_x6JW&y4?1F#cY<1pZOX-nx`$xQlUi@bK)+AEH{n#>D48wC^`U6P7I!qLFO%w>@76LL(Pyz#D5WrUi3K9~-l?h-# zBr7%WQS1mXi0kU#?wTRnraCPO1x1Jxs0R5dfecX?NJ@gx+!U1qjc&iHvTuJMCI$uF zmc)%ZgH)slL}}3N5mRv}XllD_Mt~B?7l(mTr3n;=CFDRlG6cy|sHuQZ2^eU3yD2C{ zMG$mF0t(8OB~WZ}(GUc+mxO{$u0ipEUa*InrK?U--F5Wx5Vg#Zx zTu-FJb`LW^Ev*T1RQ#vaew-Ok!-)?REA~WcD*G^2P{Pr(9CWI6h_Q0wW4d4GI}s5+ jru+5$Aj~2D2R#u2J0m@^L--G5aeoTTL_`o(eCz)J5~-i} delta 788 zcmXYsOH5Ni7=?Rhc-+#K-j?zducC+`SPPX$Da1Z_)OrO9MHZ4^jO4B?L>De3ijhP& z7?R@(0bS@qP{edWB2kF0j0w=4f)Zg#XxK?(FmXD!GmANMzWM)u&h~<^d~?A~G47C} zmuQ86x@rkq7CXLrt$1V3!fM(!-ITHVy(vi8V+!f(&tPGysFdupFJkr%HE~3d{#52%!l*~ z@6!xVgMrPdfYI`qZp=iYF^f|`ze_@g&4DSG0i8Mf^alf88v~1tQgkdgEYKU%k?3aL zH7@Y3xExZZ0p>s~Rs@F)r)t z%vcT^G0`KFdCl5lwEsAxRhTrJ_!q8+WuhS<9W?YfUO42Gtys?@WJYv>VDYq{76{0+li}j{7j`V#pxpOLoYHaBlI<`);eO1!w II?9r_|A1L0V*mgE From 84e382ee344ee1dc8ec5cc4f9a97e482b206abb3 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 12:27:32 -0300 Subject: [PATCH 020/156] Big refactor and now finding inner classes too! - Considering that we might have several class definitions in one unit(.java file) -- Before we were returning after the first class definition, ignoring following definitions. --- This also produced unwanted behavior to capture a superClassName when multiple classes were defined within the same unit - Finding classes with super classes in only one visit. -- 'Superclass' is actually part of 'NormalClassDeclaration' syntax - Introducing an AlgebraicDataType to handle class' and superClass' names -- Replacing the tuple used previously --- src/ExceptionFinder.rsc | 63 +++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 40 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index aeb60c8..0160921 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -10,11 +10,14 @@ import Map; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; +private data ClassAndSuperClass = classAndSuperClass(str className, str superClassName); + set[str] findCheckedExceptions(list[loc] javaFilesLocations) { initializeClassesFound(); for(javaFileLocation <- javaFilesLocations) { javaFileContent = readFile(javaFileLocation); - tryToNavigateClassesFindingSubClassesOfException(javaFileContent); + visitJavaFilesLookingForClassesWithSubClasses(javaFileContent); + } return checkedExceptionClasses; } @@ -24,47 +27,27 @@ private void initializeClassesFound() { checkedExceptionClasses = {"Exception"}; } -private void tryToNavigateClassesFindingSubClassesOfException(str javaFileContent) { - try { - compilationUnit = parse(#CompilationUnit, javaFileContent); - handleIfClassHasASuperClass(compilationUnit); - } catch: - continue; -} - -private void handleIfClassHasASuperClass(unit) { - superClass = retrieveSuperClass(unit); - if (superClass.present) { - className = retrieveClassNameFromUnit(unit); - handleIfClassIsAnException(className, superClass.name); - } -} - -private tuple[bool present, str name] retrieveSuperClass(unit) { - tuple[bool present, str name] superClass = ; - visit(unit) { - case(Superclass) `extends `: { - superClass.present = true; - superClass.name = unparse(id); - } - } - return superClass; +private void visitJavaFilesLookingForClassesWithSubClasses(str javaFileContent) { + compilationUnit = parse(#CompilationUnit, javaFileContent); + classesAndSuperClasses = retrieveClassesAndSuperClassesFromCompilationUnit(compilationUnit); + for(classAndSuperClass <- classesAndSuperClasses) + handleIfClassIsAnException(classAndSuperClass); } -private str retrieveClassNameFromUnit(unit) { - visit(unit) { - case(NormalClassDeclaration) ` class `: - return unparse(id); +private list[ClassAndSuperClass] retrieveClassesAndSuperClassesFromCompilationUnit(compilationUnit) { + list[ClassAndSuperClass] classesAndSuperClasses = []; + visit(compilationUnit) { + case(NormalClassDeclaration) ` class extends `: + classesAndSuperClasses += classAndSuperClass(unparse(className), unparse(superClassName)); } - // Not the best solution. quick workaround - throw "Could not find class name"; + return classesAndSuperClasses; } -private void handleIfClassIsAnException(str className, str superClassName) { - if (superClassName in checkedExceptionClasses) - addClassAndItsSubClassesAsExceptions(className); +private void handleIfClassIsAnException(ClassAndSuperClass cas) { + if (cas.superClassName in checkedExceptionClasses) + addClassAndItsSubClassesAsExceptions(cas.className); else - addClassAsASubClassOfItsSuperClass(className, superClassName); + addClassAsASubClassOfItsSuperClass(cas); } private void addClassAndItsSubClassesAsExceptions(str className) { @@ -73,11 +56,11 @@ private void addClassAndItsSubClassesAsExceptions(str className) { addAllSubClassesOf(className); } -private void addClassAsASubClassOfItsSuperClass(str className, str superClassName) { - if (superClassName in superClassesBySubClasses) - superClassesBySubClasses[superClassName] += {className}; +private void addClassAsASubClassOfItsSuperClass(ClassAndSuperClass cas) { + if (cas.superClassName in superClassesBySubClasses) + superClassesBySubClasses[cas.superClassName] += {cas.className}; else - superClassesBySubClasses[superClassName] = {className}; + superClassesBySubClasses[cas.superClassName] = {cas.className}; } private void addAllSubClassesOf(str className) { From dcb31ed57379e49cc822d0d33213847c20185e66 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 12:27:32 -0300 Subject: [PATCH 021/156] Catching and storing locations that could not be parsed. - Our syntax isn't 100%, so there are multiple classes that can't be parsed --- src/ExceptionFinder.rsc | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 0160921..7a30cfb 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -9,25 +9,34 @@ import Map; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; +private list[loc] fileLocationsThatCouldNotBeParsed = []; private data ClassAndSuperClass = classAndSuperClass(str className, str superClassName); set[str] findCheckedExceptions(list[loc] javaFilesLocations) { initializeClassesFound(); - for(javaFileLocation <- javaFilesLocations) { - javaFileContent = readFile(javaFileLocation); - visitJavaFilesLookingForClassesWithSubClasses(javaFileContent); - - } + for(javaFileLocation <- javaFilesLocations) + tryToVisitFileLookingForClassesWithSubClasses(javaFileLocation); + + printJavaFileLocationsThatCouldNotBeParsed(); return checkedExceptionClasses; } private void initializeClassesFound() { superClassesBySubClasses = (); checkedExceptionClasses = {"Exception"}; + fileLocationsThatCouldNotBeParsed = []; +} + +private void tryToVisitFileLookingForClassesWithSubClasses(loc javaFileLocation) { + javaFileContent = readFile(javaFileLocation); + try + visitFileLookingForClassesWithSubClasses(javaFileContent); + catch: + fileLocationsThatCouldNotBeParsed += javaFileLocation; } -private void visitJavaFilesLookingForClassesWithSubClasses(str javaFileContent) { +private void visitFileLookingForClassesWithSubClasses(str javaFileContent) { compilationUnit = parse(#CompilationUnit, javaFileContent); classesAndSuperClasses = retrieveClassesAndSuperClassesFromCompilationUnit(compilationUnit); for(classAndSuperClass <- classesAndSuperClasses) @@ -77,4 +86,9 @@ private set[str] getAllDirectSubClassesOf(str className) { if (className in superClassesBySubClasses) directSubClasses = superClassesBySubClasses[className]; return directSubClasses; +} + +private void printJavaFileLocationsThatCouldNotBeParsed() { + println("Java File Locations that could not be parsed: "); + println(fileLocationsThatCouldNotBeParsed); } \ No newline at end of file From 5bf86b3cbc21835627366db10459ed4cbaaba0e6 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 17 Mar 2017 12:27:32 -0300 Subject: [PATCH 022/156] Printing total count of files not parsed, and conditionally printing names --- src/ExceptionFinder.rsc | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 7a30cfb..150b5b8 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -6,6 +6,7 @@ import lang::java::\syntax::Java18; import ParseTree; import Set; import Map; +import util::Math; private map[str, set[str]] superClassesBySubClasses = (); private set[str] checkedExceptionClasses = {"Exception"}; @@ -13,12 +14,14 @@ private list[loc] fileLocationsThatCouldNotBeParsed = []; private data ClassAndSuperClass = classAndSuperClass(str className, str superClassName); +private bool printAllFileNamesThatCouldNotBeParsed = false; + set[str] findCheckedExceptions(list[loc] javaFilesLocations) { initializeClassesFound(); for(javaFileLocation <- javaFilesLocations) tryToVisitFileLookingForClassesWithSubClasses(javaFileLocation); - printJavaFileLocationsThatCouldNotBeParsed(); + printJavaFilesThatCouldNotBeParsed(); return checkedExceptionClasses; } @@ -88,7 +91,15 @@ private set[str] getAllDirectSubClassesOf(str className) { return directSubClasses; } -private void printJavaFileLocationsThatCouldNotBeParsed() { - println("Java File Locations that could not be parsed: "); - println(fileLocationsThatCouldNotBeParsed); +private void printJavaFilesThatCouldNotBeParsed() { + str filesNotParsedCount = toString(size(fileLocationsThatCouldNotBeParsed)); + println(filesNotParsedCount + " Java File Locations that could not be parsed. "); + + if (printAllFileNamesThatCouldNotBeParsed) { + for(fileLoc <- fileLocationsThatCouldNotBeParsed) + print(fileLoc.file + ", "); + println(); + } + + println(); } \ No newline at end of file From 098aa40cb8286121cf1b4681ff4b1eea3b2a3a08 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 19 Mar 2017 22:09:56 -0300 Subject: [PATCH 023/156] Initial impl - Finding throw statements and breaks inside for stataments. --- src/ForLoop.rsc | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/ForLoop.rsc diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc new file mode 100644 index 0000000..cc01c88 --- /dev/null +++ b/src/ForLoop.rsc @@ -0,0 +1,52 @@ +module ForLoop + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; + +public void findForLoops(list[loc] locs) { + for(fileLoc <- locs) { + javaFileContent = readFile(fileLoc); + try { + unit = parse(#CompilationUnit, javaFileContent); + lookForForStatements(unit); + } catch: + continue; + } +} + +private void lookForForStatements(CompilationUnit unit) { + visit(unit) { + case (BasicForStatement) `for ( ; ; ) `: + lookForBreakingPreConditions(stmt); + case (EnhancedForStatement) `for ( : ) `: + lookForBreakingPreConditions(stmt); + case (BasicForStatementNoShortIf) `for ( ; ; ) `: + println("TODO"); + case (EnhancedForStatementNoShortIf) `for ( : ) `: + println("TODO"); + } +} + + +// syntax BreakStatement = "break" Identifier? ";" ; +// syntax ThrowStatement = "throw" Expression ";" ; +// syntax Expression = LambdaExpression | AssignmentExpression ; +// syntax AssignmentExpression = ConditionalExpression | Assignment ; +// syntax Assignment = LeftHandSide AssignmentOperator Expression ; +// syntax LeftHandSide = ExpressionName | FieldAccess | ArrayAccess ; +// syntax ExpressionName = Identifier | AmbiguousName "." Identifier ; +// syntax AmbiguousName = Identifier | AmbiguousName "." Identifier ; +// syntax Identifier = id: [$ A-Z _ a-z] !<< ID \ IDKeywords !>> [$ 0-9 A-Z _ a-z]; +// syntax UnqualifiedClassInstanceCreationExpression = "new" TypeArguments? ClassOrInterfaceTypeToInstantiate "(" ArgumentList? ")" + +private void lookForBreakingPreConditions(Statement stmt) { + visit(stmt) { + case (ThrowStatement) `throw new ( );`: { + println(className); + } + case (BreakStatement) `break ;`: { + println("break"); + } + } +} \ No newline at end of file From 0cc3d43353c06325110a6b885515f7fe960066a9 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 19 Mar 2017 22:59:25 -0300 Subject: [PATCH 024/156] Finding more than one return statement inside a for statement. --- src/ForLoop.rsc | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index cc01c88..825fe1c 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -3,8 +3,15 @@ module ForLoop import IO; import lang::java::\syntax::Java18; import ParseTree; +import ExceptionFinder; +import util::Math; -public void findForLoops(list[loc] locs) { +// TODO maybe return set[Identifier] +// avoids unparse() +private set[str] checkedExceptionClasses; + +public void findForLoops(list[loc] locs, set[str] checkedExceptions) { + checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { javaFileContent = readFile(fileLoc); try { @@ -18,9 +25,9 @@ public void findForLoops(list[loc] locs) { private void lookForForStatements(CompilationUnit unit) { visit(unit) { case (BasicForStatement) `for ( ; ; ) `: - lookForBreakingPreConditions(stmt); + isLoopEligibleForRefactor(stmt); case (EnhancedForStatement) `for ( : ) `: - lookForBreakingPreConditions(stmt); + isLoopEligibleForRefactor(stmt); case (BasicForStatementNoShortIf) `for ( ; ; ) `: println("TODO"); case (EnhancedForStatementNoShortIf) `for ( : ) `: @@ -40,13 +47,30 @@ private void lookForForStatements(CompilationUnit unit) { // syntax Identifier = id: [$ A-Z _ a-z] !<< ID \ IDKeywords !>> [$ 0-9 A-Z _ a-z]; // syntax UnqualifiedClassInstanceCreationExpression = "new" TypeArguments? ClassOrInterfaceTypeToInstantiate "(" ArgumentList? ")" -private void lookForBreakingPreConditions(Statement stmt) { +// TODO extract module and test it +private bool isLoopEligibleForRefactor(Statement stmt) { + returnCount = 0; visit(stmt) { case (ThrowStatement) `throw new ( );`: { - println(className); + classNameStr = unparse(className); + if (classNameStr in checkedExceptionClasses) { + println("found checked exception (" + classNameStr + ") thrown inside a for statement."); + return false; + } } case (BreakStatement) `break ;`: { - println("break"); + println("found break statement inside a for statement."); + return false; + } + case (ReturnStatement) `return ;`: { + returnCount += 1; } } + if (returnCount > 1) { + println("returnCount: " + toString(returnCount)); + println(stmt); + println(); + return false; + } + return true; } \ No newline at end of file From 5429595274cab6915e2528e0ebf808e20724812d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 19 Mar 2017 22:59:25 -0300 Subject: [PATCH 025/156] Looking for continue statements inside for statements. --- src/ForLoop.rsc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 825fe1c..39181dd 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -65,11 +65,16 @@ private bool isLoopEligibleForRefactor(Statement stmt) { case (ReturnStatement) `return ;`: { returnCount += 1; } + // LambdaFicator restructures code to eliminate 'continue' + // if we don't do this, we should not allow 'continue' + case (ContinueStatement) `continue ;`: { + println("found continue statement inside a for statement."); + return false; + } } if (returnCount > 1) { - println("returnCount: " + toString(returnCount)); - println(stmt); - println(); + println("more than one (" + toString(returnCount) + " total) return statements inside a for statement."); + // println(stmt); return false; } return true; From 91794ccff42372c333fe85b0fcd559733234586c Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Mon, 20 Mar 2017 11:05:05 -0300 Subject: [PATCH 026/156] Comment for no labeled 'continue' allowed. --- src/ForLoop.rsc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 39181dd..7396d80 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -67,6 +67,7 @@ private bool isLoopEligibleForRefactor(Statement stmt) { } // LambdaFicator restructures code to eliminate 'continue' // if we don't do this, we should not allow 'continue' + // Even if we do it, no labeled 'continue' are allowed case (ContinueStatement) `continue ;`: { println("found continue statement inside a for statement."); return false; From 0b776ea4162ee3fdfacc51a7dbd850f5edfa69d8 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 21 Mar 2017 21:01:33 -0300 Subject: [PATCH 027/156] module ParseTreeVisualization - Making possible to visualize any Syntax Tree. --- src/ParseTreeVisualization.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ParseTreeVisualization.rsc b/src/ParseTreeVisualization.rsc index ca2d2ab..aed4578 100644 --- a/src/ParseTreeVisualization.rsc +++ b/src/ParseTreeVisualization.rsc @@ -6,7 +6,7 @@ import vis::Figure; import vis::ParseTree; import vis::Render; +void visualize(Tree t) { + render(visParsetree(t)); +} -void visualize(CompilationUnit unit) { - render(visParsetree(unit)); -} \ No newline at end of file From 3f9891066b9505449f6a00993cc02e3043909b84 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:20:52 -0300 Subject: [PATCH 028/156] Experimenting with a module for finding local variables in a MethodBody --- src/ForLoop.rsc | 43 ++++++++---------- src/LocalVariablesFinder.rsc | 32 ++++++++++++++ src/LocalVariablesFinderTest.rsc | 33 ++++++++++++++ src/LocalVariablesFinderTestResources.rsc | 11 +++++ .../EnhancedForLoopFinalVarDecl | 44 +++++++++++++++++++ 5 files changed, 138 insertions(+), 25 deletions(-) create mode 100644 src/LocalVariablesFinder.rsc create mode 100644 src/LocalVariablesFinderTest.rsc create mode 100644 src/LocalVariablesFinderTestResources.rsc create mode 100644 testes/localVariables/EnhancedForLoopFinalVarDecl diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 7396d80..77071da 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -3,11 +3,9 @@ module ForLoop import IO; import lang::java::\syntax::Java18; import ParseTree; -import ExceptionFinder; import util::Math; +import LocalVariablesFinder; -// TODO maybe return set[Identifier] -// avoids unparse() private set[str] checkedExceptionClasses; public void findForLoops(list[loc] locs, set[str] checkedExceptions) { @@ -24,29 +22,24 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { private void lookForForStatements(CompilationUnit unit) { visit(unit) { - case (BasicForStatement) `for ( ; ; ) `: - isLoopEligibleForRefactor(stmt); + case (MethodDeclaration) ` `: { + bool findEffectiveFinalLocalVars = doesMethodHaveAnEligibleForLoop(methodBody); + if (findEffectiveFinalLocalVars) + findLocalVariables(methodBody); + } + } +} + +private bool doesMethodHaveAnEligibleForLoop(MethodBody methodBody) { + visit(methodBody) { case (EnhancedForStatement) `for ( : ) `: - isLoopEligibleForRefactor(stmt); - case (BasicForStatementNoShortIf) `for ( ; ; ) `: - println("TODO"); + return isLoopEligibleForRefactor(stmt); case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } + return false; } - -// syntax BreakStatement = "break" Identifier? ";" ; -// syntax ThrowStatement = "throw" Expression ";" ; -// syntax Expression = LambdaExpression | AssignmentExpression ; -// syntax AssignmentExpression = ConditionalExpression | Assignment ; -// syntax Assignment = LeftHandSide AssignmentOperator Expression ; -// syntax LeftHandSide = ExpressionName | FieldAccess | ArrayAccess ; -// syntax ExpressionName = Identifier | AmbiguousName "." Identifier ; -// syntax AmbiguousName = Identifier | AmbiguousName "." Identifier ; -// syntax Identifier = id: [$ A-Z _ a-z] !<< ID \ IDKeywords !>> [$ 0-9 A-Z _ a-z]; -// syntax UnqualifiedClassInstanceCreationExpression = "new" TypeArguments? ClassOrInterfaceTypeToInstantiate "(" ArgumentList? ")" - // TODO extract module and test it private bool isLoopEligibleForRefactor(Statement stmt) { returnCount = 0; @@ -54,12 +47,12 @@ private bool isLoopEligibleForRefactor(Statement stmt) { case (ThrowStatement) `throw new ( );`: { classNameStr = unparse(className); if (classNameStr in checkedExceptionClasses) { - println("found checked exception (" + classNameStr + ") thrown inside a for statement."); + //println("found checked exception (" + classNameStr + ") thrown inside a for statement."); return false; } } case (BreakStatement) `break ;`: { - println("found break statement inside a for statement."); + //println("found break statement inside a for statement."); return false; } case (ReturnStatement) `return ;`: { @@ -69,14 +62,14 @@ private bool isLoopEligibleForRefactor(Statement stmt) { // if we don't do this, we should not allow 'continue' // Even if we do it, no labeled 'continue' are allowed case (ContinueStatement) `continue ;`: { - println("found continue statement inside a for statement."); + //println("found continue statement inside a for statement."); return false; } } if (returnCount > 1) { - println("more than one (" + toString(returnCount) + " total) return statements inside a for statement."); + //println("more than one (" + toString(returnCount) + " total) return statements inside a for statement."); // println(stmt); return false; } return true; -} \ No newline at end of file +} diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc new file mode 100644 index 0000000..41faaa4 --- /dev/null +++ b/src/LocalVariablesFinder.rsc @@ -0,0 +1,32 @@ +module LocalVariablesFinder + +import Set; +import lang::java::\syntax::Java18; +import String; +import ParseTree; +import IO; + +// syntax LocalVariableDeclarationStatement = LocalVariableDeclaration ";"+ ; +// syntax LocalVariableDeclaration = VariableModifier* UnannType VariableDeclaratorList ; +// syntax VariableDeclaratorList = variableDeclaratorList: {VariableDeclarator ","}+ ; +// syntax VariableDeclarator = variableDeclarator: VariableDeclaratorId ("=" VariableInitializer)? ; + +public tuple[set[str] finals, set[str] nonFinals] findLocalVariables(MethodBody methodBody) { + set[str] finals = {}; + set[str] nonFinals = {}; + visit(methodBody) { + case (EnhancedForStatement) `for ( final : ) `: + finals += trim(unparse(varId)); + case (LocalVariableDeclaration) `final `: { + visit(vdl) { + case (VariableDeclaratorId) ` `: + finals += trim(unparse(varId)); + } + } + // finding all variables declared, including ones in loop declaration + case VariableDeclaratorId varId: nonFinals += trim(unparse(varId)); + } + // nonFinals must not have finals + nonFinals -= finals; + return ; +} \ No newline at end of file diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc new file mode 100644 index 0000000..9d8b2e9 --- /dev/null +++ b/src/LocalVariablesFinderTest.rsc @@ -0,0 +1,33 @@ +module LocalVariablesFinderTest + +import IO; +import LocalVariablesFinderTestResources; +import LocalVariablesFinder; +import Set; + +public test bool shouldHaveTheEnhancedDeclaredVarAsFinal() { + methodBody = enhancedForLoopFinalVarDecl(); + vars = findLocalVariables(methodBody); + return "listenable" in vars.finals; +} + +public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { + methodBody = enhancedForLoopFinalVarDecl(); + vars = findLocalVariables(methodBody); + return "index" in vars.finals && "listenable" in vars.finals && + size(vars.finals) == 2; +} + +public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { + methodBody = enhancedForLoopFinalVarDecl(); + vars = findLocalVariables(methodBody); + return "i" in vars.nonFinals && size(vars.nonFinals) == 1; +} + + + + + + + + diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc new file mode 100644 index 0000000..4471389 --- /dev/null +++ b/src/LocalVariablesFinderTestResources.rsc @@ -0,0 +1,11 @@ +module LocalVariablesFinderTestResources + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; + +public MethodBody enhancedForLoopFinalVarDecl() { + fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; + content = readFile(fileLoc); + return parse(#MethodBody, content); +} \ No newline at end of file diff --git a/testes/localVariables/EnhancedForLoopFinalVarDecl b/testes/localVariables/EnhancedForLoopFinalVarDecl new file mode 100644 index 0000000..0254eff --- /dev/null +++ b/testes/localVariables/EnhancedForLoopFinalVarDecl @@ -0,0 +1,44 @@ +{ + // Corner case: List is empty. + if (futures.isEmpty()) { + handleAllCompleted(); + return; + } + + // NOTE: If we ever want to use a custom executor here, have a look at CombinedFuture as we'll + // need to handle RejectedExecutionException + + if (allMustSucceed) { + // We need fail fast, so we have to keep track of which future failed so we can propagate + // the exception immediately + + // Register a listener on each Future in the list to update the state of this future. + // Note that if all the futures on the list are done prior to completing this loop, the last + // call to addListener() will callback to setOneValue(), transitively call our cleanup + // listener, and set this.futures to null. + // This is not actually a problem, since the foreach only needs this.futures to be non-null + // at the beginning of the loop. + int i = 0; + for (final ListenableFuture listenable : futures) { + final int index = i++; + listenable.addListener( + new Runnable() { + @Override + public void run() { + try { + handleOneInputDone(index, listenable); + } finally { + decrementCountAndMaybeComplete(); + } + } + }, + directExecutor()); + } + } else { + // We'll only call the callback when all futures complete, regardless of whether some failed + // Hold off on calling setOneValue until all complete, so we can share the same listener + for (ListenableFuture listenable : futures) { + listenable.addListener(this, directExecutor()); + } + } + } \ No newline at end of file From 6c7f81be35cb35b2c267c119597d54feec43c61b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 029/156] More test cases for LocalVariablesFinder --- src/LocalVariablesFinderTest.rsc | 19 ++++++++++----- src/LocalVariablesFinderTestResources.rsc | 6 +++++ .../EnhancedForLoopWithException | 24 +++++++++++++++++++ 3 files changed, 43 insertions(+), 6 deletions(-) create mode 100644 testes/localVariables/EnhancedForLoopWithException diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 9d8b2e9..84bbf42 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -24,10 +24,17 @@ public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { return "i" in vars.nonFinals && size(vars.nonFinals) == 1; } +public test bool shouldHaveAllFinalVarsInEnhancedWithException() { + methodBody = enhancedForLoopWithException(); + vars = findLocalVariables(methodBody); + return "map" in vars.finals && "entrySet" in vars.finals && + "unmappedKey" in vars.finals && "unmappedValue" in vars.finals && + size(vars.finals) == 4; +} - - - - - - +public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithException() { + methodBody = enhancedForLoopWithException(); + vars = findLocalVariables(methodBody); + return "e" in vars.nonFinals && "entry" in vars.nonFinals && + size(vars.nonFinals) == 2; +} \ No newline at end of file diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 4471389..6fb9397 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -8,4 +8,10 @@ public MethodBody enhancedForLoopFinalVarDecl() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; content = readFile(fileLoc); return parse(#MethodBody, content); +} + +public MethodBody enhancedForLoopWithException() { + fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopWithException|; + content = readFile(fileLoc); + return parse(#MethodBody, content); } \ No newline at end of file diff --git a/testes/localVariables/EnhancedForLoopWithException b/testes/localVariables/EnhancedForLoopWithException new file mode 100644 index 0000000..d87dbb5 --- /dev/null +++ b/testes/localVariables/EnhancedForLoopWithException @@ -0,0 +1,24 @@ +{ + final Map map; + final Set> entrySet; + try { + map = makePopulatedMap(); + } catch (UnsupportedOperationException e) { + return; + } + assertInvariants(map); + + entrySet = map.entrySet(); + final K unmappedKey; + final V unmappedValue; + try { + unmappedKey = getKeyNotInPopulatedMap(); + unmappedValue = getValueNotInPopulatedMap(); + } catch (UnsupportedOperationException e) { + return; + } + for (Entry entry : entrySet) { + assertFalse(unmappedKey.equals(entry.getKey())); + assertFalse(unmappedValue.equals(entry.getValue())); + } + } \ No newline at end of file From fbee8cc4c0a9060c8e11367ccf791224260aee72 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 030/156] Starting to get variable types. --- src/LocalVariablesFinder.rsc | 50 ++++++++++++++----- src/LocalVariablesFinderTest.rsc | 27 ++++++---- src/MethodVar.rsc | 29 +++++++++++ .../EnhancedForLoopFinalVarDecl | 4 +- 4 files changed, 87 insertions(+), 23 deletions(-) create mode 100644 src/MethodVar.rsc diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 41faaa4..d9a69e4 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -5,28 +5,54 @@ import lang::java::\syntax::Java18; import String; import ParseTree; import IO; +import MethodVar; // syntax LocalVariableDeclarationStatement = LocalVariableDeclaration ";"+ ; // syntax LocalVariableDeclaration = VariableModifier* UnannType VariableDeclaratorList ; // syntax VariableDeclaratorList = variableDeclaratorList: {VariableDeclarator ","}+ ; // syntax VariableDeclarator = variableDeclarator: VariableDeclaratorId ("=" VariableInitializer)? ; -public tuple[set[str] finals, set[str] nonFinals] findLocalVariables(MethodBody methodBody) { - set[str] finals = {}; - set[str] nonFinals = {}; +public set[MethodVar] findLocalVariables(MethodBody methodBody) { + set[MethodVar] methodVars = {}; visit(methodBody) { - case (EnhancedForStatement) `for ( final : ) `: - finals += trim(unparse(varId)); - case (LocalVariableDeclaration) `final `: { + + case (EnhancedForStatement) `for ( : ) `: + methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); + + case (LocalVariableDeclaration) ` `: { visit(vdl) { case (VariableDeclaratorId) ` `: - finals += trim(unparse(varId)); + methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); } } - // finding all variables declared, including ones in loop declaration - case VariableDeclaratorId varId: nonFinals += trim(unparse(varId)); + + case(CatchFormalParameter) ` `: + methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); + } - // nonFinals must not have finals - nonFinals -= finals; - return ; + return methodVars; +} + +private MethodVar createMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, true); +} + +private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, true); +} + +private MethodVar createMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, true); +} + +private bool figureIfIsFinal(VariableModifier* varMod) { + if ("" := "final") + return true; + return false; } \ No newline at end of file diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 84bbf42..555f16c 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -4,37 +4,46 @@ import IO; import LocalVariablesFinderTestResources; import LocalVariablesFinder; import Set; +import MethodVar; public test bool shouldHaveTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(methodBody); - return "listenable" in vars.finals; + finalsNames = retrieveFinalsNames(vars); + return "listenableFinal" in finalsNames; } public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(methodBody); - return "index" in vars.finals && "listenable" in vars.finals && - size(vars.finals) == 2; + finalsNames = retrieveFinalsNames(vars); + return "index" in finalsNames && "listenableFinal" in finalsNames && + size(finalsNames) == 2; } public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(methodBody); - return "i" in vars.nonFinals && size(vars.nonFinals) == 1; + nonFinalsNames = retrieveNonFinalsNames(vars); + println(vars); + println(nonFinalsNames); + return "i" in nonFinalsNames && "listenableNonFinal" in nonFinalsNames && + size(nonFinalsNames) == 2; } public test bool shouldHaveAllFinalVarsInEnhancedWithException() { methodBody = enhancedForLoopWithException(); vars = findLocalVariables(methodBody); - return "map" in vars.finals && "entrySet" in vars.finals && - "unmappedKey" in vars.finals && "unmappedValue" in vars.finals && - size(vars.finals) == 4; + finalsNames = retrieveFinalsNames(vars); + return "map" in finalsNames && "entrySet" in finalsNames && + "unmappedKey" in finalsNames && "unmappedValue" in finalsNames && + size(finalsNames) == 4; } public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithException() { methodBody = enhancedForLoopWithException(); vars = findLocalVariables(methodBody); - return "e" in vars.nonFinals && "entry" in vars.nonFinals && - size(vars.nonFinals) == 2; + nonFinalsNames = retrieveNonFinalsNames(vars); + return "e" in nonFinalsNames && "entry" in nonFinalsNames && + size(nonFinalsNames) == 2; } \ No newline at end of file diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc new file mode 100644 index 0000000..6874062 --- /dev/null +++ b/src/MethodVar.rsc @@ -0,0 +1,29 @@ +module MethodVar + +public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isLocal); + +public bool isArray(MethodVar methodVar) { + return methodVar.varType == "array"; +} + +public bool isParameter(MethodVar methodVar) { + return !methodVar.isLocal; +} + +// may be improved. O(n) right now. +public set[MethodVar] retrieveFinals(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, var.isFinal }; +} + +// may be improved. O(n) right now. +public set[MethodVar] retrieveNonFinals(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, !var.isFinal }; +} + +public set[str] retrieveFinalsNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, var.isFinal }; +} + +public set[str] retrieveNonFinalsNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, !var.isFinal }; +} \ No newline at end of file diff --git a/testes/localVariables/EnhancedForLoopFinalVarDecl b/testes/localVariables/EnhancedForLoopFinalVarDecl index 0254eff..eec540b 100644 --- a/testes/localVariables/EnhancedForLoopFinalVarDecl +++ b/testes/localVariables/EnhancedForLoopFinalVarDecl @@ -19,7 +19,7 @@ // This is not actually a problem, since the foreach only needs this.futures to be non-null // at the beginning of the loop. int i = 0; - for (final ListenableFuture listenable : futures) { + for (final ListenableFuture listenableFinal : futures) { final int index = i++; listenable.addListener( new Runnable() { @@ -37,7 +37,7 @@ } else { // We'll only call the callback when all futures complete, regardless of whether some failed // Hold off on calling setOneValue until all complete, so we can share the same listener - for (ListenableFuture listenable : futures) { + for (ListenableFuture listenableNonFinal : futures) { listenable.addListener(this, directExecutor()); } } From c5417e133e39932043b529328522fd2ec2f2a54b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 031/156] Finding 'array' local variables. Missing discouraged array syntax vars --- src/LocalVariablesFinderTest.rsc | 49 +++++++++++++++++-- src/LocalVariablesFinderTestResources.rsc | 48 ++++++++++++++++++ src/MethodVar.rsc | 14 +++++- .../MultiplePlainArrayDeclarations | 15 ++++++ 4 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 testes/localVariables/MultiplePlainArrayDeclarations diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 555f16c..dc1bb74 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -25,8 +25,6 @@ public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(methodBody); nonFinalsNames = retrieveNonFinalsNames(vars); - println(vars); - println(nonFinalsNames); return "i" in nonFinalsNames && "listenableNonFinal" in nonFinalsNames && size(nonFinalsNames) == 2; } @@ -46,4 +44,49 @@ public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithExcept nonFinalsNames = retrieveNonFinalsNames(vars); return "e" in nonFinalsNames && "entry" in nonFinalsNames && size(nonFinalsNames) == 2; -} \ No newline at end of file +} + +public test bool intVarShouldHaveItsCorrectType() { + methodBody = enhancedForLoopFinalVarDecl(); + vars = findLocalVariables(methodBody); + varI = findByName(vars, "i"); + return varI.varType == "int"; +} + +public test bool encouragedDeclaredArrayVarsShouldBeArrays() { + methodBody = arrayVariables(); + vars = findLocalVariables(methodBody); + for(methodVar <- getEncouragedArrays(vars)) { + if(!isTypePlainArray(methodVar)) return false; + } + return true; +} + +public test bool discouragedDeclaredArrayVarsShouldBeArrays() { + methodBody = arrayVariables(); + vars = findLocalVariables(methodBody); + for(methodVar <- getDiscouragedArrays(vars)) { + if(!isTypePlainArray(methodVar)) return false; + } + return true; +} + +public test bool nonFinalArraysShouldBeNonFinal() { + methodBody = arrayVariables(); + vars = findLocalVariables(methodBody); + for(methodVar <- getAllNonFinalArrays(vars)) { + if(methodVar.isFinal) return false; + } + return true; +} + +public test bool finalArraysShouldBeFinal() { + methodBody = arrayVariables(); + vars = findLocalVariables(methodBody); + for(methodVar <- getAllFinalArrays(vars)) { + if(!methodVar.isFinal) return false; + } + return true; +} + + \ No newline at end of file diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 6fb9397..027612a 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -3,6 +3,7 @@ module LocalVariablesFinderTestResources import IO; import lang::java::\syntax::Java18; import ParseTree; +import MethodVar; public MethodBody enhancedForLoopFinalVarDecl() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; @@ -14,4 +15,51 @@ public MethodBody enhancedForLoopWithException() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopWithException|; content = readFile(fileLoc); return parse(#MethodBody, content); +} + +public MethodBody arrayVariables() { + fileLoc = |project://rascal-Java8//testes/localVariables/MultiplePlainArrayDeclarations|; + content = readFile(fileLoc); + return parse(#MethodBody, content); +} + +public set[MethodVar] getEncouragedArrays(set[MethodVar] vars) { + return getNonFinalEncouragedArrays(vars) + getFinalEncouragedArrays(vars); +} + +public set[MethodVar] getNonFinalEncouragedArrays(set[MethodVar] vars) { + varIntArray = findByName(vars, "intArray"); + varStrArray = findByName(vars, "strArray"); + varObjArray = findByName(vars, "objArray"); + return {varIntArray, varStrArray, varObjArray}; +} + +public set[MethodVar] getFinalEncouragedArrays(set[MethodVar] vars) { + varFinalObjArray = findByName(vars, "finalObjArray"); + varFinalStrArray = findByName(vars, "finalStrArray"); + return {varFinalObjArray, varFinalStrArray}; +} + +public set[MethodVar] getDiscouragedArrays(set[MethodVar] vars) { + return getNonFinalDiscouragedArrays(vars) + getFinalDiscouragedArrays(vars); +} + +public set[MethodVar] getNonFinalDiscouragedArrays(set[MethodVar] vars) { + varObjDiscouraged = findByName(vars, "objDiscouraged"); + varStrDiscouraged = findByName(vars, "strDiscouraged"); + return {varObjDiscouraged, varStrDiscouraged}; +} + +public set[MethodVar] getFinalDiscouragedArrays(set[MethodVar] vars) { + varFinalObjDiscouraged = findByName(vars, "finalObjDiscouraged"); + varFinalIntDiscouraged = findByName(vars, "finalIntDiscouraged"); + return {varFinalObjDiscouraged, varFinalIntDiscouraged}; +} + +public set[MethodVar] getAllNonFinalArrays(set[MethodVar] vars) { + return getNonFinalEncouragedArrays(vars) + getNonFinalDiscouragedArrays(vars); +} + +public set[MethodVar] getAllFinalArrays(set[MethodVar] vars) { + return getFinalEncouragedArrays(vars) + getFinalDiscouragedArrays(vars); } \ No newline at end of file diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 6874062..9e8cfc4 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -1,5 +1,9 @@ module MethodVar +import Set; +import String; + +// TODO Review if using a Set is the best choice. Probably not. public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isLocal); public bool isArray(MethodVar methodVar) { @@ -10,12 +14,10 @@ public bool isParameter(MethodVar methodVar) { return !methodVar.isLocal; } -// may be improved. O(n) right now. public set[MethodVar] retrieveFinals(set[MethodVar] methodVars) { return { var | MethodVar var <- methodVars, var.isFinal }; } -// may be improved. O(n) right now. public set[MethodVar] retrieveNonFinals(set[MethodVar] methodVars) { return { var | MethodVar var <- methodVars, !var.isFinal }; } @@ -26,4 +28,12 @@ public set[str] retrieveFinalsNames(set[MethodVar] methodVars) { public set[str] retrieveNonFinalsNames(set[MethodVar] methodVars) { return { var.name | MethodVar var <- methodVars, !var.isFinal }; +} + +public MethodVar findByName(set[MethodVar] methodVars, str name) { + return getOneFrom({ var | MethodVar var <- methodVars, var.name == name }); +} + +public bool isTypePlainArray(MethodVar methodVar) { + return endsWith(methodVar.varType, "[]"); } \ No newline at end of file diff --git a/testes/localVariables/MultiplePlainArrayDeclarations b/testes/localVariables/MultiplePlainArrayDeclarations new file mode 100644 index 0000000..0e65cea --- /dev/null +++ b/testes/localVariables/MultiplePlainArrayDeclarations @@ -0,0 +1,15 @@ +{ + int[] intArray; + intArray = new int[5]; + String[] strArray = {"a", "b", "c"}; + Object[] objArray; + final Object[] finalObjArray; + final String[] finalStrArray = {"c", "b", "a"}; + + // discouraged syntax + Object objDiscouraged[]; + String strDiscouraged[] = {"a", "b", "c"}; + final Object finalObjDiscouraged[]; + final int finalIntDiscouraged[]; + finalIntDiscouraged = new int[5]; +} \ No newline at end of file From a6cd4ab12db91805488c940533f426fa04a24f72 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 032/156] Finding 'array' local variables with discouraged syntax. --- src/LocalVariablesFinder.rsc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index d9a69e4..ac3c2c0 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -21,8 +21,8 @@ public set[MethodVar] findLocalVariables(MethodBody methodBody) { case (LocalVariableDeclaration) ` `: { visit(vdl) { - case (VariableDeclaratorId) ` `: - methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); + case (VariableDeclaratorId) ` `: + methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType, dims); } } @@ -39,9 +39,14 @@ private MethodVar createMethodVar(bool isFinal, VariableDeclaratorId varId, Unan return methodVar(isFinal, name, varTypeStr, true); } -private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varType) { +private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); + dimsStr = trim(unparse(dims)); + + if(dimsStr == "[]") + varTypeStr += "[]"; + return methodVar(isFinal, name, varTypeStr, true); } From e95b2d93a7a5482d36fe2e1c81dc5d8a9b75797d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 033/156] Git ignore '*.rsc' in '/bin' --- bin/.gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/.gitignore b/bin/.gitignore index 63402fa..3040ad9 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1,2 +1 @@ -/ExceptionFinder.rsc -/ExceptionFinderTest.rsc +/*.rsc From 7060988795b3cf0b48e5a4cafd53bcbb1bf8c2eb Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 034/156] Comment explaining how array variables are stored. - [] --- src/LocalVariablesFinder.rsc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index ac3c2c0..6b6890b 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -44,6 +44,7 @@ private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varT varTypeStr = trim(unparse(varType)); dimsStr = trim(unparse(dims)); + // Standarizing arrays to have varType == [] if(dimsStr == "[]") varTypeStr += "[]"; From c17d20ff32186d75af05b916c8085b844c6567f0 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 035/156] Capturing iterated variable (only an identifier) --- src/ForLoop.rsc | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 77071da..640daa5 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -5,9 +5,12 @@ import lang::java::\syntax::Java18; import ParseTree; import util::Math; import LocalVariablesFinder; +import String; private set[str] checkedExceptionClasses; +private str iteratedVariable; + public void findForLoops(list[loc] locs, set[str] checkedExceptions) { checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { @@ -21,25 +24,46 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { } private void lookForForStatements(CompilationUnit unit) { + iteratedVariable = ""; visit(unit) { - case (MethodDeclaration) ` `: { - bool findEffectiveFinalLocalVars = doesMethodHaveAnEligibleForLoop(methodBody); - if (findEffectiveFinalLocalVars) + case (MethodDeclaration) ` `: { + bool proceedToFindEffectiveFinalLocalVars = doesMethodHaveAnEligibleForLoop(methodBody); + if (proceedToFindEffectiveFinalLocalVars) findLocalVariables(methodBody); } } } private bool doesMethodHaveAnEligibleForLoop(MethodBody methodBody) { + bool eligible = false; visit(methodBody) { - case (EnhancedForStatement) `for ( : ) `: - return isLoopEligibleForRefactor(stmt); + case (EnhancedForStatement) `for ( : ) `: { + eligible = isLoopEligibleForRefactor(stmt); + if (eligible) { retrieveIteratedVariable(exp); println(methodBody); } + } case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } return false; } +// XXX Only checking iterable variables defined in method (local and parameter(SOON) ) +// Need to verify class and instance variables too! (not that hard) +// Doing the full check on a method call will be an entire new problem +// example: for (Object rowKey : table.rowKeySet()) +// TODO extract module and test +private void retrieveIteratedVariable(Expression exp) { + expStr = unparse(exp); + if (isExpVariableNameOnly(expStr)) { + iteratedVariable = expStr; + println(iteratedVariable); + } +} + +private bool isExpVariableNameOnly(str exp) { + return !contains(exp, ".") && !contains(exp, "("); +} + // TODO extract module and test it private bool isLoopEligibleForRefactor(Statement stmt) { returnCount = 0; From cad5c7180049e6204c23b28fa137c90c4650a167 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 036/156] Checking if local variables are not arrays. --- src/EnhancedLoopExpression.rsc | 37 +++++++++++++++ src/ForLoop.rsc | 86 +++++++++++++--------------------- 2 files changed, 69 insertions(+), 54 deletions(-) create mode 100644 src/EnhancedLoopExpression.rsc diff --git a/src/EnhancedLoopExpression.rsc b/src/EnhancedLoopExpression.rsc new file mode 100644 index 0000000..71c71a5 --- /dev/null +++ b/src/EnhancedLoopExpression.rsc @@ -0,0 +1,37 @@ +module EnhancedLoopExpression + +import lang::java::\syntax::Java18; +import ParseTree; +import MethodVar; +import String; + +// XXX Only checking iterable variables defined in method (local and parameter(SOON) ) +// Need to verify class and instance variables too! (not that hard) +// Doing the full check on a method call will be an entire new problem +// example: for (Object rowKey : table.rowKeySet()) + +// Relying on compiler to help finding if it an array or not +// Compiler gives error if expression is not Array/Collection +// Therefore we only check if the expression is an Array +public bool isIteratingOnCollection(Expression exp, set[MethodVar] localVariables) { + if (isExpAnIdentifier(exp)) + return isIdentifierACollection(exp, localVariables); + else + return false; +} + +private bool isExpAnIdentifier(Expression exp) { + expStr = unparse(exp); + return !contains(expStr, ".") && !contains(expStr, "("); +} + +private bool isIdentifierACollection(Expression exp, set[MethodVar] localVariables) { + varName = unparse(exp); + var = findByName(localVariables, varName); + return !isTypePlainArray(var); +} + +// FIXME +private bool isExpressionReturningACollection(Expression exp) { + return false; +} \ No newline at end of file diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 640daa5..43a48f5 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -3,14 +3,11 @@ module ForLoop import IO; import lang::java::\syntax::Java18; import ParseTree; -import util::Math; import LocalVariablesFinder; -import String; +import EnhancedLoopExpression; private set[str] checkedExceptionClasses; -private str iteratedVariable; - public void findForLoops(list[loc] locs, set[str] checkedExceptions) { checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { @@ -26,74 +23,55 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { private void lookForForStatements(CompilationUnit unit) { iteratedVariable = ""; visit(unit) { - case (MethodDeclaration) ` `: { - bool proceedToFindEffectiveFinalLocalVars = doesMethodHaveAnEligibleForLoop(methodBody); - if (proceedToFindEffectiveFinalLocalVars) - findLocalVariables(methodBody); - } + case MethodDeclaration methodDeclaration: + lookForEnhancedForStatementsInMethod(methodDeclaration); } } -private bool doesMethodHaveAnEligibleForLoop(MethodBody methodBody) { - bool eligible = false; +private void lookForEnhancedForStatementsInMethod(MethodDeclaration methodDeclaration) { + visit(methodDeclaration) { + case (MethodDeclaration) ` `: + lookForEnhancedForStatementsInMethodBody(methodHeader, methodBody); + } +} + +private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, MethodBody methodBody) { visit(methodBody) { - case (EnhancedForStatement) `for ( : ) `: { - eligible = isLoopEligibleForRefactor(stmt); - if (eligible) { retrieveIteratedVariable(exp); println(methodBody); } - } + case (EnhancedForStatement) `for ( : ) `: + checkLoopEligibilityForRefactor(methodBody, exp, stmt); case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } - return false; } -// XXX Only checking iterable variables defined in method (local and parameter(SOON) ) -// Need to verify class and instance variables too! (not that hard) -// Doing the full check on a method call will be an entire new problem -// example: for (Object rowKey : table.rowKeySet()) -// TODO extract module and test -private void retrieveIteratedVariable(Expression exp) { - expStr = unparse(exp); - if (isExpVariableNameOnly(expStr)) { - iteratedVariable = expStr; - println(iteratedVariable); +private void checkLoopEligibilityForRefactor(MethodBody methodBody, Expression exp, Statement stmt) { + if(loopBodyPassConditions(stmt)) { + localVariables = findLocalVariables(methodBody); + if (isIteratingOnCollection(exp, localVariables)) { + println("iterating on collection"); + println(methodBody); + println(); + } } } -private bool isExpVariableNameOnly(str exp) { - return !contains(exp, ".") && !contains(exp, "("); -} - // TODO extract module and test it -private bool isLoopEligibleForRefactor(Statement stmt) { +private bool loopBodyPassConditions(Statement stmt) { returnCount = 0; visit(stmt) { case (ThrowStatement) `throw new ( );`: { classNameStr = unparse(className); - if (classNameStr in checkedExceptionClasses) { - //println("found checked exception (" + classNameStr + ") thrown inside a for statement."); - return false; - } - } - case (BreakStatement) `break ;`: { - //println("found break statement inside a for statement."); - return false; - } - case (ReturnStatement) `return ;`: { - returnCount += 1; - } - // LambdaFicator restructures code to eliminate 'continue' - // if we don't do this, we should not allow 'continue' - // Even if we do it, no labeled 'continue' are allowed - case (ContinueStatement) `continue ;`: { - //println("found continue statement inside a for statement."); - return false; + if (classNameStr in checkedExceptionClasses) return false; } + + case (BreakStatement) `break ;`: return false; + + case (ReturnStatement) `return ;`: returnCount += 1; + + case (ContinueStatement) `continue ;`: return false; } - if (returnCount > 1) { - //println("more than one (" + toString(returnCount) + " total) return statements inside a for statement."); - // println(stmt); - return false; - } + + if (returnCount > 1) return false; + return true; } From d9d12e337c4c22d6eedca8b422b1223552769d8a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 037/156] Not printing debug lines in ExceptionFinder. --- src/ExceptionFinder.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ExceptionFinder.rsc b/src/ExceptionFinder.rsc index 150b5b8..63a6bbd 100644 --- a/src/ExceptionFinder.rsc +++ b/src/ExceptionFinder.rsc @@ -92,10 +92,10 @@ private set[str] getAllDirectSubClassesOf(str className) { } private void printJavaFilesThatCouldNotBeParsed() { - str filesNotParsedCount = toString(size(fileLocationsThatCouldNotBeParsed)); - println(filesNotParsedCount + " Java File Locations that could not be parsed. "); - if (printAllFileNamesThatCouldNotBeParsed) { + str filesNotParsedCount = toString(size(fileLocationsThatCouldNotBeParsed)); + println(filesNotParsedCount + " Java File Locations that could not be parsed. "); + for(fileLoc <- fileLocationsThatCouldNotBeParsed) print(fileLoc.file + ", "); println(); From 2ee462a60abf38011c3efeb4da74c9709757c3ec Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 038/156] LocalVariablesFinder finding variables from method parameters. - Maybe 'LocalVariables' isn't the best name. --- src/LocalVariablesFinder.rsc | 36 ++++++++--- src/LocalVariablesFinderTest.rsc | 74 +++++++++++++++++++---- src/LocalVariablesFinderTestResources.rsc | 30 +++++++++ src/MethodVar.rsc | 16 +++++ 4 files changed, 138 insertions(+), 18 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 6b6890b..805a153 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -12,34 +12,56 @@ import MethodVar; // syntax VariableDeclaratorList = variableDeclaratorList: {VariableDeclarator ","}+ ; // syntax VariableDeclarator = variableDeclarator: VariableDeclaratorId ("=" VariableInitializer)? ; -public set[MethodVar] findLocalVariables(MethodBody methodBody) { +public set[MethodVar] findLocalVariables(MethodHeader methodHeader, MethodBody methodBody) { + set[MethodVar] methodVars = {}; + methodVars += findVariablesAsParameters(methodHeader); + methodVars += findVariablesInsideBody(methodBody); + return methodVars; +} + +private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { + set[MethodVar] methodVars = {}; + visit(methodHeader) { + case (FormalParameter) ` `: + methodVars += createNonLocalMethodVar(figureIfIsFinal(varMod), varId, varType); + } + return methodVars; +} + +private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { set[MethodVar] methodVars = {}; visit(methodBody) { case (EnhancedForStatement) `for ( : ) `: - methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); + methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType); case (LocalVariableDeclaration) ` `: { visit(vdl) { case (VariableDeclaratorId) ` `: - methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType, dims); + methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType, dims); } } case(CatchFormalParameter) ` `: - methodVars += createMethodVar(figureIfIsFinal(varMod), varId, varType); + methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType); } return methodVars; } -private MethodVar createMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { +private MethodVar createNonLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, false); +} + +private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); return methodVar(isFinal, name, varTypeStr, true); } -private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { +private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); dimsStr = trim(unparse(dims)); @@ -51,7 +73,7 @@ private MethodVar createMethodVar(bool isFinal, Identifier varId, UnannType varT return methodVar(isFinal, name, varTypeStr, true); } -private MethodVar createMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { +private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); return methodVar(isFinal, name, varTypeStr, true); diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index dc1bb74..2d18697 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -8,14 +8,14 @@ import MethodVar; public test bool shouldHaveTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); finalsNames = retrieveFinalsNames(vars); return "listenableFinal" in finalsNames; } public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); finalsNames = retrieveFinalsNames(vars); return "index" in finalsNames && "listenableFinal" in finalsNames && size(finalsNames) == 2; @@ -23,7 +23,7 @@ public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); nonFinalsNames = retrieveNonFinalsNames(vars); return "i" in nonFinalsNames && "listenableNonFinal" in nonFinalsNames && size(nonFinalsNames) == 2; @@ -31,7 +31,7 @@ public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { public test bool shouldHaveAllFinalVarsInEnhancedWithException() { methodBody = enhancedForLoopWithException(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); finalsNames = retrieveFinalsNames(vars); return "map" in finalsNames && "entrySet" in finalsNames && "unmappedKey" in finalsNames && "unmappedValue" in finalsNames && @@ -40,7 +40,7 @@ public test bool shouldHaveAllFinalVarsInEnhancedWithException() { public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithException() { methodBody = enhancedForLoopWithException(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); nonFinalsNames = retrieveNonFinalsNames(vars); return "e" in nonFinalsNames && "entry" in nonFinalsNames && size(nonFinalsNames) == 2; @@ -48,14 +48,14 @@ public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithExcept public test bool intVarShouldHaveItsCorrectType() { methodBody = enhancedForLoopFinalVarDecl(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); varI = findByName(vars, "i"); return varI.varType == "int"; } public test bool encouragedDeclaredArrayVarsShouldBeArrays() { methodBody = arrayVariables(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); for(methodVar <- getEncouragedArrays(vars)) { if(!isTypePlainArray(methodVar)) return false; } @@ -64,7 +64,7 @@ public test bool encouragedDeclaredArrayVarsShouldBeArrays() { public test bool discouragedDeclaredArrayVarsShouldBeArrays() { methodBody = arrayVariables(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); for(methodVar <- getDiscouragedArrays(vars)) { if(!isTypePlainArray(methodVar)) return false; } @@ -73,7 +73,7 @@ public test bool discouragedDeclaredArrayVarsShouldBeArrays() { public test bool nonFinalArraysShouldBeNonFinal() { methodBody = arrayVariables(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); for(methodVar <- getAllNonFinalArrays(vars)) { if(methodVar.isFinal) return false; } @@ -82,11 +82,63 @@ public test bool nonFinalArraysShouldBeNonFinal() { public test bool finalArraysShouldBeFinal() { methodBody = arrayVariables(); - vars = findLocalVariables(methodBody); + vars = findLocalVariables(emptyMethodHeader(), methodBody); for(methodVar <- getAllFinalArrays(vars)) { if(!methodVar.isFinal) return false; } return true; } - \ No newline at end of file +public test bool shouldReturnNonFinalSingleParameter() { + methodHeader = nonFinalSingleParameterMethodHeader(); + methodBody = emptyMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + nonLocals = retrieveNonLocals(vars); + var = findByName(vars, "param"); + + return size(nonLocals) == 1 && !var.isFinal && !var.isLocal; +} + +public test bool shouldReturnFinalSingleParamater() { + methodHeader = finalSingleParameterMethodHeader(); + methodBody = emptyMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + nonLocals = retrieveNonLocals(vars); + var = findByName(vars, "finalParam"); + + return size(nonLocals) == 1 && var.isFinal && !var.isLocal; +} + +public test bool shouldReturnCorrectParamsWithLastOneFinal() { + methodHeader = multipleParametersLastFinalMethodHeader(); + methodBody = emptyMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + nonLocals = retrieveNonLocals(vars); + param = findByName(vars, "param"); + strParam = findByName(vars, "str"); + finalLastParam = findByName(vars, "finalLastParam"); + + return size(nonLocals) == 3 && + !param.isFinal && !param.isLocal && + !strParam.isFinal && !strParam.isLocal && + finalLastParam.isFinal && !finalLastParam.isLocal; +} + +public test bool shouldReturnCorrectParamsWithLastOneNonFinal() { + methodHeader = multipleParametersLastNonFinalMethodHeader(); + methodBody = emptyMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + nonLocals = retrieveNonLocals(vars); + param = findByName(vars, "param"); + strParam = findByName(vars, "str"); + nonFinalLastParam = findByName(vars, "nonFinalLastParam"); + + return size(nonLocals) == 3 && + !param.isFinal && !param.isLocal && + !strParam.isFinal && !strParam.isLocal && + !nonFinalLastParam.isFinal && !nonFinalLastParam.isLocal; +} diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 027612a..2afed50 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -5,6 +5,36 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; +public MethodHeader emptyMethodHeader() { + header = "void method()"; + return parse(#MethodHeader, header); +} + +public MethodHeader nonFinalSingleParameterMethodHeader() { + header = "void method(int param)"; + return parse(#MethodHeader, header); +} + +public MethodHeader finalSingleParameterMethodHeader() { + header = "void method(final int finalParam)"; + return parse(#MethodHeader, header); +} + +public MethodHeader multipleParametersLastFinalMethodHeader() { + header = "void method(int param, String str, final double finalLastParam)"; + return parse(#MethodHeader, header); +} + +public MethodHeader multipleParametersLastNonFinalMethodHeader() { + header = "void method(int param, String str, double nonFinalLastParam)"; + return parse(#MethodHeader, header); +} + +public MethodBody emptyMethodBody() { + body = "{}"; + return parse(#MethodBody, body); +} + public MethodBody enhancedForLoopFinalVarDecl() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; content = readFile(fileLoc); diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 9e8cfc4..d98b8f6 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -34,6 +34,22 @@ public MethodVar findByName(set[MethodVar] methodVars, str name) { return getOneFrom({ var | MethodVar var <- methodVars, var.name == name }); } +public set[MethodVar] retrieveLocals(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, var.isLocal }; +} + +public set[MethodVar] retrieveNonLocals(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, !var.isLocal }; +} + +public set[str] retrieveLocalNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, var.isLocal }; +} + +public set[str] retrieveNonLocalNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, !var.isLocal }; +} + public bool isTypePlainArray(MethodVar methodVar) { return endsWith(methodVar.varType, "[]"); } \ No newline at end of file From 36a0d97eeefbfc9cb5109041d4aa0533bc8be3e9 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 22 Mar 2017 00:40:39 -0300 Subject: [PATCH 039/156] Changing 'isLocal' to 'isParameter' --- src/LocalVariablesFinder.rsc | 12 ++++----- src/LocalVariablesFinderTest.rsc | 44 +++++++++++++++++++++++--------- src/MethodVar.rsc | 20 +++++++-------- 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 805a153..cd6cb38 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -23,7 +23,7 @@ private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { set[MethodVar] methodVars = {}; visit(methodHeader) { case (FormalParameter) ` `: - methodVars += createNonLocalMethodVar(figureIfIsFinal(varMod), varId, varType); + methodVars += createParameterMethodVar(figureIfIsFinal(varMod), varId, varType); } return methodVars; } @@ -49,16 +49,16 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { return methodVars; } -private MethodVar createNonLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { +private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false); + return methodVar(isFinal, name, varTypeStr, true); } private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, true); + return methodVar(isFinal, name, varTypeStr, false); } private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -70,13 +70,13 @@ private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType if(dimsStr == "[]") varTypeStr += "[]"; - return methodVar(isFinal, name, varTypeStr, true); + return methodVar(isFinal, name, varTypeStr, false); } private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, true); + return methodVar(isFinal, name, varTypeStr, false); } private bool figureIfIsFinal(VariableModifier* varMod) { diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 2d18697..716f9cd 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -9,14 +9,18 @@ import MethodVar; public test bool shouldHaveTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(emptyMethodHeader(), methodBody); + finalsNames = retrieveFinalsNames(vars); + return "listenableFinal" in finalsNames; } public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(emptyMethodHeader(), methodBody); + finalsNames = retrieveFinalsNames(vars); + return "index" in finalsNames && "listenableFinal" in finalsNames && size(finalsNames) == 2; } @@ -24,7 +28,9 @@ public test bool shouldHaveAllFinalVarsInTheEnhancedDeclaredVarAsFinal() { public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); vars = findLocalVariables(emptyMethodHeader(), methodBody); + nonFinalsNames = retrieveNonFinalsNames(vars); + return "i" in nonFinalsNames && "listenableNonFinal" in nonFinalsNames && size(nonFinalsNames) == 2; } @@ -32,7 +38,9 @@ public test bool shouldHaveTheNonFinalVarsInEnhancedDeclaredVarAsFinal() { public test bool shouldHaveAllFinalVarsInEnhancedWithException() { methodBody = enhancedForLoopWithException(); vars = findLocalVariables(emptyMethodHeader(), methodBody); + finalsNames = retrieveFinalsNames(vars); + return "map" in finalsNames && "entrySet" in finalsNames && "unmappedKey" in finalsNames && "unmappedValue" in finalsNames && size(finalsNames) == 4; @@ -41,21 +49,27 @@ public test bool shouldHaveAllFinalVarsInEnhancedWithException() { public test bool shouldHaveAllNonFinalVarsIncludingExceptionInEnhancedWithException() { methodBody = enhancedForLoopWithException(); vars = findLocalVariables(emptyMethodHeader(), methodBody); + nonFinalsNames = retrieveNonFinalsNames(vars); + return "e" in nonFinalsNames && "entry" in nonFinalsNames && size(nonFinalsNames) == 2; } public test bool intVarShouldHaveItsCorrectType() { methodBody = enhancedForLoopFinalVarDecl(); + vars = findLocalVariables(emptyMethodHeader(), methodBody); varI = findByName(vars, "i"); + return varI.varType == "int"; } public test bool encouragedDeclaredArrayVarsShouldBeArrays() { methodBody = arrayVariables(); + vars = findLocalVariables(emptyMethodHeader(), methodBody); + for(methodVar <- getEncouragedArrays(vars)) { if(!isTypePlainArray(methodVar)) return false; } @@ -64,7 +78,9 @@ public test bool encouragedDeclaredArrayVarsShouldBeArrays() { public test bool discouragedDeclaredArrayVarsShouldBeArrays() { methodBody = arrayVariables(); + vars = findLocalVariables(emptyMethodHeader(), methodBody); + for(methodVar <- getDiscouragedArrays(vars)) { if(!isTypePlainArray(methodVar)) return false; } @@ -73,7 +89,9 @@ public test bool discouragedDeclaredArrayVarsShouldBeArrays() { public test bool nonFinalArraysShouldBeNonFinal() { methodBody = arrayVariables(); + vars = findLocalVariables(emptyMethodHeader(), methodBody); + for(methodVar <- getAllNonFinalArrays(vars)) { if(methodVar.isFinal) return false; } @@ -82,7 +100,9 @@ public test bool nonFinalArraysShouldBeNonFinal() { public test bool finalArraysShouldBeFinal() { methodBody = arrayVariables(); + vars = findLocalVariables(emptyMethodHeader(), methodBody); + for(methodVar <- getAllFinalArrays(vars)) { if(!methodVar.isFinal) return false; } @@ -94,10 +114,10 @@ public test bool shouldReturnNonFinalSingleParameter() { methodBody = emptyMethodBody(); vars = findLocalVariables(methodHeader, methodBody); - nonLocals = retrieveNonLocals(vars); + nonLocals = retrieveParameters(vars); var = findByName(vars, "param"); - return size(nonLocals) == 1 && !var.isFinal && !var.isLocal; + return size(nonLocals) == 1 && !var.isFinal && var.isParameter; } public test bool shouldReturnFinalSingleParamater() { @@ -105,10 +125,10 @@ public test bool shouldReturnFinalSingleParamater() { methodBody = emptyMethodBody(); vars = findLocalVariables(methodHeader, methodBody); - nonLocals = retrieveNonLocals(vars); + nonLocals = retrieveParameters(vars); var = findByName(vars, "finalParam"); - return size(nonLocals) == 1 && var.isFinal && !var.isLocal; + return size(nonLocals) == 1 && var.isFinal && var.isParameter; } public test bool shouldReturnCorrectParamsWithLastOneFinal() { @@ -116,15 +136,15 @@ public test bool shouldReturnCorrectParamsWithLastOneFinal() { methodBody = emptyMethodBody(); vars = findLocalVariables(methodHeader, methodBody); - nonLocals = retrieveNonLocals(vars); + nonLocals = retrieveParameters(vars); param = findByName(vars, "param"); strParam = findByName(vars, "str"); finalLastParam = findByName(vars, "finalLastParam"); return size(nonLocals) == 3 && - !param.isFinal && !param.isLocal && - !strParam.isFinal && !strParam.isLocal && - finalLastParam.isFinal && !finalLastParam.isLocal; + !param.isFinal && param.isParameter && + !strParam.isFinal && strParam.isParameter && + finalLastParam.isFinal && finalLastParam.isParameter; } public test bool shouldReturnCorrectParamsWithLastOneNonFinal() { @@ -132,13 +152,13 @@ public test bool shouldReturnCorrectParamsWithLastOneNonFinal() { methodBody = emptyMethodBody(); vars = findLocalVariables(methodHeader, methodBody); - nonLocals = retrieveNonLocals(vars); + nonLocals = retrieveParameters(vars); param = findByName(vars, "param"); strParam = findByName(vars, "str"); nonFinalLastParam = findByName(vars, "nonFinalLastParam"); return size(nonLocals) == 3 && - !param.isFinal && !param.isLocal && - !strParam.isFinal && !strParam.isLocal && - !nonFinalLastParam.isFinal && !nonFinalLastParam.isLocal; + !param.isFinal && param.isParameter && + !strParam.isFinal && strParam.isParameter && + !nonFinalLastParam.isFinal && nonFinalLastParam.isParameter; } diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index d98b8f6..ed85d8c 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -4,14 +4,14 @@ import Set; import String; // TODO Review if using a Set is the best choice. Probably not. -public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isLocal); +public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter); public bool isArray(MethodVar methodVar) { return methodVar.varType == "array"; } public bool isParameter(MethodVar methodVar) { - return !methodVar.isLocal; + return !methodVar.isParameter; } public set[MethodVar] retrieveFinals(set[MethodVar] methodVars) { @@ -34,20 +34,20 @@ public MethodVar findByName(set[MethodVar] methodVars, str name) { return getOneFrom({ var | MethodVar var <- methodVars, var.name == name }); } -public set[MethodVar] retrieveLocals(set[MethodVar] methodVars) { - return { var | MethodVar var <- methodVars, var.isLocal }; +public set[MethodVar] retrieveParameters(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, var.isParameter }; } -public set[MethodVar] retrieveNonLocals(set[MethodVar] methodVars) { - return { var | MethodVar var <- methodVars, !var.isLocal }; +public set[MethodVar] retrieveNonParameters(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, !var.isParameter }; } -public set[str] retrieveLocalNames(set[MethodVar] methodVars) { - return { var.name | MethodVar var <- methodVars, var.isLocal }; +public set[str] retrieveParametersNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, var.isParameter }; } -public set[str] retrieveNonLocalNames(set[MethodVar] methodVars) { - return { var.name | MethodVar var <- methodVars, !var.isLocal }; +public set[str] retrieveNonParametersNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, !var.isParameter }; } public bool isTypePlainArray(MethodVar methodVar) { From 2936da1d438ef2f52f84ccda5b990065a74e766f Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 040/156] Starting to break loop in prospective operations. --- src/ForLoop.rsc | 29 +++-- .../forloop/ForLoopBodyReferences.rsc | 25 +++++ src/refactor/forloop/ProspectiveOperation.rsc | 106 ++++++++++++++++++ testes/localVariables/ForLoopToFunctional | 49 ++++++++ 4 files changed, 197 insertions(+), 12 deletions(-) create mode 100644 src/refactor/forloop/ForLoopBodyReferences.rsc create mode 100644 src/refactor/forloop/ProspectiveOperation.rsc create mode 100644 testes/localVariables/ForLoopToFunctional diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 43a48f5..bb72f1f 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -5,6 +5,9 @@ import lang::java::\syntax::Java18; import ParseTree; import LocalVariablesFinder; import EnhancedLoopExpression; +import refactor::forloop::ForLoopBodyReferences; +import refactor::forloop::ProspectiveOperation; +import MethodVar; private set[str] checkedExceptionClasses; @@ -37,22 +40,24 @@ private void lookForEnhancedForStatementsInMethod(MethodDeclaration methodDeclar private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, MethodBody methodBody) { visit(methodBody) { - case (EnhancedForStatement) `for ( : ) `: - checkLoopEligibilityForRefactor(methodBody, exp, stmt); + case EnhancedForStatement forStmt: { + visit(forStmt) { + case (EnhancedForStatement) `for ( : ) `: { + methodLocalVariables = findLocalVariables(methodHeader, methodBody); + checkLoopEligibilityForRefactor(methodLocalVariables, exp, stmt); + retrievePotentialOperations(methodLocalVariables, forStmt); + } + } + } + case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } } -private void checkLoopEligibilityForRefactor(MethodBody methodBody, Expression exp, Statement stmt) { - if(loopBodyPassConditions(stmt)) { - localVariables = findLocalVariables(methodBody); - if (isIteratingOnCollection(exp, localVariables)) { - println("iterating on collection"); - println(methodBody); - println(); - } - } +private bool checkLoopEligibilityForRefactor(set[MethodVar] methodLocalVariables, Expression exp, Statement stmt) { + return loopBodyPassConditions(stmt) && isIteratingOnCollection(exp, methodLocalVariables) && + atMostOneReferenceToNonEffectiveFinalVar(methodLocalVariables, stmt); } // TODO extract module and test it @@ -74,4 +79,4 @@ private bool loopBodyPassConditions(Statement stmt) { if (returnCount > 1) return false; return true; -} +} \ No newline at end of file diff --git a/src/refactor/forloop/ForLoopBodyReferences.rsc b/src/refactor/forloop/ForLoopBodyReferences.rsc new file mode 100644 index 0000000..431288f --- /dev/null +++ b/src/refactor/forloop/ForLoopBodyReferences.rsc @@ -0,0 +1,25 @@ +module refactor::forloop::ForLoopBodyReferences + +import lang::java::\syntax::Java18; +import String; +import ParseTree; +import IO; +import Set; +import MethodVar; + +// TODO still need to find effective final vars somewhere. +public bool atMostOneReferenceToNonEffectiveFinalVar(set[MethodVar] localVariables, Statement loopBody) { + varsReferenced = findVariablesReferenced(loopBody); + return size(varsReferenced) <= 1; +} + +private set[str] findVariablesReferenced(Statement stmt) { + set[str] varsReferenced = {}; + + visit (stmt) { + case (Assignment) ` `: + varsReferenced += trim(unparse(lhs)); + } + + return varsReferenced; +} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc new file mode 100644 index 0000000..6e96401 --- /dev/null +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -0,0 +1,106 @@ +module refactor::forloop::ProspectiveOperation + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import ParseTreeVisualization; +import Set; +import util::Math; +import MethodVar; +import String; + +public data ProspectiveOperation = prospectiveOperation(Statement stmt, str operation); +public data ProspectiveOperation = prospectiveOperation(ExpressionStatement stmt2, str operation); + +str FILTER = "filter"; +str MAP = "map"; +str FOR_EACH = "forEach"; +str REDUCE = "reduce"; +str ANY_MATCH = "anyMatch"; +str NONE_MATCH = "noneMatch"; + +private set[MethodVar] methodLocalVars; + +public void retrievePotentialOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { + methodLocalVars = localVars; + visit(forStmt) { + case (EnhancedForStatement) `for ( : ) `: { + r = retrieveProspectiveOperationsFromStatement(stmt); + println("prospective operations: " + toString(size(r))); + for (prOp <- r) { + println(); + println(prOp.operation); + println(unparse(prOp.stmt2)); + } + } + } +} + +private set[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(Statement stmt) { + set[ProspectiveOperation] prOps = {}; + top-down-break visit(stmt) { + case Block blockStmt: { + println("blockStatement"); + println(blockStmt); + println(); + prOps += retrieveProspectiveOperationsFromBlock(blockStmt); + } + case IfThenStatement ifStmt: { + println("ifThenStatement"); + println(ifStmt); + println(); + } + case IfThenElseStatement ifElseStmt: { + println("ifThenElseStatement"); + println(ifElseStmt); + println(); + } + case ExpressionStatement stmt: prOps += retrieveProspectiveOperationFromSingleStatement(stmt); + } + return prOps; +} + +private set[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block blockStmt) { + set[ProspectiveOperation] prOps = {}; + top-down visit(blockStmt) { + case (IfThenStatement) `if ( ) `: { + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + } + case (IfThenElseStatement) `if ( ) else `: { + //retrieveProspectiveOperationsFromStatement(thenStmt); + println("if else"); + } + case ExpressionStatement stmt: prOps += retrieveProspectiveOperationFromSingleStatement(stmt); + } + println(); + return prOps; +} + +private set[ProspectiveOperation] retrieveProspectiveOperationFromSingleStatement(ExpressionStatement stmt) { + //visualize(stmt); + if (isReducer(stmt)) + return {prospectiveOperation(stmt, REDUCE)}; + else + return {prospectiveOperation(stmt, MAP)}; +} + +private bool isReducer(ExpressionStatement stmt) { + visit (stmt) { + case (Assignment) ` `: { + return isCompoundAssignmentOperator(assignmentOp) && isReferenceToNonFinalLocalVar(lhs); + } + } + return false; +} + +private bool isCompoundAssignmentOperator(AssignmentOperator assignmentOp) { + operatorStr = unparse(assignmentOp); + return operatorStr != "=" && operatorStr != "\>\>\>=" && + operatorStr != "^="; +} + +private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { + varName = trim(unparse(lhs)); + var = findByName(methodLocalVars, varName); + return !var.isFinal; +} \ No newline at end of file diff --git a/testes/localVariables/ForLoopToFunctional b/testes/localVariables/ForLoopToFunctional new file mode 100644 index 0000000..752bf9a --- /dev/null +++ b/testes/localVariables/ForLoopToFunctional @@ -0,0 +1,49 @@ +class SimpleForEach { + + public void test1(List things, PrintWriter writer) { + for (String thing: things) { + writer.write(thing); + } + } +} + +class GrammarEngineImpl { + + boolean isEngineExisting(String grammarName) { + for(GrammarEngine e : importedEngines) { + if(e.getGrammarName() == null) continue; + if(e.getGrammarName().equals(grammarName)) + return true; + } + return false; + } + +} + +class StandardHost { + + List findReloadedContextMemoryLeaks(){ + List result = new ArrayList(); + for (Map.Entry entry : + childClassLoaders.entrySet()) + if(isValid(entry)) { + ClassLoader cl = entry.getKey(); + if (!((WebappClassLoader)cl).isStart()) + result.add(entry.getValue()); + } + return result; + } +} + +class EditorGutterColumnManager { + + int getNumberOfErrors() { + int count = 0; + for (ElementRule rule : getRules()) { + if(rule.hasErrors()) + count += rule.getErrors().size(); + } + return count; + } + +} \ No newline at end of file From 1702d16d4fff651d87c7016753b512dc3ec5d20b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 041/156] Changing syntax of 'BlockStatements' following Java specs and ANTLR. - https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-BlockStatements - https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4#L719 --- src/lang/java/syntax/Java18.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/java/syntax/Java18.rsc b/src/lang/java/syntax/Java18.rsc index 15545af..a046015 100644 --- a/src/lang/java/syntax/Java18.rsc +++ b/src/lang/java/syntax/Java18.rsc @@ -461,7 +461,7 @@ syntax VariableInitializerList = { VariableInitializer "," }+ ; syntax Block = "{" BlockStatements? "}" ; -syntax BlockStatements = BlockStatement+ ; +syntax BlockStatements = BlockStatement BlockStatement* ; syntax BlockStatement = LocalVariableDeclarationStatement | ClassDeclaration From 3e6771fc4b2d0e82882652b7d2e63c2cb7258130 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 042/156] ProspectiveOperation - Starting slow. Working with really small example. --- src/MethodVar.rsc | 5 + src/refactor/forloop/ProspectiveOperation.rsc | 119 +++++++++++------- .../forloop/ProspectiveOperationsTest.rsc | 14 +++ .../ProspectiveOperationsTestResources.rsc | 12 ++ .../SimpleShortEnhancedLoop | 3 + 5 files changed, 109 insertions(+), 44 deletions(-) create mode 100644 src/refactor/forloop/ProspectiveOperationsTest.rsc create mode 100644 src/refactor/forloop/ProspectiveOperationsTestResources.rsc create mode 100644 testes/ProspectiveOperation/SimpleShortEnhancedLoop diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index ed85d8c..4b8a4be 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -5,6 +5,7 @@ import String; // TODO Review if using a Set is the best choice. Probably not. public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter); +public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isEffectiveFinal); public bool isArray(MethodVar methodVar) { return methodVar.varType == "array"; @@ -52,4 +53,8 @@ public set[str] retrieveNonParametersNames(set[MethodVar] methodVars) { public bool isTypePlainArray(MethodVar methodVar) { return endsWith(methodVar.varType, "[]"); +} + +public bool isEffectiveFinal(MethodVar methodVar) { + return methodVar.isFinal || methodVar.isEffectiveFinal; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 6e96401..4b138d3 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -4,13 +4,12 @@ import IO; import lang::java::\syntax::Java18; import ParseTree; import ParseTreeVisualization; -import Set; +import List; import util::Math; import MethodVar; import String; -public data ProspectiveOperation = prospectiveOperation(Statement stmt, str operation); -public data ProspectiveOperation = prospectiveOperation(ExpressionStatement stmt2, str operation); +public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); str FILTER = "filter"; str MAP = "map"; @@ -19,73 +18,96 @@ str REDUCE = "reduce"; str ANY_MATCH = "anyMatch"; str NONE_MATCH = "noneMatch"; -private set[MethodVar] methodLocalVars; +private list[MethodVar] methodLocalVars; -public void retrievePotentialOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { +public list[ProspectiveOperation] retrievePotentialOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { methodLocalVars = localVars; - visit(forStmt) { - case (EnhancedForStatement) `for ( : ) `: { - r = retrieveProspectiveOperationsFromStatement(stmt); - println("prospective operations: " + toString(size(r))); - for (prOp <- r) { - println(); - println(prOp.operation); - println(unparse(prOp.stmt2)); - } + list[ProspectiveOperation] prospectiveOperations = []; + top-down visit(forStmt) { + case (EnhancedForStatement) `for ( : ) `: { + prospectiveOperations = retrieveProspectiveOperationsFromStatement(stmt); + prospectiveOperations = markLastStmtAsEager(prospectiveOperations); } } + return prospectiveOperations; } -private set[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(Statement stmt) { - set[ProspectiveOperation] prOps = {}; +private list[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(Statement stmt) { + list[ProspectiveOperation] prOps = []; top-down-break visit(stmt) { - case Block blockStmt: { - println("blockStatement"); - println(blockStmt); - println(); - prOps += retrieveProspectiveOperationsFromBlock(blockStmt); + case Block block: { + prOps += retrieveProspectiveOperationsFromBlock(block); } case IfThenStatement ifStmt: { - println("ifThenStatement"); - println(ifStmt); - println(); + prOps += retrieveProspectiveOperationsFromIfThenStatement(ifStmt); } case IfThenElseStatement ifElseStmt: { - println("ifThenElseStatement"); + println("IfThenElseStatement"); println(ifElseStmt); println(); } - case ExpressionStatement stmt: prOps += retrieveProspectiveOperationFromSingleStatement(stmt); + case ExpressionStatement expStmt: { + statement = parse(#Statement, unparse(expStmt)); + prOps += retrieveProspectiveOperationFromSingleStatement(statement); + } } return prOps; } -private set[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block blockStmt) { - set[ProspectiveOperation] prOps = {}; - top-down visit(blockStmt) { - case (IfThenStatement) `if ( ) `: { - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); - } - case (IfThenElseStatement) `if ( ) else `: { - //retrieveProspectiveOperationsFromStatement(thenStmt); - println("if else"); +private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block block) { + list[ProspectiveOperation] prOps = []; + top-down visit(block) { + case BlockStatement blockStatement: { + top-down visit(blockStatement) { + case (IfThenStatement) `if ( ) `: { + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + } + case (IfThenElseStatement) `if ( ) else `: { + //retrieveProspectiveOperationsFromStatement(thenStmt); + println("if else"); + } + case StatementWithoutTrailingSubstatement otherStmt: { + statement = parse(#Statement, unparse(otherStmt)); + prOps += retrieveProspectiveOperationFromSingleStatement(statement); + } + } } - case ExpressionStatement stmt: prOps += retrieveProspectiveOperationFromSingleStatement(stmt); } println(); return prOps; } -private set[ProspectiveOperation] retrieveProspectiveOperationFromSingleStatement(ExpressionStatement stmt) { - //visualize(stmt); - if (isReducer(stmt)) - return {prospectiveOperation(stmt, REDUCE)}; +private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatement(IfThenStatement ifStmt) { + list[ProspectiveOperation] prOps = []; + top-down visit (ifStmt) { + case (IfThenStatement) `if ( ) `: { + visit (thenStmt) { + case (ReturnStatement) `return ;`: { + if ("" == true) + prOps += prospectiveOperation(unparse(ifStmt), ANY_MATCH); + else if ("" == false) + prOps += prospectiveOperation(unparse(ifStmt), NONE_MATCH); + } + case Statement statement: { + // ifStmt ou exp ? + prOps += prospectiveOperation(unparse(exp), FILTER); + prOps += retrieveProspectiveOperationsFromStatement(statement); + } + } + } + } + return prOps; +} + +private list[ProspectiveOperation] retrieveProspectiveOperationFromSingleStatement(Statement statement) { + if (isReducer(statement)) + return [prospectiveOperation(unparse(statement), REDUCE)]; else - return {prospectiveOperation(stmt, MAP)}; + return [prospectiveOperation(unparse(statement), MAP)]; } -private bool isReducer(ExpressionStatement stmt) { - visit (stmt) { +private bool isReducer(Statement statement) { + visit (statement) { case (Assignment) ` `: { return isCompoundAssignmentOperator(assignmentOp) && isReferenceToNonFinalLocalVar(lhs); } @@ -102,5 +124,14 @@ private bool isCompoundAssignmentOperator(AssignmentOperator assignmentOp) { private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { varName = trim(unparse(lhs)); var = findByName(methodLocalVars, varName); - return !var.isFinal; + return isEffectiveFinal(var); +} + +private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation] prOps) { + lastPrOp = prOps[-1]; + if(lastPrOp.operation == MAP) + lastPrOp.operation = FOR_EACH; + + // all elements but the last + the last one (eagerized or not) + return prefix(prOps) + lastPrOp; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc new file mode 100644 index 0000000..dbeece1 --- /dev/null +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -0,0 +1,14 @@ +module refactor::forloop::ProspectiveOperationsTest + +import refactor::forloop::ProspectiveOperation; +import refactor::forloop::ProspectiveOperationsTestResources; +import MethodVar; +import lang::java::\syntax::Java18; +import IO; + +public test bool shouldReturnAForEachOnSimpleShortExample() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort = simpleShort(); + prospectiveOperations = retrievePotentialOperations(simpleShort.vars, simpleShort.loop); + return prospectiveOperations[0].stmt == "writer.write(thing);" && + prospectiveOperations[0].operation == "forEach"; +} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc new file mode 100644 index 0000000..d355946 --- /dev/null +++ b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc @@ -0,0 +1,12 @@ +module refactor::forloop::ProspectiveOperationsTestResources + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import MethodVar; + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/SimpleShortEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + return <{}, enhancedForLoop>; +} \ No newline at end of file diff --git a/testes/ProspectiveOperation/SimpleShortEnhancedLoop b/testes/ProspectiveOperation/SimpleShortEnhancedLoop new file mode 100644 index 0000000..317b394 --- /dev/null +++ b/testes/ProspectiveOperation/SimpleShortEnhancedLoop @@ -0,0 +1,3 @@ +for (String thing: things) { + writer.write(thing); +} \ No newline at end of file From ece30637cde947b5f64e90d5c35e22f2f90dc20c Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 043/156] Working through reduce example. --- src/MethodVar.rsc | 6 ++++- src/refactor/forloop/ProspectiveOperation.rsc | 11 ++++---- .../forloop/ProspectiveOperationsTest.rsc | 16 +++++++++++- .../ProspectiveOperationsTestResources.rsc | 25 +++++++++++++++++++ .../ContinueAndReturnEnhancedLoop | 5 ++++ .../FilterMapReduceEnhancedLoop | 4 +++ 6 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop create mode 100644 testes/ProspectiveOperation/FilterMapReduceEnhancedLoop diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 4b8a4be..14f0b13 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -55,6 +55,10 @@ public bool isTypePlainArray(MethodVar methodVar) { return endsWith(methodVar.varType, "[]"); } +// FIXME public bool isEffectiveFinal(MethodVar methodVar) { - return methodVar.isFinal || methodVar.isEffectiveFinal; + try + return methodVar.isFinal || methodVar.isEffectiveFinal; + catch NoSuchField("isEffectiveFinal"): + return methodVar.isFinal; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 4b138d3..7fc8689 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -58,8 +58,9 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block list[ProspectiveOperation] prOps = []; top-down visit(block) { case BlockStatement blockStatement: { - top-down visit(blockStatement) { + top-down-break visit(blockStatement) { case (IfThenStatement) `if ( ) `: { + prOps += prospectiveOperation(unparse(exp), FILTER); prOps += retrieveProspectiveOperationsFromStatement(thenStmt); } case (IfThenElseStatement) `if ( ) else `: { @@ -73,7 +74,6 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block } } } - println(); return prOps; } @@ -89,7 +89,6 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem prOps += prospectiveOperation(unparse(ifStmt), NONE_MATCH); } case Statement statement: { - // ifStmt ou exp ? prOps += prospectiveOperation(unparse(exp), FILTER); prOps += retrieveProspectiveOperationsFromStatement(statement); } @@ -108,10 +107,10 @@ private list[ProspectiveOperation] retrieveProspectiveOperationFromSingleStateme private bool isReducer(Statement statement) { visit (statement) { - case (Assignment) ` `: { + case (Assignment) ` `: return isCompoundAssignmentOperator(assignmentOp) && isReferenceToNonFinalLocalVar(lhs); - } } + return false; } @@ -124,7 +123,7 @@ private bool isCompoundAssignmentOperator(AssignmentOperator assignmentOp) { private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { varName = trim(unparse(lhs)); var = findByName(methodLocalVars, varName); - return isEffectiveFinal(var); + return !isEffectiveFinal(var); } private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation] prOps) { diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index dbeece1..21d4e8f 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -11,4 +11,18 @@ public test bool shouldReturnAForEachOnSimpleShortExample() { prospectiveOperations = retrievePotentialOperations(simpleShort.vars, simpleShort.loop); return prospectiveOperations[0].stmt == "writer.write(thing);" && prospectiveOperations[0].operation == "forEach"; -} \ No newline at end of file +} + +public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce = filterMapReduce(); + prospectiveOperations = retrievePotentialOperations(filterMapReduce.vars, filterMapReduce.loop); + println(prospectiveOperations); + return false; +} + +//public test bool shouldReturnXOnContinueAndReturnEnhancedLoop() { +// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); +// prospectiveOperations = retrievePotentialOperations(continueAndReturn.vars, continueAndReturn.loop); +// println(prospectiveOperations); +// return false; +//} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc index d355946..24db643 100644 --- a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc @@ -4,9 +4,34 @@ import IO; import lang::java::\syntax::Java18; import ParseTree; import MethodVar; +import LocalVariablesFinder; public tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort() { fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/SimpleShortEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); return <{}, enhancedForLoop>; +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + return ; +} + +private set[MethodVar] continueAndReturnVars() { + methodHeader = parse(#MethodHeader, "boolean isEngineExisting(String grammarName)"); + methodBody = parse(#MethodBody, "{\n for(GrammarEngine e : importedEngines) { \n if(e.getGrammarName() == null) continue; \n if(e.getGrammarName().equals(grammarName))\n return true; \n } \n return false; \n}" ); + return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterMapReduceEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + return ; +} + +private set[MethodVar] filterMapReduceVars() { + methodHeader = parse(#MethodHeader, "int getNumberOfErrors()"); + methodBody = parse(#MethodBody, "{\n int count = 0;\n for (ElementRule rule : getRules()) {\n if(rule.hasErrors())\n count += rule.getErrors().size();\n }\n return count;\n }"); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file diff --git a/testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop b/testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop new file mode 100644 index 0000000..697c33f --- /dev/null +++ b/testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop @@ -0,0 +1,5 @@ +for(GrammarEngine e : importedEngines) { + if(e.getGrammarName() == null) continue; + if(e.getGrammarName().equals(grammarName)) + return true; + } \ No newline at end of file diff --git a/testes/ProspectiveOperation/FilterMapReduceEnhancedLoop b/testes/ProspectiveOperation/FilterMapReduceEnhancedLoop new file mode 100644 index 0000000..1546dfa --- /dev/null +++ b/testes/ProspectiveOperation/FilterMapReduceEnhancedLoop @@ -0,0 +1,4 @@ +for (ElementRule rule : getRules()) { + if(rule.hasErrors()) + count += rule.getErrors().size(); + } \ No newline at end of file From d0db627e31933311e1e3b29cb17166380cccd90b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 044/156] Correcting test for filterMapReduce example. --- src/refactor/forloop/ProspectiveOperationsTest.rsc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index 21d4e8f..68556c8 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -16,8 +16,10 @@ public test bool shouldReturnAForEachOnSimpleShortExample() { public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce = filterMapReduce(); prospectiveOperations = retrievePotentialOperations(filterMapReduce.vars, filterMapReduce.loop); - println(prospectiveOperations); - return false; + return prospectiveOperations[0].stmt == "rule.hasErrors()" && + prospectiveOperations[0].operation == "filter" && + prospectiveOperations[1].stmt == "count += rule.getErrors().size();" && + prospectiveOperations[1].operation == "reduce"; } //public test bool shouldReturnXOnContinueAndReturnEnhancedLoop() { From 0f5aab3e46be9caa3c80d81bf91b3f290f75eecf Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 045/156] Marking a local variable as declared within a loop or not. --- src/LocalVariablesFinder.rsc | 38 +++++++++++++++---- src/LocalVariablesFinderTest.rsc | 14 +++++++ src/LocalVariablesFinderTestResources.rsc | 11 ++++++ src/MethodVar.rsc | 12 +++++- .../EnhancedForLoopVarsWithinLoop | 9 +++++ 5 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 testes/localVariables/EnhancedForLoopVarsWithinLoop diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index cd6cb38..83ca8db 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -6,6 +6,7 @@ import String; import ParseTree; import IO; import MethodVar; +import ParseTreeVisualization; // syntax LocalVariableDeclarationStatement = LocalVariableDeclaration ";"+ ; // syntax LocalVariableDeclaration = VariableModifier* UnannType VariableDeclaratorList ; @@ -31,10 +32,21 @@ private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { set[MethodVar] methodVars = {}; visit(methodBody) { - - case (EnhancedForStatement) `for ( : ) `: - methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType); + case EnhancedForStatement enhancedForStmt: { + visit(enhancedForStmt) { + case (EnhancedForStatement) `for ( : ) `: + methodVars += createLocalMethodVarWithinLoop(figureIfIsFinal(varMod), varId, varType); + + // TODO maybe there is a better way besides checking this two times. + case (LocalVariableDeclaration) ` `: + visit(vdl) { + case (VariableDeclaratorId) ` `: + methodVars += createLocalMethodVarWithinLoop(figureIfIsFinal(varMod), varId, varType, dims); + } + } + } + case (LocalVariableDeclaration) ` `: { visit(vdl) { case (VariableDeclaratorId) ` `: @@ -52,13 +64,19 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, true); + return methodVar(isFinal, name, varTypeStr, true, false); } private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false); + return methodVar(isFinal, name, varTypeStr, false, false); +} + +private MethodVar createLocalMethodVarWithinLoop(bool isFinal, VariableDeclaratorId varId, UnannType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, false, true); } private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -70,13 +88,19 @@ private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType if(dimsStr == "[]") varTypeStr += "[]"; - return methodVar(isFinal, name, varTypeStr, false); + return methodVar(isFinal, name, varTypeStr, false, false); +} + +private MethodVar createLocalMethodVarWithinLoop(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { + mv = createLocalMethodVar(isFinal, varId, varType, dims); + mv.isDeclaredWithinLoop = true; + return mv; } private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false); + return methodVar(isFinal, name, varTypeStr, false, false); } private bool figureIfIsFinal(VariableModifier* varMod) { diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 716f9cd..b069195 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -162,3 +162,17 @@ public test bool shouldReturnCorrectParamsWithLastOneNonFinal() { !strParam.isFinal && strParam.isParameter && !nonFinalLastParam.isFinal && nonFinalLastParam.isParameter; } + +public test bool shouldReturnCorrectVarsDeclaredWithinLoop() { + methodHeader = varsWithinTheLoopMethodHeader(); + methodBody = varsWithinTheLoopMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + varsWithinLoop = retrieveDeclaredWithinLoop(vars); + withinLoopNames = retrieveDeclaredWithinLoopNames(vars); + + return size(varsWithinLoop) == 3 && + "insideDecl" in withinLoopNames && + "insideBody" in withinLoopNames && + "insideBodyStr" in withinLoopNames; +} diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 2afed50..00975e2 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -92,4 +92,15 @@ public set[MethodVar] getAllNonFinalArrays(set[MethodVar] vars) { public set[MethodVar] getAllFinalArrays(set[MethodVar] vars) { return getFinalEncouragedArrays(vars) + getFinalDiscouragedArrays(vars); +} + +public MethodHeader varsWithinTheLoopMethodHeader() { + header = "void method(int notWithinLoop, String notWithinLoopAgain)"; + return parse(#MethodHeader, header); +} + +public MethodBody varsWithinTheLoopMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopVarsWithinLoop|; + content = readFile(fileLoc); + return parse(#MethodBody, content); } \ No newline at end of file diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 14f0b13..1385983 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -4,8 +4,8 @@ import Set; import String; // TODO Review if using a Set is the best choice. Probably not. -public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter); -public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isEffectiveFinal); +public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isDeclaredWithinLoop); +public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isDeclaredWithinLoop, bool isEffectiveFinal); public bool isArray(MethodVar methodVar) { return methodVar.varType == "array"; @@ -55,6 +55,14 @@ public bool isTypePlainArray(MethodVar methodVar) { return endsWith(methodVar.varType, "[]"); } +public set[MethodVar] retrieveDeclaredWithinLoop(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, var.isDeclaredWithinLoop }; +} + +public set[str] retrieveDeclaredWithinLoopNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, var.isDeclaredWithinLoop }; +} + // FIXME public bool isEffectiveFinal(MethodVar methodVar) { try diff --git a/testes/localVariables/EnhancedForLoopVarsWithinLoop b/testes/localVariables/EnhancedForLoopVarsWithinLoop new file mode 100644 index 0000000..34829b7 --- /dev/null +++ b/testes/localVariables/EnhancedForLoopVarsWithinLoop @@ -0,0 +1,9 @@ +{ + int localVarNotWithinLoop; + Object localVarNotWithinLoopAgain; + for (String insideDecl : strings) { + final int insideBody = 50; + String insideBodyStr = "insideBody"; + } + Object notWithinLoopAfterLoop = null; +} \ No newline at end of file From 6a9eba1d4153307b437caf85e229ccf019f2bda1 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 046/156] Assuring that vars declared within loop are not added as not within loop. --- src/LocalVariablesFinder.rsc | 32 +++++++++++++++++++------------- src/LocalVariablesFinderTest.rsc | 16 ++++++++++++++++ src/MethodVar.rsc | 8 ++++++++ 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 83ca8db..28c44a4 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -29,28 +29,40 @@ private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { return methodVars; } +private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + return methodVar(isFinal, name, varTypeStr, true, false); +} + +// XXX probably incorrect, ugly and not really DRY way of checking for vars within loop private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { set[MethodVar] methodVars = {}; - visit(methodBody) { - + set[str] varsWithinLoopNames = {}; + + top-down visit(methodBody) { + case EnhancedForStatement enhancedForStmt: { visit(enhancedForStmt) { case (EnhancedForStatement) `for ( : ) `: methodVars += createLocalMethodVarWithinLoop(figureIfIsFinal(varMod), varId, varType); - // TODO maybe there is a better way besides checking this two times. case (LocalVariableDeclaration) ` `: visit(vdl) { - case (VariableDeclaratorId) ` `: - methodVars += createLocalMethodVarWithinLoop(figureIfIsFinal(varMod), varId, varType, dims); + case (VariableDeclaratorId) ` `: { + varsWithinLoopNames += unparse(varId); + methodVars += createLocalMethodVarWithinLoop(figureIfIsFinal(varMod), varId, varType, dims); + } } } } case (LocalVariableDeclaration) ` `: { visit(vdl) { - case (VariableDeclaratorId) ` `: - methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType, dims); + case (VariableDeclaratorId) ` `: { + if(unparse(varId) notin varsWithinLoopNames) + methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType, dims); + } } } @@ -61,12 +73,6 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { return methodVars; } -private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { - name = trim(unparse(varId)); - varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, true, false); -} - private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index b069195..a29e6cc 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -176,3 +176,19 @@ public test bool shouldReturnCorrectVarsDeclaredWithinLoop() { "insideBody" in withinLoopNames && "insideBodyStr" in withinLoopNames; } + +public test bool shouldReturnCorrectVarsNotDeclaredWithinLoop() { + methodHeader = varsWithinTheLoopMethodHeader(); + methodBody = varsWithinTheLoopMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + varsNotWithinLoop = retrieveNotDeclaredWithinLoop(vars); + notWithinLoopNames = retrieveNotDeclaredWithinLoopNames(vars); + + return size(varsNotWithinLoop) == 5 && + "notWithinLoop" in notWithinLoopNames && + "notWithinLoopAgain" in notWithinLoopNames && + "localVarNotWithinLoop" in notWithinLoopNames && + "localVarNotWithinLoopAgain" in notWithinLoopNames && + "notWithinLoopAfterLoop" in notWithinLoopNames; +} diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 1385983..0cda4c9 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -63,6 +63,14 @@ public set[str] retrieveDeclaredWithinLoopNames(set[MethodVar] methodVars) { return { var.name | MethodVar var <- methodVars, var.isDeclaredWithinLoop }; } +public set[MethodVar] retrieveNotDeclaredWithinLoop(set[MethodVar] methodVars) { + return { var | MethodVar var <- methodVars, !var.isDeclaredWithinLoop }; +} + +public set[str] retrieveNotDeclaredWithinLoopNames(set[MethodVar] methodVars) { + return { var.name | MethodVar var <- methodVars, !var.isDeclaredWithinLoop }; +} + // FIXME public bool isEffectiveFinal(MethodVar methodVar) { try From 636d31b6f94d9b92d851930ff673cbd29d441a84 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 047/156] First attempt to start putting everything together towards a refactor. --- src/refactor/forloop/ForLoopToFunctional.rsc | 40 ++++++ src/refactor/forloop/ProspectiveOperation.rsc | 134 +++++++++++++++++- testes/localVariables/ForLoopToFunctional | 37 ----- 3 files changed, 173 insertions(+), 38 deletions(-) create mode 100644 src/refactor/forloop/ForLoopToFunctional.rsc diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc new file mode 100644 index 0000000..f81ebae --- /dev/null +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -0,0 +1,40 @@ +module refactor::forloop::ForLoopToFunctional + +import lang::java::\syntax::Java18; +import ParseTree; +import IO; +import refactor::forloop::ProspectiveOperation; +import List; +import MethodVar; + +public void refactorEnhancedToFunctional(EnhancedForStatement forStmt, set[MethodVar] methodVars) { + prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); + println(mergeOperations(prospectiveOperations, methodVars)); +} + +private list[ProspectiveOperation] mergeOperations(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { + println("mergeOperations()"); + listIndexes = [0 .. size(prOps)]; + // iterating bottom-up + for (int i <- reverse(listIndexes)) { + curr = prOps[i]; + prev = prOps[i - 1]; + if (!areComposable(curr, prev, methodVars)) { + if (isMergeable(prev) && isMergeable(curr)) { + if (isFilter(prev) || isFilter(curr)) { + opsSize = size(prOps); + while(opsSize > i) { + last = prOps[opsSize - 1]; + beforeLast = prOps[opsSize - 2]; + merged = mergeOps(beforeLast, last, methodVars); + prOps = slice(prOps, 0, opsSize - 2) + merged; + } + } else { + merged = mergeOps(prev, curr); + prOps = slice(prOps, 0, opsSize - 2) + merged; + } + } + } + } + return prOps; +} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 7fc8689..d727d0e 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -8,6 +8,7 @@ import List; import util::Math; import MethodVar; import String; +import Set; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); @@ -20,7 +21,7 @@ str NONE_MATCH = "noneMatch"; private list[MethodVar] methodLocalVars; -public list[ProspectiveOperation] retrievePotentialOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { +public list[ProspectiveOperation] retrieveProspectiveOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { methodLocalVars = localVars; list[ProspectiveOperation] prospectiveOperations = []; top-down visit(forStmt) { @@ -133,4 +134,135 @@ private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation // all elements but the last + the last one (eagerized or not) return prefix(prOps) + lastPrOp; +} + +public bool isMergeable(ProspectiveOperation prOp) { + operation = prOp.operation; + return operation == FILTER || operation == MAP || operation == FOR_EACH; +} + +public bool isFilter(ProspectiveOperation prOp) { + return prOp.operation == FILTER; +} + +// TODO needed and available called more than once. good idea to extract it. +public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { + firstNeededVars = retrieveNeededVariables(first); + // second's available has to be in first's needed + secondAvailableVars = retrieveAvaliableVars(second, methodVars); + secondAvailableVarsInFirstNeeded = isSecondAvailableInFirstNeeded(firstNeededVars, secondAvailableVars); + return size(firstNeededVars) <= 1 && secondAvailableVarsInFirstNeeded; +} + +private bool isSecondAvailableInFirstNeeded(set[str] firstNeededVars, set[str] secondAvailableVars) { + for(secondAvailable <- secondAvailableVars) + if(secondAvailable notin firstNeededVars) return false; + return true; +} + +public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { + if (isFilter(first)) { + return mergeTwoOpsInAnIfThenStmt(first, second); + } else { + list[str] statements = retrieveAllStatements(first) + retrieveAllStatements(second); + + set[str] firstAvailableVars = retrieveAvaliableVars(first, methodVars); + set[str] availableVars = firstAvailableVars; + availableVars += retrieveAvailableVars(second, methodVars); + + set[str] neededVars = retrieveNeededVariables(second); + neededVars -= firstAvailableVars; + neededVars += retrieveNeededVariables(first); + + neederVars -= retrieveNotDeclaredWithinLoop(methodVars); + + Block statementsAsOneBlock = transformStatementsInBlock(statements); + + return prospectiveOperation(unparse(statementsAsOneBlock), second.operation); + } +} + +private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation first, ProspectiveOperation second) { + Expression exp = parse(#Expression, first.stmt); + Statement thenStmt = parse(#Statement, second.stmt); + ifThenStmt = [IfThenStatement] "if () ;"; + return prospectiveOperation(unparse(ifThenStmt), second.operation); +} + +private list[str] retrieveAllStatements(ProspectiveOperation prOp) { + list[str] allStatements = []; + if (isBlock(prOp.stmt)) + return retrieveAllStatementsFromBlock(prOp.stmt); + else + return retrieveAllExpressionStatementsFromStatement(prOp.stmt); +} + +private bool isBlock(str stmt) { + try { + parse(#Block, stmt); + return true; + } catch: return false; +} + +private list[str] retrieveAllStatementsFromBlock(str blockStr) { + list[str] blockStatements = []; + block = parse(#Block, blockStr); + top-down visit(block) { + case BlockStatement blockStmt: + blockStatements += unparse(blockStmt); + } + return blockStatements; +} + +// XXX probably not this +private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { + list[str] stmts = []; + Statement stmt = parse(#Statement, statement); + top-down visit(stmt) { + case ExpressionStatement expStmt: + blockStatements += unparse(expStmt); + } + return stmts; +} + +private set[str] retrieveAvaliableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { + // fields declared in class, inherited and visible from imported classes ?? + // variables declared in the Prospective Operation ?? + withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); + withinLoop = retrieveDeclaredWithinLoopNames(methodVars); + return withinMethod - withinLoop; +} + +private set[str] retrieveNeededVariables(ProspectiveOperation prOp) { + if (prOp.operation == FILTER) + return {}; + + set[str] neededVariables = {}; + set[str] declaredVariables = {}; + set[str] methodsNames = {}; + + stmt = parse(#Statement, prOp.stmt); + // If a var has the same name as a called method, this will fail + visit (stmt) { + case LocalVariableDeclaration lvdl: { + visit(lvdl) { + case (VariableDeclaratorId) ``: declaredVariables += id; + } + } + case (MethodInvocation) ` ( )`: methodsNames += methodName; + case Identifier id: neededVariables = {}; + } + + neededVariables -= declaredVariables; + neededVariables -= methodsNames; + + return neededVariables; +} + +private Block transformStatementsInBlock(list[Statement] stmts) { + str joined = "{\n"; + for(stmt <- stmts) + joined += (stmts + "\n"); + joined += "\n}"; + return parse(#Block, stmts); } \ No newline at end of file diff --git a/testes/localVariables/ForLoopToFunctional b/testes/localVariables/ForLoopToFunctional index 752bf9a..00e95ff 100644 --- a/testes/localVariables/ForLoopToFunctional +++ b/testes/localVariables/ForLoopToFunctional @@ -1,12 +1,3 @@ -class SimpleForEach { - - public void test1(List things, PrintWriter writer) { - for (String thing: things) { - writer.write(thing); - } - } -} - class GrammarEngineImpl { boolean isEngineExisting(String grammarName) { @@ -18,32 +9,4 @@ class GrammarEngineImpl { return false; } -} - -class StandardHost { - - List findReloadedContextMemoryLeaks(){ - List result = new ArrayList(); - for (Map.Entry entry : - childClassLoaders.entrySet()) - if(isValid(entry)) { - ClassLoader cl = entry.getKey(); - if (!((WebappClassLoader)cl).isStart()) - result.add(entry.getValue()); - } - return result; - } -} - -class EditorGutterColumnManager { - - int getNumberOfErrors() { - int count = 0; - for (ElementRule rule : getRules()) { - if(rule.hasErrors()) - count += rule.getErrors().size(); - } - return count; - } - } \ No newline at end of file From 204299654127d2702510a6ad79af011fd1390ab1 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 048/156] Fixing merging ops in an IfThenStmt. - Exp had already a ';' at the end. --- src/refactor/forloop/ProspectiveOperation.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index d727d0e..6fd3a7f 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -185,7 +185,7 @@ public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOper private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation first, ProspectiveOperation second) { Expression exp = parse(#Expression, first.stmt); Statement thenStmt = parse(#Statement, second.stmt); - ifThenStmt = [IfThenStatement] "if () ;"; + ifThenStmt = [IfThenStatement] "if () "; return prospectiveOperation(unparse(ifThenStmt), second.operation); } From 6275fc9251ea59ccfcc3cac2131fb09ffdf14ca4 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 049/156] Correcting some silly(spelling, wrong types) compilation mistakes. --- src/refactor/forloop/ProspectiveOperation.rsc | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 6fd3a7f..fd04a9d 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -149,7 +149,7 @@ public bool isFilter(ProspectiveOperation prOp) { public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { firstNeededVars = retrieveNeededVariables(first); // second's available has to be in first's needed - secondAvailableVars = retrieveAvaliableVars(second, methodVars); + secondAvailableVars = retrieveAvailableVars(second, methodVars); secondAvailableVarsInFirstNeeded = isSecondAvailableInFirstNeeded(firstNeededVars, secondAvailableVars); return size(firstNeededVars) <= 1 && secondAvailableVarsInFirstNeeded; } @@ -166,7 +166,7 @@ public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOper } else { list[str] statements = retrieveAllStatements(first) + retrieveAllStatements(second); - set[str] firstAvailableVars = retrieveAvaliableVars(first, methodVars); + set[str] firstAvailableVars = retrieveAvailableVars(first, methodVars); set[str] availableVars = firstAvailableVars; availableVars += retrieveAvailableVars(second, methodVars); @@ -174,7 +174,7 @@ public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOper neededVars -= firstAvailableVars; neededVars += retrieveNeededVariables(first); - neederVars -= retrieveNotDeclaredWithinLoop(methodVars); + neededVars -= retrieveNotDeclaredWithinLoopNames(methodVars); Block statementsAsOneBlock = transformStatementsInBlock(statements); @@ -220,12 +220,12 @@ private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { Statement stmt = parse(#Statement, statement); top-down visit(stmt) { case ExpressionStatement expStmt: - blockStatements += unparse(expStmt); + stmts += unparse(expStmt); } return stmts; } -private set[str] retrieveAvaliableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { +private set[str] retrieveAvailableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { // fields declared in class, inherited and visible from imported classes ?? // variables declared in the Prospective Operation ?? withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); @@ -246,10 +246,10 @@ private set[str] retrieveNeededVariables(ProspectiveOperation prOp) { visit (stmt) { case LocalVariableDeclaration lvdl: { visit(lvdl) { - case (VariableDeclaratorId) ``: declaredVariables += id; + case (VariableDeclaratorId) ``: declaredVariables += unparse(id); } } - case (MethodInvocation) ` ( )`: methodsNames += methodName; + case (MethodInvocation) ` ( )`: methodsNames += unparse(methodName); case Identifier id: neededVariables = {}; } @@ -259,10 +259,10 @@ private set[str] retrieveNeededVariables(ProspectiveOperation prOp) { return neededVariables; } -private Block transformStatementsInBlock(list[Statement] stmts) { +private Block transformStatementsInBlock(list[str] stmts) { str joined = "{\n"; for(stmt <- stmts) - joined += (stmts + "\n"); - joined += "\n}"; - return parse(#Block, stmts); + joined += (stmt + "\n"); + joined += "}"; + return parse(#Block, joined); } \ No newline at end of file From ee0c05875c25ecc5cd10c7312aa3a57de4cfa5de Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 050/156] Updating and improving ProspectiveOperations test. --- .../forloop/ProspectiveOperationsTest.rsc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index 68556c8..a7c3fd2 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -5,18 +5,25 @@ import refactor::forloop::ProspectiveOperationsTestResources; import MethodVar; import lang::java::\syntax::Java18; import IO; +import List; public test bool shouldReturnAForEachOnSimpleShortExample() { tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort = simpleShort(); - prospectiveOperations = retrievePotentialOperations(simpleShort.vars, simpleShort.loop); - return prospectiveOperations[0].stmt == "writer.write(thing);" && + + prospectiveOperations = retrieveProspectiveOperations(simpleShort.vars, simpleShort.loop); + + return size(prospectiveOperations) == 1 && + prospectiveOperations[0].stmt == "writer.write(thing);" && prospectiveOperations[0].operation == "forEach"; } public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce = filterMapReduce(); - prospectiveOperations = retrievePotentialOperations(filterMapReduce.vars, filterMapReduce.loop); - return prospectiveOperations[0].stmt == "rule.hasErrors()" && + + prospectiveOperations = retrieveProspectiveOperations(filterMapReduce.vars, filterMapReduce.loop); + + return size(prospectiveOperations) == 2 && + prospectiveOperations[0].stmt == "rule.hasErrors()" && prospectiveOperations[0].operation == "filter" && prospectiveOperations[1].stmt == "count += rule.getErrors().size();" && prospectiveOperations[1].operation == "reduce"; From 2a5b8829c52faa89e66850ee85da8e9fcddc0e72 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 051/156] Fixing some logical erros in ForLoopToFunctional. --- src/refactor/forloop/ForLoopToFunctional.rsc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index f81ebae..c1e6001 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -12,25 +12,28 @@ public void refactorEnhancedToFunctional(EnhancedForStatement forStmt, set[Metho println(mergeOperations(prospectiveOperations, methodVars)); } -private list[ProspectiveOperation] mergeOperations(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { - println("mergeOperations()"); - listIndexes = [0 .. size(prOps)]; +private list[ProspectiveOperation] mergeOperations(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { + // we don't want the first element (index 0) + listIndexes = [1 .. size(prOps)]; // iterating bottom-up for (int i <- reverse(listIndexes)) { curr = prOps[i]; prev = prOps[i - 1]; if (!areComposable(curr, prev, methodVars)) { if (isMergeable(prev) && isMergeable(curr)) { + opsSize = size(prOps); + if (isFilter(prev) || isFilter(curr)) { - opsSize = size(prOps); while(opsSize > i) { - last = prOps[opsSize - 1]; - beforeLast = prOps[opsSize - 2]; + ProspectiveOperation last = prOps[opsSize - 1]; + ProspectiveOperation beforeLast = prOps[opsSize - 2]; merged = mergeOps(beforeLast, last, methodVars); prOps = slice(prOps, 0, opsSize - 2) + merged; + + opsSize = size(prOps); } } else { - merged = mergeOps(prev, curr); + merged = mergeOps(prev, curr, methodVars); prOps = slice(prOps, 0, opsSize - 2) + merged; } } From c1d3397e134f8933f6cfebddfb78cc1a9f0ca85a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 052/156] Improving breaking statements into Prospective Operations. - Considering a LocalVariableDeclarationStatement inside a block. --- This is a case in the example illustrated in the paper. --- src/refactor/forloop/ForLoopToFunctional.rsc | 2 +- src/refactor/forloop/ProspectiveOperation.rsc | 60 +++++++++++++------ .../forloop/ProspectiveOperationsTest.rsc | 20 ++++++- .../ProspectiveOperationsTestResources.rsc | 12 ++++ .../FilterAndMergedForEach | 7 +++ testes/localVariables/ForLoopToFunctional | 12 ---- 6 files changed, 79 insertions(+), 34 deletions(-) create mode 100644 testes/ProspectiveOperation/FilterAndMergedForEach delete mode 100644 testes/localVariables/ForLoopToFunctional diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index c1e6001..10279b5 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -7,7 +7,7 @@ import refactor::forloop::ProspectiveOperation; import List; import MethodVar; -public void refactorEnhancedToFunctional(EnhancedForStatement forStmt, set[MethodVar] methodVars) { +public void refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); println(mergeOperations(prospectiveOperations, methodVars)); } diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index fd04a9d..4463b1b 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -55,9 +55,11 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(St return prOps; } + +// XXX we might need to save `if (exp)` when a filter is added private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block block) { list[ProspectiveOperation] prOps = []; - top-down visit(block) { + top-down-break visit(block) { case BlockStatement blockStatement: { top-down-break visit(blockStatement) { case (IfThenStatement) `if ( ) `: { @@ -68,6 +70,10 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block //retrieveProspectiveOperationsFromStatement(thenStmt); println("if else"); } + case LocalVariableDeclarationStatement lvdlStmt: { + // not an if, so it's a map + prOps += prospectiveOperation(unparse(lvdlStmt), MAP); + } case StatementWithoutTrailingSubstatement otherStmt: { statement = parse(#Statement, unparse(otherStmt)); prOps += retrieveProspectiveOperationFromSingleStatement(statement); @@ -80,18 +86,18 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatement(IfThenStatement ifStmt) { list[ProspectiveOperation] prOps = []; - top-down visit (ifStmt) { + top-down-break visit (ifStmt) { case (IfThenStatement) `if ( ) `: { - visit (thenStmt) { + top-down-break visit (thenStmt) { case (ReturnStatement) `return ;`: { if ("" == true) prOps += prospectiveOperation(unparse(ifStmt), ANY_MATCH); else if ("" == false) prOps += prospectiveOperation(unparse(ifStmt), NONE_MATCH); } - case Statement statement: { + default: { prOps += prospectiveOperation(unparse(exp), FILTER); - prOps += retrieveProspectiveOperationsFromStatement(statement); + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); } } } @@ -99,11 +105,11 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem return prOps; } -private list[ProspectiveOperation] retrieveProspectiveOperationFromSingleStatement(Statement statement) { +private ProspectiveOperation retrieveProspectiveOperationFromSingleStatement(Statement statement) { if (isReducer(statement)) - return [prospectiveOperation(unparse(statement), REDUCE)]; + return prospectiveOperation(unparse(statement), REDUCE); else - return [prospectiveOperation(unparse(statement), MAP)]; + return prospectiveOperation(unparse(statement), MAP); } private bool isReducer(Statement statement) { @@ -193,7 +199,9 @@ private list[str] retrieveAllStatements(ProspectiveOperation prOp) { list[str] allStatements = []; if (isBlock(prOp.stmt)) return retrieveAllStatementsFromBlock(prOp.stmt); - else + else if(isLocalVariableDeclarationStatement(prOp.stmt)) + return [prOp.stmt]; + else return retrieveAllExpressionStatementsFromStatement(prOp.stmt); } @@ -214,6 +222,13 @@ private list[str] retrieveAllStatementsFromBlock(str blockStr) { return blockStatements; } +private bool isLocalVariableDeclarationStatement(str stmt) { + try { + parse(#LocalVariableDeclarationStatement, stmt); + return true; + } catch: return false; +} + // XXX probably not this private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { list[str] stmts = []; @@ -240,19 +255,26 @@ private set[str] retrieveNeededVariables(ProspectiveOperation prOp) { set[str] neededVariables = {}; set[str] declaredVariables = {}; set[str] methodsNames = {}; - - stmt = parse(#Statement, prOp.stmt); - // If a var has the same name as a called method, this will fail - visit (stmt) { - case LocalVariableDeclaration lvdl: { - visit(lvdl) { - case (VariableDeclaratorId) ``: declaredVariables += unparse(id); + + if (isLocalVariableDeclarationStatement(prOp.stmt)) { + lvdlStmt = parse(#LocalVariableDeclarationStatement, prOp.stmt); + visit(lvdlStmt) { + case (VariableDeclaratorId) ``: declaredVariables += unparse(id); + } + } else { + stmt = parse(#Statement, prOp.stmt); + // If a var has the same name as a called method, this will fail + visit (stmt) { + case LocalVariableDeclaration lvdl: { + visit(lvdl) { + case (VariableDeclaratorId) ``: declaredVariables += unparse(id); + } } + case (MethodInvocation) ` ( )`: methodsNames += unparse(methodName); + case Identifier id: neededVariables = {}; } - case (MethodInvocation) ` ( )`: methodsNames += unparse(methodName); - case Identifier id: neededVariables = {}; } - + neededVariables -= declaredVariables; neededVariables -= methodsNames; diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index a7c3fd2..40839f0 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -22,7 +22,7 @@ public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { prospectiveOperations = retrieveProspectiveOperations(filterMapReduce.vars, filterMapReduce.loop); - return size(prospectiveOperations) == 2 && + return size(prospectiveOperations) == 2 && prospectiveOperations[0].stmt == "rule.hasErrors()" && prospectiveOperations[0].operation == "filter" && prospectiveOperations[1].stmt == "count += rule.getErrors().size();" && @@ -34,4 +34,20 @@ public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { // prospectiveOperations = retrievePotentialOperations(continueAndReturn.vars, continueAndReturn.loop); // println(prospectiveOperations); // return false; -//} \ No newline at end of file +//} + +public test bool shouldReturnXOnFilterAndMergedForEach() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] filterAndMergedForEach = filterAndMergedForEach(); + + prospectiveOperations = retrieveProspectiveOperations(filterAndMergedForEach.vars, filterAndMergedForEach.loop); + + return size(prospectiveOperations) == 4 && + prospectiveOperations[0].stmt == "isValid(entry)" && + prospectiveOperations[0].operation == "filter" && + prospectiveOperations[1].stmt == "ClassLoader cl = entry.getKey();" && + prospectiveOperations[1].operation == "map" && + prospectiveOperations[2].stmt == "!((WebappClassLoader)cl).isStart()" && + prospectiveOperations[2].operation == "filter" && + prospectiveOperations[3].stmt == "result.add(entry.getValue());" && + prospectiveOperations[3].operation == "forEach"; +} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc index 24db643..3d9cfde 100644 --- a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTestResources.rsc @@ -34,4 +34,16 @@ private set[MethodVar] filterMapReduceVars() { methodHeader = parse(#MethodHeader, "int getNumberOfErrors()"); methodBody = parse(#MethodBody, "{\n int count = 0;\n for (ElementRule rule : getRules()) {\n if(rule.hasErrors())\n count += rule.getErrors().size();\n }\n return count;\n }"); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] filterAndMergedForEach() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterAndMergedForEach|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + return ; +} + +private set[MethodVar] filterAndMergedForEachVars() { + methodHeader = parse(#MethodHeader, "List\ findReloadedContextMemoryLeaks()"); + methodBody = parse(#MethodBody, "{\n List\ result = new ArrayList\();\n for (Map.Entry\ entry :\n childClassLoaders.entrySet())\n if(isValid(entry)) {\n ClassLoader cl = entry.getKey();\n if (!((WebappClassLoader)cl).isStart())\n result.add(entry.getValue());\n }\n return result;\n }"); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file diff --git a/testes/ProspectiveOperation/FilterAndMergedForEach b/testes/ProspectiveOperation/FilterAndMergedForEach new file mode 100644 index 0000000..af3f52b --- /dev/null +++ b/testes/ProspectiveOperation/FilterAndMergedForEach @@ -0,0 +1,7 @@ +for (Map.Entry entry : + childClassLoaders.entrySet()) + if(isValid(entry)) { + ClassLoader cl = entry.getKey(); + if (!((WebappClassLoader)cl).isStart()) + result.add(entry.getValue()); + } \ No newline at end of file diff --git a/testes/localVariables/ForLoopToFunctional b/testes/localVariables/ForLoopToFunctional deleted file mode 100644 index 00e95ff..0000000 --- a/testes/localVariables/ForLoopToFunctional +++ /dev/null @@ -1,12 +0,0 @@ -class GrammarEngineImpl { - - boolean isEngineExisting(String grammarName) { - for(GrammarEngine e : importedEngines) { - if(e.getGrammarName() == null) continue; - if(e.getGrammarName().equals(grammarName)) - return true; - } - return false; - } - -} \ No newline at end of file From 9c7e7e0c21342d33a10bc3cb0d0c5a2cfd0fb7c6 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 053/156] Retrieving if statements when merging ops when the first is not an filter --- src/refactor/forloop/ProspectiveOperation.rsc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 4463b1b..b223076 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -236,6 +236,8 @@ private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { top-down visit(stmt) { case ExpressionStatement expStmt: stmts += unparse(expStmt); + case (IfThenStatement) `if () `: + stmts += "if (" + unparse(exp) + ")"; } return stmts; } From ebd6eba14c997a8f8a450e8b6dd034b7e6c70579 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 054/156] Improving our understanding of the algorithm and fixing it. - For two operations to be composable, all needed vars from the first have to be provided by the second. -- Therefore: the firsts' needed vars have to be available from the second --- src/refactor/forloop/ProspectiveOperation.rsc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index b223076..527265f 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -154,15 +154,15 @@ public bool isFilter(ProspectiveOperation prOp) { // TODO needed and available called more than once. good idea to extract it. public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { firstNeededVars = retrieveNeededVariables(first); - // second's available has to be in first's needed + // firsts' needed has to be available from second secondAvailableVars = retrieveAvailableVars(second, methodVars); - secondAvailableVarsInFirstNeeded = isSecondAvailableInFirstNeeded(firstNeededVars, secondAvailableVars); - return size(firstNeededVars) <= 1 && secondAvailableVarsInFirstNeeded; + firstNeededInSecondAvailable = isFirstNeededVarsInSecondAvailableVars(firstNeededVars, secondAvailableVars); + return size(firstNeededVars) <= 1 && firstNeededInSecondAvailable; } -private bool isSecondAvailableInFirstNeeded(set[str] firstNeededVars, set[str] secondAvailableVars) { - for(secondAvailable <- secondAvailableVars) - if(secondAvailable notin firstNeededVars) return false; +private bool isFirstNeededVarsInSecondAvailableVars(set[str] firstNeededVars, set[str] secondAvailableVars) { + for(firstNeededVar <- firstNeededVars) + if(firstNeededVar notin secondAvailableVars) return false; return true; } From 4144f5097419fa5beb16ab8fbc19d1d5f82ab848 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 055/156] Extracting module for OperationTypes. - Making reuse easier of the strings across other modules/tests. --- src/refactor/forloop/OperationType.rsc | 8 ++++++++ .../forloop/ProspectiveOperationsTest.rsc | 15 ++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 src/refactor/forloop/OperationType.rsc diff --git a/src/refactor/forloop/OperationType.rsc b/src/refactor/forloop/OperationType.rsc new file mode 100644 index 0000000..a65568a --- /dev/null +++ b/src/refactor/forloop/OperationType.rsc @@ -0,0 +1,8 @@ +module refactor::forloop::OperationType + +public str FILTER = "filter"; +public str MAP = "map"; +public str FOR_EACH = "forEach"; +public str REDUCE = "reduce"; +public str ANY_MATCH = "anyMatch"; +public str NONE_MATCH = "noneMatch"; \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index 40839f0..1506144 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -2,6 +2,7 @@ module refactor::forloop::ProspectiveOperationsTest import refactor::forloop::ProspectiveOperation; import refactor::forloop::ProspectiveOperationsTestResources; +import refactor::forloop::OperationType; import MethodVar; import lang::java::\syntax::Java18; import IO; @@ -14,7 +15,7 @@ public test bool shouldReturnAForEachOnSimpleShortExample() { return size(prospectiveOperations) == 1 && prospectiveOperations[0].stmt == "writer.write(thing);" && - prospectiveOperations[0].operation == "forEach"; + prospectiveOperations[0].operation == FOR_EACH; } public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { @@ -24,9 +25,9 @@ public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { return size(prospectiveOperations) == 2 && prospectiveOperations[0].stmt == "rule.hasErrors()" && - prospectiveOperations[0].operation == "filter" && + prospectiveOperations[0].operation == FILTER && prospectiveOperations[1].stmt == "count += rule.getErrors().size();" && - prospectiveOperations[1].operation == "reduce"; + prospectiveOperations[1].operation == REDUCE; } //public test bool shouldReturnXOnContinueAndReturnEnhancedLoop() { @@ -43,11 +44,11 @@ public test bool shouldReturnXOnFilterAndMergedForEach() { return size(prospectiveOperations) == 4 && prospectiveOperations[0].stmt == "isValid(entry)" && - prospectiveOperations[0].operation == "filter" && + prospectiveOperations[0].operation == FILTER && prospectiveOperations[1].stmt == "ClassLoader cl = entry.getKey();" && - prospectiveOperations[1].operation == "map" && + prospectiveOperations[1].operation == MAP && prospectiveOperations[2].stmt == "!((WebappClassLoader)cl).isStart()" && - prospectiveOperations[2].operation == "filter" && + prospectiveOperations[2].operation == FILTER && prospectiveOperations[3].stmt == "result.add(entry.getValue());" && - prospectiveOperations[3].operation == "forEach"; + prospectiveOperations[3].operation == FOREACH; } \ No newline at end of file From 5435129658997504bedabd30976a1af9c312a997 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 056/156] Module for NeededVariables. More robust and correct implementation. --- src/refactor/forloop/NeededVariables.rsc | 81 ++++++++++++++++++++ src/refactor/forloop/NeededVariablesTest.rsc | 65 ++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 src/refactor/forloop/NeededVariables.rsc create mode 100644 src/refactor/forloop/NeededVariablesTest.rsc diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/NeededVariables.rsc new file mode 100644 index 0000000..cf729b4 --- /dev/null +++ b/src/refactor/forloop/NeededVariables.rsc @@ -0,0 +1,81 @@ +module refactor::forloop::NeededVariables + +import lang::java::\syntax::Java18; +import ParseTree; +import IO; +import refactor::forloop::ProspectiveOperation; +import MethodVar; +import Set; +import refactor::forloop::OperationType; +import String; + +public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { + set[str] neededVariables = {}; + + if (prOp.operation == REDUCE) + return {}; + else if (isLocalVariableDeclarationStatement(prOp.stmt)) + neededVariables += retrieveNeededVarsFromLocalVariableDeclarationStmt(prOp.stmt); + else + neededVariables += retrieveNeededVarsFromStatement(prOp.stmt); + + return neededVariables; +} + +private bool isLocalVariableDeclarationStatement(str stmt) { + try { + parse(#LocalVariableDeclarationStatement, stmt); + return true; + } catch: return false; +} + +// XXX Parsing twice (isLocal... and this method) the stmt +// should not be a big deal since it's only a stmt from a prospective operation. +// Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again +// could refactor in the future to return a Tuple, with the bool and the parsed tree. +private set[str] retrieveNeededVarsFromLocalVariableDeclarationStmt(str stmt) { + set[str] neededVariables = {}; + + lvdlStmt = parse(#LocalVariableDeclarationStatement, stmt); + + visit(lvdlStmt) { + case (VariableDeclaratorId) ``: neededVariables += unparse(id); + + case ExpressionName expName: { + visit(expName) { + case Identifier id: neededVariables += unparse(id); + } + } + } + + return neededVariables; +} + +private set[str] retrieveNeededVarsFromStatement(str stmt) { + set[str] neededVariables = {}; + + stmt = parse(#Statement, getCorrectStatementAsString(stmt)); + + visit (stmt) { + case LocalVariableDeclaration lvdl: { + visit(lvdl) { + case (VariableDeclaratorId) ``: neededVariables += unparse(id); + } + } + case ExpressionName expName: { + visit(expName) { + case Identifier id: neededVariables += unparse(id); + } + } + } + + return neededVariables; +} + +private str getCorrectStatementAsString(str stmt) { + // stmt does not end with ';' it can't be parsed as a statement + // it can also be a block + if(!(endsWith(stmt, ";") || endsWith(stmt, "}"))) + return stmt + ";"; + return stmt; +} \ No newline at end of file diff --git a/src/refactor/forloop/NeededVariablesTest.rsc b/src/refactor/forloop/NeededVariablesTest.rsc new file mode 100644 index 0000000..f14ec72 --- /dev/null +++ b/src/refactor/forloop/NeededVariablesTest.rsc @@ -0,0 +1,65 @@ +module refactor::forloop::NeededVariablesTest + +import refactor::forloop::NeededVariables; +import refactor::forloop::ProspectiveOperation; +import refactor::forloop::OperationType; +import MethodVar; +import Set; +import IO; + +public test bool methodInvocationWithArg() { + prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 2 && + "writer" in neededVars && + "thing" in neededVars; +} + +public test bool simpleMethodInvocationWithoutEndingSemiCollon() { + prOp = prospectiveOperation("rule.hasErrors()", FILTER); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 1 && + "rule" in neededVars; +} + +public test bool simpleMethodInvocationWithtEndingSemiCollon() { + prOp = prospectiveOperation("rule.hasErrors()", FILTER); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 1 && + "rule" in neededVars; +} + +public test bool variableAssignmentWithInitializer() { + prOp = prospectiveOperation("count = rule.getErrors().size();", MAP); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 2 && + "count" in neededVars && + "rule" in neededVars; +} + +public test bool localVariableDeclarationShouldReturnItselfWithInitializer() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 3 && + "cl" in neededVars && + "entry" in neededVars && + "argNeeded" in neededVars; +} + +public test bool reduceShouldReturnEmpty() { + prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 0; +} \ No newline at end of file From 212a6646a9c1d04d24491d1fca573a54f0ab104a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 057/156] ProspectiveOperation using the extracted modules. --- src/refactor/forloop/AvailableVariables.rsc | 15 ++++++ src/refactor/forloop/NeededVariables.rsc | 7 --- src/refactor/forloop/ProspectiveOperation.rsc | 53 ++----------------- 3 files changed, 19 insertions(+), 56 deletions(-) create mode 100644 src/refactor/forloop/AvailableVariables.rsc diff --git a/src/refactor/forloop/AvailableVariables.rsc b/src/refactor/forloop/AvailableVariables.rsc new file mode 100644 index 0000000..dd07a43 --- /dev/null +++ b/src/refactor/forloop/AvailableVariables.rsc @@ -0,0 +1,15 @@ +module refactor::forloop::AvailableVariables + +import refactor::forloop::ProspectiveOperation; +import MethodVar; +import Set; + +// XXX assess the necessity to verify these others conditions: + // fields declared in class, inherited and visible from imported classes ?? + // variables declared in the Prospective Operation ?? +// Right now they are being verified by elimination. +public set[str] retrieveAvailableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { + withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); + withinLoop = retrieveDeclaredWithinLoopNames(methodVars); + return withinMethod - withinLoop; +} \ No newline at end of file diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/NeededVariables.rsc index cf729b4..8ef4ddd 100644 --- a/src/refactor/forloop/NeededVariables.rsc +++ b/src/refactor/forloop/NeededVariables.rsc @@ -22,13 +22,6 @@ public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { return neededVariables; } -private bool isLocalVariableDeclarationStatement(str stmt) { - try { - parse(#LocalVariableDeclarationStatement, stmt); - return true; - } catch: return false; -} - // XXX Parsing twice (isLocal... and this method) the stmt // should not be a big deal since it's only a stmt from a prospective operation. // Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 527265f..61c6ffe 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -9,16 +9,12 @@ import util::Math; import MethodVar; import String; import Set; +import refactor::forloop::OperationType; +import refactor::forloop::NeededVariables; +import refactor::forloop::AvailableVariables; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); -str FILTER = "filter"; -str MAP = "map"; -str FOR_EACH = "forEach"; -str REDUCE = "reduce"; -str ANY_MATCH = "anyMatch"; -str NONE_MATCH = "noneMatch"; - private list[MethodVar] methodLocalVars; public list[ProspectiveOperation] retrieveProspectiveOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { @@ -222,7 +218,7 @@ private list[str] retrieveAllStatementsFromBlock(str blockStr) { return blockStatements; } -private bool isLocalVariableDeclarationStatement(str stmt) { +public bool isLocalVariableDeclarationStatement(str stmt) { try { parse(#LocalVariableDeclarationStatement, stmt); return true; @@ -242,47 +238,6 @@ private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { return stmts; } -private set[str] retrieveAvailableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { - // fields declared in class, inherited and visible from imported classes ?? - // variables declared in the Prospective Operation ?? - withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); - withinLoop = retrieveDeclaredWithinLoopNames(methodVars); - return withinMethod - withinLoop; -} - -private set[str] retrieveNeededVariables(ProspectiveOperation prOp) { - if (prOp.operation == FILTER) - return {}; - - set[str] neededVariables = {}; - set[str] declaredVariables = {}; - set[str] methodsNames = {}; - - if (isLocalVariableDeclarationStatement(prOp.stmt)) { - lvdlStmt = parse(#LocalVariableDeclarationStatement, prOp.stmt); - visit(lvdlStmt) { - case (VariableDeclaratorId) ``: declaredVariables += unparse(id); - } - } else { - stmt = parse(#Statement, prOp.stmt); - // If a var has the same name as a called method, this will fail - visit (stmt) { - case LocalVariableDeclaration lvdl: { - visit(lvdl) { - case (VariableDeclaratorId) ``: declaredVariables += unparse(id); - } - } - case (MethodInvocation) ` ( )`: methodsNames += unparse(methodName); - case Identifier id: neededVariables = {}; - } - } - - neededVariables -= declaredVariables; - neededVariables -= methodsNames; - - return neededVariables; -} - private Block transformStatementsInBlock(list[str] stmts) { str joined = "{\n"; for(stmt <- stmts) From 0e392111a0588c716d3b1ea27d9812ea63ef0ac4 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 058/156] Moving some methods around from ProspectiveOperation. - avoiding circular dependencies --- src/refactor/forloop/AvailableVariables.rsc | 4 +- src/refactor/forloop/ForLoopToFunctional.rsc | 103 ++++++++++++++++- src/refactor/forloop/NeededVariables.rsc | 15 ++- src/refactor/forloop/ProspectiveOperation.rsc | 108 +----------------- 4 files changed, 115 insertions(+), 115 deletions(-) diff --git a/src/refactor/forloop/AvailableVariables.rsc b/src/refactor/forloop/AvailableVariables.rsc index dd07a43..7ba18f6 100644 --- a/src/refactor/forloop/AvailableVariables.rsc +++ b/src/refactor/forloop/AvailableVariables.rsc @@ -1,8 +1,8 @@ module refactor::forloop::AvailableVariables -import refactor::forloop::ProspectiveOperation; -import MethodVar; import Set; +import MethodVar; +import refactor::forloop::ProspectiveOperation; // XXX assess the necessity to verify these others conditions: // fields declared in class, inherited and visible from imported classes ?? diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 10279b5..c22c6f6 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -1,11 +1,16 @@ module refactor::forloop::ForLoopToFunctional -import lang::java::\syntax::Java18; -import ParseTree; import IO; -import refactor::forloop::ProspectiveOperation; import List; +import Set; +import lang::java::\syntax::Java18; +import ParseTree; import MethodVar; +import refactor::forloop::ProspectiveOperation; +import refactor::forloop::NeededVariables; +import refactor::forloop::AvailableVariables; + + public void refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); @@ -40,4 +45,96 @@ private list[ProspectiveOperation] mergeOperations(list[ProspectiveOperation] pr } } return prOps; +} + +// TODO needed and available called more than once. good idea to extract it. +public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { + firstNeededVars = retrieveNeededVariables(first); + // firsts' needed has to be available from second + secondAvailableVars = retrieveAvailableVars(second, methodVars); + firstNeededInSecondAvailable = isFirstNeededVarsInSecondAvailableVars(firstNeededVars, secondAvailableVars); + return size(firstNeededVars) <= 1 && firstNeededInSecondAvailable; +} + +private bool isFirstNeededVarsInSecondAvailableVars(set[str] firstNeededVars, set[str] secondAvailableVars) { + for(firstNeededVar <- firstNeededVars) + if(firstNeededVar notin secondAvailableVars) return false; + return true; +} + +public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { + if (isFilter(first)) { + return mergeTwoOpsInAnIfThenStmt(first, second); + } else { + list[str] statements = retrieveAllStatements(first) + retrieveAllStatements(second); + + set[str] firstAvailableVars = retrieveAvailableVars(first, methodVars); + set[str] availableVars = firstAvailableVars; + availableVars += retrieveAvailableVars(second, methodVars); + + set[str] neededVars = retrieveNeededVariables(second); + neededVars -= firstAvailableVars; + neededVars += retrieveNeededVariables(first); + + neededVars -= retrieveNotDeclaredWithinLoopNames(methodVars); + + Block statementsAsOneBlock = transformStatementsInBlock(statements); + + return prospectiveOperation(unparse(statementsAsOneBlock), second.operation); + } +} + +private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation first, ProspectiveOperation second) { + Expression exp = parse(#Expression, first.stmt); + Statement thenStmt = parse(#Statement, second.stmt); + ifThenStmt = [IfThenStatement] "if () "; + return prospectiveOperation(unparse(ifThenStmt), second.operation); +} + +private list[str] retrieveAllStatements(ProspectiveOperation prOp) { + list[str] allStatements = []; + if (isBlock(prOp.stmt)) + return retrieveAllStatementsFromBlock(prOp.stmt); + else if(isLocalVariableDeclarationStatement(prOp.stmt)) + return [prOp.stmt]; + else + return retrieveAllExpressionStatementsFromStatement(prOp.stmt); +} + +private bool isBlock(str stmt) { + try { + parse(#Block, stmt); + return true; + } catch: return false; +} + +private list[str] retrieveAllStatementsFromBlock(str blockStr) { + list[str] blockStatements = []; + block = parse(#Block, blockStr); + top-down visit(block) { + case BlockStatement blockStmt: + blockStatements += unparse(blockStmt); + } + return blockStatements; +} + +// XXX probably not this +private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { + list[str] stmts = []; + Statement stmt = parse(#Statement, statement); + top-down visit(stmt) { + case ExpressionStatement expStmt: + stmts += unparse(expStmt); + case (IfThenStatement) `if () `: + stmts += "if (" + unparse(exp) + ")"; + } + return stmts; +} + +private Block transformStatementsInBlock(list[str] stmts) { + str joined = "{\n"; + for(stmt <- stmts) + joined += (stmt + "\n"); + joined += "}"; + return parse(#Block, joined); } \ No newline at end of file diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/NeededVariables.rsc index 8ef4ddd..2ee0b4c 100644 --- a/src/refactor/forloop/NeededVariables.rsc +++ b/src/refactor/forloop/NeededVariables.rsc @@ -1,13 +1,13 @@ module refactor::forloop::NeededVariables +import IO; +import String; +import Set; import lang::java::\syntax::Java18; import ParseTree; -import IO; -import refactor::forloop::ProspectiveOperation; import MethodVar; -import Set; +import refactor::forloop::ProspectiveOperation; import refactor::forloop::OperationType; -import String; public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { set[str] neededVariables = {}; @@ -22,6 +22,13 @@ public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { return neededVariables; } +public bool isLocalVariableDeclarationStatement(str stmt) { + try { + parse(#LocalVariableDeclarationStatement, stmt); + return true; + } catch: return false; +} + // XXX Parsing twice (isLocal... and this method) the stmt // should not be a big deal since it's only a stmt from a prospective operation. // Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 61c6ffe..4da1302 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -1,17 +1,12 @@ module refactor::forloop::ProspectiveOperation import IO; +import List; +import String; import lang::java::\syntax::Java18; import ParseTree; -import ParseTreeVisualization; -import List; -import util::Math; import MethodVar; -import String; -import Set; import refactor::forloop::OperationType; -import refactor::forloop::NeededVariables; -import refactor::forloop::AvailableVariables; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); @@ -145,103 +140,4 @@ public bool isMergeable(ProspectiveOperation prOp) { public bool isFilter(ProspectiveOperation prOp) { return prOp.operation == FILTER; -} - -// TODO needed and available called more than once. good idea to extract it. -public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { - firstNeededVars = retrieveNeededVariables(first); - // firsts' needed has to be available from second - secondAvailableVars = retrieveAvailableVars(second, methodVars); - firstNeededInSecondAvailable = isFirstNeededVarsInSecondAvailableVars(firstNeededVars, secondAvailableVars); - return size(firstNeededVars) <= 1 && firstNeededInSecondAvailable; -} - -private bool isFirstNeededVarsInSecondAvailableVars(set[str] firstNeededVars, set[str] secondAvailableVars) { - for(firstNeededVar <- firstNeededVars) - if(firstNeededVar notin secondAvailableVars) return false; - return true; -} - -public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { - if (isFilter(first)) { - return mergeTwoOpsInAnIfThenStmt(first, second); - } else { - list[str] statements = retrieveAllStatements(first) + retrieveAllStatements(second); - - set[str] firstAvailableVars = retrieveAvailableVars(first, methodVars); - set[str] availableVars = firstAvailableVars; - availableVars += retrieveAvailableVars(second, methodVars); - - set[str] neededVars = retrieveNeededVariables(second); - neededVars -= firstAvailableVars; - neededVars += retrieveNeededVariables(first); - - neededVars -= retrieveNotDeclaredWithinLoopNames(methodVars); - - Block statementsAsOneBlock = transformStatementsInBlock(statements); - - return prospectiveOperation(unparse(statementsAsOneBlock), second.operation); - } -} - -private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation first, ProspectiveOperation second) { - Expression exp = parse(#Expression, first.stmt); - Statement thenStmt = parse(#Statement, second.stmt); - ifThenStmt = [IfThenStatement] "if () "; - return prospectiveOperation(unparse(ifThenStmt), second.operation); -} - -private list[str] retrieveAllStatements(ProspectiveOperation prOp) { - list[str] allStatements = []; - if (isBlock(prOp.stmt)) - return retrieveAllStatementsFromBlock(prOp.stmt); - else if(isLocalVariableDeclarationStatement(prOp.stmt)) - return [prOp.stmt]; - else - return retrieveAllExpressionStatementsFromStatement(prOp.stmt); -} - -private bool isBlock(str stmt) { - try { - parse(#Block, stmt); - return true; - } catch: return false; -} - -private list[str] retrieveAllStatementsFromBlock(str blockStr) { - list[str] blockStatements = []; - block = parse(#Block, blockStr); - top-down visit(block) { - case BlockStatement blockStmt: - blockStatements += unparse(blockStmt); - } - return blockStatements; -} - -public bool isLocalVariableDeclarationStatement(str stmt) { - try { - parse(#LocalVariableDeclarationStatement, stmt); - return true; - } catch: return false; -} - -// XXX probably not this -private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { - list[str] stmts = []; - Statement stmt = parse(#Statement, statement); - top-down visit(stmt) { - case ExpressionStatement expStmt: - stmts += unparse(expStmt); - case (IfThenStatement) `if () `: - stmts += "if (" + unparse(exp) + ")"; - } - return stmts; -} - -private Block transformStatementsInBlock(list[str] stmts) { - str joined = "{\n"; - for(stmt <- stmts) - joined += (stmt + "\n"); - joined += "}"; - return parse(#Block, joined); } \ No newline at end of file From 34acb5ffbde1ca05cda411bdf815d7e258f81bbe Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 059/156] NeededVariables working with Expressions. - `Expression` is the Statement in a Prospective Filter. - `Expression` does not parse as a `Statement`. --- src/refactor/forloop/NeededVariables.rsc | 27 ++++++++++++++++--- src/refactor/forloop/NeededVariablesTest.rsc | 9 +++++++ src/refactor/forloop/ProspectiveOperation.rsc | 9 +++---- 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/NeededVariables.rsc index 2ee0b4c..00dffa9 100644 --- a/src/refactor/forloop/NeededVariables.rsc +++ b/src/refactor/forloop/NeededVariables.rsc @@ -7,15 +7,16 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import refactor::forloop::ProspectiveOperation; -import refactor::forloop::OperationType; public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { set[str] neededVariables = {}; - if (prOp.operation == REDUCE) + if (isReduce(prOp)) return {}; + else if(isFilter(prOp)) + neededVariables += retrieveNeededVarsFromExpression(prOp.stmt); else if (isLocalVariableDeclarationStatement(prOp.stmt)) - neededVariables += retrieveNeededVarsFromLocalVariableDeclarationStmt(prOp.stmt); + neededVariables += retrieveNeededVarsFromLocalVariableDeclarationStmt(prOp.stmt); else neededVariables += retrieveNeededVarsFromStatement(prOp.stmt); @@ -51,9 +52,27 @@ private set[str] retrieveNeededVarsFromLocalVariableDeclarationStmt(str stmt) { return neededVariables; } -private set[str] retrieveNeededVarsFromStatement(str stmt) { +// TODO verify if visit(Tree) works for a more generic traversal +// maybe it's possible to traverse only once +private set[str] retrieveNeededVarsFromExpression(str stmt) { set[str] neededVariables = {}; + + exp = parse(#Expression, stmt); + + visit(exp) { + case ExpressionName expName: { + visit(expName) { + case Identifier id: neededVariables += unparse(id); + } + } + } + + return neededVariables; +} +private set[str] retrieveNeededVarsFromStatement(str stmt) { + set[str] neededVariables = {}; + stmt = parse(#Statement, getCorrectStatementAsString(stmt)); visit (stmt) { diff --git a/src/refactor/forloop/NeededVariablesTest.rsc b/src/refactor/forloop/NeededVariablesTest.rsc index f14ec72..b362c86 100644 --- a/src/refactor/forloop/NeededVariablesTest.rsc +++ b/src/refactor/forloop/NeededVariablesTest.rsc @@ -56,6 +56,15 @@ public test bool localVariableDeclarationShouldReturnItselfWithInitializer() { "argNeeded" in neededVars; } +public test bool expressionIsNotAStatement() { + prOp = prospectiveOperation("!((WebappClassLoader)cl).isStart()", FILTER); + + neededVars = retrieveNeededVariables(prOp); + + return size(neededVars) == 1 && + "cl" in neededVars; +} + public test bool reduceShouldReturnEmpty() { prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 4da1302..03b6869 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -133,11 +133,10 @@ private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation return prefix(prOps) + lastPrOp; } -public bool isMergeable(ProspectiveOperation prOp) { - operation = prOp.operation; - return operation == FILTER || operation == MAP || operation == FOR_EACH; -} - public bool isFilter(ProspectiveOperation prOp) { return prOp.operation == FILTER; +} + +public bool isReduce(ProspectiveOperation prOp) { + return prOp.operation == REDUCE; } \ No newline at end of file From eef330261f248095b805d0f253fe17ccd918e01a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 060/156] Local Variables declared are available vars! --- src/refactor/forloop/AvailableVariables.rsc | 32 ++++++++++++- .../forloop/AvailableVariablesTest.rsc | 48 +++++++++++++++++++ src/refactor/forloop/NeededVariables.rsc | 16 +------ src/refactor/forloop/NeededVariablesTest.rsc | 22 ++++----- src/refactor/forloop/ProspectiveOperation.rsc | 7 +++ 5 files changed, 96 insertions(+), 29 deletions(-) create mode 100644 src/refactor/forloop/AvailableVariablesTest.rsc diff --git a/src/refactor/forloop/AvailableVariables.rsc b/src/refactor/forloop/AvailableVariables.rsc index 7ba18f6..6b495ea 100644 --- a/src/refactor/forloop/AvailableVariables.rsc +++ b/src/refactor/forloop/AvailableVariables.rsc @@ -1,6 +1,8 @@ module refactor::forloop::AvailableVariables import Set; +import lang::java::\syntax::Java18; +import ParseTree; import MethodVar; import refactor::forloop::ProspectiveOperation; @@ -8,8 +10,34 @@ import refactor::forloop::ProspectiveOperation; // fields declared in class, inherited and visible from imported classes ?? // variables declared in the Prospective Operation ?? // Right now they are being verified by elimination. -public set[str] retrieveAvailableVars(ProspectiveOperation prOp, set[MethodVar] methodVars) { +public set[str] retrieveAvailableVariables(ProspectiveOperation prOp, set[MethodVar] methodVars) { + availableVars = retrieveLocalVariableDeclarations(prOp); withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); withinLoop = retrieveDeclaredWithinLoopNames(methodVars); - return withinMethod - withinLoop; + + availableVars += withinMethod; + availableVars -= withinLoop; + + return availableVars; +} + +private set[str] retrieveLocalVariableDeclarations(ProspectiveOperation prOp) { + if (isFilter(prOp)) return {}; + + localVars = {}; + Tree stmt; + + if (isLocalVariableDeclarationStatement(prOp.stmt)) + stmt = parse(#LocalVariableDeclarationStatement, prOp.stmt); + else + stmt = parse(#Statement, prOp.stmt); + + visit(stmt) { + case LocalVariableDeclaration lvdl: { + visit(lvdl) { + case (VariableDeclaratorId) ``: localVars += unparse(id); + } + } + } + return localVars; } \ No newline at end of file diff --git a/src/refactor/forloop/AvailableVariablesTest.rsc b/src/refactor/forloop/AvailableVariablesTest.rsc new file mode 100644 index 0000000..a493051 --- /dev/null +++ b/src/refactor/forloop/AvailableVariablesTest.rsc @@ -0,0 +1,48 @@ +module refactor::forloop::AvailableVariablesTest + +import refactor::forloop::AvailableVariables; +import refactor::forloop::ProspectiveOperation; +import refactor::forloop::OperationType; +import MethodVar; +import Set; +import IO; + +public test bool methodParamShouldBeAvailableVar() { + prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); + methodVars = {methodVar(false, "thing", "String", false, true), + methodVar(false, "writer", "PrintWriter", true, false)}; + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return size(availableVars) == 1 && + "writer" in availableVars; +} + +public test bool varWithinLoopShouldNotBeAvailable() { + prOp = prospectiveOperation("rule.hasErrors()", FILTER); + methodVars = {methodVar(false, "count", "int", false, false), + methodVar(false, "rule", "ElementRule", false, true)}; + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return "rule" notin availableVars; +} + +public test bool varNotWithinLoopShouldBeAvailable() { + prOp = prospectiveOperation("rule.hasErrors()", FILTER); + methodVars = {methodVar(false, "count", "int", false, false), + methodVar(false, "rule", "ElementRule", false, true)}; + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return "count" in availableVars; +} + +public test bool localVariableDeclarationShouldBeAvailableVar() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); + methodVars = {}; // Independent in this case + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return "cl" in availableVars; +} \ No newline at end of file diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/NeededVariables.rsc index 00dffa9..c39a7fc 100644 --- a/src/refactor/forloop/NeededVariables.rsc +++ b/src/refactor/forloop/NeededVariables.rsc @@ -23,13 +23,6 @@ public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { return neededVariables; } -public bool isLocalVariableDeclarationStatement(str stmt) { - try { - parse(#LocalVariableDeclarationStatement, stmt); - return true; - } catch: return false; -} - // XXX Parsing twice (isLocal... and this method) the stmt // should not be a big deal since it's only a stmt from a prospective operation. // Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again @@ -39,9 +32,7 @@ private set[str] retrieveNeededVarsFromLocalVariableDeclarationStmt(str stmt) { lvdlStmt = parse(#LocalVariableDeclarationStatement, stmt); - visit(lvdlStmt) { - case (VariableDeclaratorId) ``: neededVariables += unparse(id); - + visit(lvdlStmt) { case ExpressionName expName: { visit(expName) { case Identifier id: neededVariables += unparse(id); @@ -76,11 +67,6 @@ private set[str] retrieveNeededVarsFromStatement(str stmt) { stmt = parse(#Statement, getCorrectStatementAsString(stmt)); visit (stmt) { - case LocalVariableDeclaration lvdl: { - visit(lvdl) { - case (VariableDeclaratorId) ``: neededVariables += unparse(id); - } - } case ExpressionName expName: { visit(expName) { case Identifier id: neededVariables += unparse(id); diff --git a/src/refactor/forloop/NeededVariablesTest.rsc b/src/refactor/forloop/NeededVariablesTest.rsc index b362c86..8998c7d 100644 --- a/src/refactor/forloop/NeededVariablesTest.rsc +++ b/src/refactor/forloop/NeededVariablesTest.rsc @@ -26,33 +26,31 @@ public test bool simpleMethodInvocationWithoutEndingSemiCollon() { "rule" in neededVars; } -public test bool simpleMethodInvocationWithtEndingSemiCollon() { - prOp = prospectiveOperation("rule.hasErrors()", FILTER); +public test bool variableAssignmentWithInitializer() { + prOp = prospectiveOperation("count = rule.getErrors().size();", MAP); neededVars = retrieveNeededVariables(prOp); - return size(neededVars) == 1 && + return size(neededVars) == 2 && + "count" in neededVars && "rule" in neededVars; } -public test bool variableAssignmentWithInitializer() { - prOp = prospectiveOperation("count = rule.getErrors().size();", MAP); +public test bool localVariableDeclarationShouldNotReturnItself() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); neededVars = retrieveNeededVariables(prOp); - return size(neededVars) == 2 && - "count" in neededVars && - "rule" in neededVars; + return "cl" notin neededVars; } -public test bool localVariableDeclarationShouldReturnItselfWithInitializer() { +public test bool localVariableDeclarationShouldReturnVarsUsedInInitializer() { prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); neededVars = retrieveNeededVariables(prOp); - return size(neededVars) == 3 && - "cl" in neededVars && - "entry" in neededVars && + return size(neededVars) == 2 && + "entry" in neededVars && "argNeeded" in neededVars; } diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 03b6869..4550d50 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -139,4 +139,11 @@ public bool isFilter(ProspectiveOperation prOp) { public bool isReduce(ProspectiveOperation prOp) { return prOp.operation == REDUCE; +} + +public bool isLocalVariableDeclarationStatement(str stmt) { + try { + parse(#LocalVariableDeclarationStatement, stmt); + return true; + } catch: return false; } \ No newline at end of file From 0d8cf605f64fd97683cc63275e3a3744718fcc3b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 061/156] Correcting typo that was causing test to fail. --- src/refactor/forloop/ProspectiveOperationsTest.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationsTest.rsc index 1506144..cbc26d4 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationsTest.rsc @@ -50,5 +50,5 @@ public test bool shouldReturnXOnFilterAndMergedForEach() { prospectiveOperations[2].stmt == "!((WebappClassLoader)cl).isStart()" && prospectiveOperations[2].operation == FILTER && prospectiveOperations[3].stmt == "result.add(entry.getValue());" && - prospectiveOperations[3].operation == FOREACH; + prospectiveOperations[3].operation == FOR_EACH; } \ No newline at end of file From 8e5a675259243d0f6749a52dccdb8a1cf87e65f5 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 062/156] More test cases for Available Variables. --- src/refactor/forloop/AvailableVariables.rsc | 5 +++- .../forloop/AvailableVariablesTest.rsc | 24 ++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/refactor/forloop/AvailableVariables.rsc b/src/refactor/forloop/AvailableVariables.rsc index 6b495ea..6004786 100644 --- a/src/refactor/forloop/AvailableVariables.rsc +++ b/src/refactor/forloop/AvailableVariables.rsc @@ -11,12 +11,15 @@ import refactor::forloop::ProspectiveOperation; // variables declared in the Prospective Operation ?? // Right now they are being verified by elimination. public set[str] retrieveAvailableVariables(ProspectiveOperation prOp, set[MethodVar] methodVars) { - availableVars = retrieveLocalVariableDeclarations(prOp); + availableVars = {}; + withinMethod = retrieveNotDeclaredWithinLoopNames(methodVars); withinLoop = retrieveDeclaredWithinLoopNames(methodVars); availableVars += withinMethod; availableVars -= withinLoop; + // Probably redundant somehow. This will catch some withinLoop. + availableVars += retrieveLocalVariableDeclarations(prOp); return availableVars; } diff --git a/src/refactor/forloop/AvailableVariablesTest.rsc b/src/refactor/forloop/AvailableVariablesTest.rsc index a493051..1b87fba 100644 --- a/src/refactor/forloop/AvailableVariablesTest.rsc +++ b/src/refactor/forloop/AvailableVariablesTest.rsc @@ -39,10 +39,32 @@ public test bool varNotWithinLoopShouldBeAvailable() { } public test bool localVariableDeclarationShouldBeAvailableVar() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey();", MAP); + methodVars = {}; // Independent in this case + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return size(availableVars) == 1 && + "cl" in availableVars; +} + +public test bool LocalVariableDeclAlongWithVarNotWithinLoopShouldBeAvailableVars() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey();", MAP); + methodVars = {methodVar(false, "result", "List\", false, false)}; + + availableVars = retrieveAvailableVariables(prOp, methodVars); + + return size(availableVars) == 2 && + "cl" in availableVars && + "result" in availableVars; +} + +public test bool localVariableDeclarationWithArgsInInitializerShouldBeAvailableVar() { prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); methodVars = {}; // Independent in this case availableVars = retrieveAvailableVariables(prOp, methodVars); - return "cl" in availableVars; + return size(availableVars) == 1 && + "cl" in availableVars; } \ No newline at end of file From 8ea3685d8bf2600bc348827d91fc824ef2c66bd0 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 063/156] Changing module NeededVariables to UsedVariables. - The module was finding the used variables. - In fact NeededVariables = UsedVariables - AvailableVariables. --- src/refactor/forloop/NeededVariablesTest.rsc | 72 ------------------- ...{NeededVariables.rsc => UsedVariables.rsc} | 38 +++++----- src/refactor/forloop/UsedVariablesTest.rsc | 72 +++++++++++++++++++ 3 files changed, 91 insertions(+), 91 deletions(-) delete mode 100644 src/refactor/forloop/NeededVariablesTest.rsc rename src/refactor/forloop/{NeededVariables.rsc => UsedVariables.rsc} (59%) create mode 100644 src/refactor/forloop/UsedVariablesTest.rsc diff --git a/src/refactor/forloop/NeededVariablesTest.rsc b/src/refactor/forloop/NeededVariablesTest.rsc deleted file mode 100644 index 8998c7d..0000000 --- a/src/refactor/forloop/NeededVariablesTest.rsc +++ /dev/null @@ -1,72 +0,0 @@ -module refactor::forloop::NeededVariablesTest - -import refactor::forloop::NeededVariables; -import refactor::forloop::ProspectiveOperation; -import refactor::forloop::OperationType; -import MethodVar; -import Set; -import IO; - -public test bool methodInvocationWithArg() { - prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 2 && - "writer" in neededVars && - "thing" in neededVars; -} - -public test bool simpleMethodInvocationWithoutEndingSemiCollon() { - prOp = prospectiveOperation("rule.hasErrors()", FILTER); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 1 && - "rule" in neededVars; -} - -public test bool variableAssignmentWithInitializer() { - prOp = prospectiveOperation("count = rule.getErrors().size();", MAP); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 2 && - "count" in neededVars && - "rule" in neededVars; -} - -public test bool localVariableDeclarationShouldNotReturnItself() { - prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); - - neededVars = retrieveNeededVariables(prOp); - - return "cl" notin neededVars; -} - -public test bool localVariableDeclarationShouldReturnVarsUsedInInitializer() { - prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argNeeded);", MAP); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 2 && - "entry" in neededVars && - "argNeeded" in neededVars; -} - -public test bool expressionIsNotAStatement() { - prOp = prospectiveOperation("!((WebappClassLoader)cl).isStart()", FILTER); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 1 && - "cl" in neededVars; -} - -public test bool reduceShouldReturnEmpty() { - prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); - - neededVars = retrieveNeededVariables(prOp); - - return size(neededVars) == 0; -} \ No newline at end of file diff --git a/src/refactor/forloop/NeededVariables.rsc b/src/refactor/forloop/UsedVariables.rsc similarity index 59% rename from src/refactor/forloop/NeededVariables.rsc rename to src/refactor/forloop/UsedVariables.rsc index c39a7fc..bf1ff7c 100644 --- a/src/refactor/forloop/NeededVariables.rsc +++ b/src/refactor/forloop/UsedVariables.rsc @@ -1,4 +1,4 @@ -module refactor::forloop::NeededVariables +module refactor::forloop::UsedVariables import IO; import String; @@ -8,73 +8,73 @@ import ParseTree; import MethodVar; import refactor::forloop::ProspectiveOperation; -public set[str] retrieveNeededVariables(ProspectiveOperation prOp) { - set[str] neededVariables = {}; +public set[str] retrieveUsedVariables(ProspectiveOperation prOp) { + set[str] usedVariables = {}; if (isReduce(prOp)) return {}; else if(isFilter(prOp)) - neededVariables += retrieveNeededVarsFromExpression(prOp.stmt); + usedVariables += retrieveUsedVarsFromExpression(prOp.stmt); else if (isLocalVariableDeclarationStatement(prOp.stmt)) - neededVariables += retrieveNeededVarsFromLocalVariableDeclarationStmt(prOp.stmt); + usedVariables += retrieveUsedVarsFromLocalVariableDeclarationStmt(prOp.stmt); else - neededVariables += retrieveNeededVarsFromStatement(prOp.stmt); + usedVariables += retrieveUsedVarsFromStatement(prOp.stmt); - return neededVariables; + return usedVariables; } // XXX Parsing twice (isLocal... and this method) the stmt // should not be a big deal since it's only a stmt from a prospective operation. // Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again // could refactor in the future to return a Tuple, with the bool and the parsed tree. -private set[str] retrieveNeededVarsFromLocalVariableDeclarationStmt(str stmt) { - set[str] neededVariables = {}; +private set[str] retrieveUsedVarsFromLocalVariableDeclarationStmt(str stmt) { + set[str] usedVariables = {}; lvdlStmt = parse(#LocalVariableDeclarationStatement, stmt); visit(lvdlStmt) { case ExpressionName expName: { visit(expName) { - case Identifier id: neededVariables += unparse(id); + case Identifier id: usedVariables += unparse(id); } } } - return neededVariables; + return usedVariables; } // TODO verify if visit(Tree) works for a more generic traversal // maybe it's possible to traverse only once -private set[str] retrieveNeededVarsFromExpression(str stmt) { - set[str] neededVariables = {}; +private set[str] retrieveUsedVarsFromExpression(str stmt) { + set[str] usedVariables = {}; exp = parse(#Expression, stmt); visit(exp) { case ExpressionName expName: { visit(expName) { - case Identifier id: neededVariables += unparse(id); + case Identifier id: usedVariables += unparse(id); } } } - return neededVariables; + return usedVariables; } -private set[str] retrieveNeededVarsFromStatement(str stmt) { - set[str] neededVariables = {}; +private set[str] retrieveUsedVarsFromStatement(str stmt) { + set[str] usedVariables = {}; stmt = parse(#Statement, getCorrectStatementAsString(stmt)); visit (stmt) { case ExpressionName expName: { visit(expName) { - case Identifier id: neededVariables += unparse(id); + case Identifier id: usedVariables += unparse(id); } } } - return neededVariables; + return usedVariables; } private str getCorrectStatementAsString(str stmt) { diff --git a/src/refactor/forloop/UsedVariablesTest.rsc b/src/refactor/forloop/UsedVariablesTest.rsc new file mode 100644 index 0000000..5f5ac5d --- /dev/null +++ b/src/refactor/forloop/UsedVariablesTest.rsc @@ -0,0 +1,72 @@ +module refactor::forloop::UsedVariablesTest + +import refactor::forloop::UsedVariables; +import refactor::forloop::ProspectiveOperation; +import refactor::forloop::OperationType; +import MethodVar; +import Set; +import IO; + +public test bool methodInvocationWithArg() { + prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 2 && + "writer" in usedVars && + "thing" in usedVars; +} + +public test bool simpleMethodInvocationWithoutEndingSemiCollon() { + prOp = prospectiveOperation("rule.hasErrors()", FILTER); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 1 && + "rule" in usedVars; +} + +public test bool variableAssignmentWithInitializer() { + prOp = prospectiveOperation("count = rule.getErrors().size();", MAP); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 2 && + "count" in usedVars && + "rule" in usedVars; +} + +public test bool localVariableDeclarationShouldNotReturnItself() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argUsed);", MAP); + + usedVars = retrieveUsedVariables(prOp); + + return "cl" notin usedVars; +} + +public test bool localVariableDeclarationShouldReturnVarsUsedInInitializer() { + prOp = prospectiveOperation("ClassLoader cl = entry.getKey(argUsed);", MAP); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 2 && + "entry" in usedVars && + "argUsed" in usedVars; +} + +public test bool expressionIsNotAStatement() { + prOp = prospectiveOperation("!((WebappClassLoader)cl).isStart()", FILTER); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 1 && + "cl" in usedVars; +} + +public test bool reduceShouldReturnEmpty() { + prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 0; +} \ No newline at end of file From a0d2e0e9b290c5ec857321e20dcfbc0c596a15c4 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 064/156] Big refactor but still merging incorrectly. - Creating a ComposableProspectiveOperation -- Allows the neededVars and availableVars to be computed only once. --- Makes easier to merge both. - Changing 'first' to 'curr' and 'second' to 'prev' -- Since we are iterating bottom up, the first and second are not what i meant. --- src/refactor/forloop/ForLoopToFunctional.rsc | 126 +++++++++++-------- 1 file changed, 75 insertions(+), 51 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index c22c6f6..529ff4e 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -7,88 +7,112 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import refactor::forloop::ProspectiveOperation; -import refactor::forloop::NeededVariables; +import refactor::forloop::UsedVariables; import refactor::forloop::AvailableVariables; +import refactor::forloop::OperationType; +public data ComposibleProspectiveOperation = composibleProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); - -public void refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { +public list[ComposibleProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); - println(mergeOperations(prospectiveOperations, methodVars)); + composiblePrOps = createComposibleProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); + + return mergeIntoComposableOperations(composiblePrOps); +} + +private list[ComposibleProspectiveOperation] createComposibleProspectiveOperationsWithVariableAvailability(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { + composiblePrOps = []; + for (prOp <- prOps) { + availableVars = retrieveAvailableVariables(prOp, methodVars); + neededVars = retrieveUsedVariables(prOp); + neededVars -= availableVars; + + composiblePrOps += composibleProspectiveOperation(prOp, neededVars, availableVars); + } + + return composiblePrOps; } -private list[ProspectiveOperation] mergeOperations(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { - // we don't want the first element (index 0) - listIndexes = [1 .. size(prOps)]; +private list[ComposibleProspectiveOperation] mergeIntoComposableOperations(list[ComposibleProspectiveOperation] composiblePrOps) { + + // we don't want the curr element (index 0) + listIndexes = [1 .. size(composiblePrOps)]; // iterating bottom-up for (int i <- reverse(listIndexes)) { - curr = prOps[i]; - prev = prOps[i - 1]; - if (!areComposable(curr, prev, methodVars)) { + curr = composiblePrOps[i]; + prev = composiblePrOps[i - 1]; + if (!areComposable(curr, prev)) { if (isMergeable(prev) && isMergeable(curr)) { - opsSize = size(prOps); + opsSize = size(composiblePrOps); - if (isFilter(prev) || isFilter(curr)) { + if (isFilter(prev.prOp) || isFilter(curr.prOp)) { while(opsSize > i) { - ProspectiveOperation last = prOps[opsSize - 1]; - ProspectiveOperation beforeLast = prOps[opsSize - 2]; - merged = mergeOps(beforeLast, last, methodVars); - prOps = slice(prOps, 0, opsSize - 2) + merged; + ComposibleProspectiveOperation last = composiblePrOps[opsSize - 1]; + ComposibleProspectiveOperation beforeLast = composiblePrOps[opsSize - 2]; + + merged = mergeComposiblePrOps(beforeLast, last); + composiblePrOps = slice(composiblePrOps, 0, opsSize - 2) + merged; - opsSize = size(prOps); + opsSize = size(composiblePrOps); } } else { - merged = mergeOps(prev, curr, methodVars); - prOps = slice(prOps, 0, opsSize - 2) + merged; + merged = mergeComposiblePrOps(prev, curr); + composiblePrOps = slice(composiblePrOps, 0, opsSize - 2) + merged; } } } } - return prOps; + return composiblePrOps; } -// TODO needed and available called more than once. good idea to extract it. -public bool areComposable(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { - firstNeededVars = retrieveNeededVariables(first); - // firsts' needed has to be available from second - secondAvailableVars = retrieveAvailableVars(second, methodVars); - firstNeededInSecondAvailable = isFirstNeededVarsInSecondAvailableVars(firstNeededVars, secondAvailableVars); - return size(firstNeededVars) <= 1 && firstNeededInSecondAvailable; +public bool areComposable(ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { + currNeededInPrevAvailable = isCurrNeededVarsInPrevAvailableVars(curr.neededVars, prev.availableVars); + return size(curr.neededVars) <= 1 && currNeededInPrevAvailable; } -private bool isFirstNeededVarsInSecondAvailableVars(set[str] firstNeededVars, set[str] secondAvailableVars) { - for(firstNeededVar <- firstNeededVars) - if(firstNeededVar notin secondAvailableVars) return false; +public bool isMergeable(ComposibleProspectiveOperation cPrOp) { + operation = cPrOp.prOp.operation; + return operation == FILTER || operation == MAP || operation == FOR_EACH; +} + +private bool isCurrNeededVarsInPrevAvailableVars(set[str] currNeededVars, set[str] prevAvailableVars) { + for(currNeededVar <- currNeededVars) + if(currNeededVar notin prevAvailableVars) return false; return true; } -public ProspectiveOperation mergeOps(ProspectiveOperation first, ProspectiveOperation second, set[MethodVar] methodVars) { - if (isFilter(first)) { - return mergeTwoOpsInAnIfThenStmt(first, second); +public ComposibleProspectiveOperation mergeComposiblePrOps(ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { + if (isFilter(curr.prOp)) { + prOp = mergeTwoOpsInAnIfThenStmt(curr.prOp, prev.prOp); + return mergeComposibleProspectiveOperation(prOp, curr, prev); } else { - list[str] statements = retrieveAllStatements(first) + retrieveAllStatements(second); - - set[str] firstAvailableVars = retrieveAvailableVars(first, methodVars); - set[str] availableVars = firstAvailableVars; - availableVars += retrieveAvailableVars(second, methodVars); - - set[str] neededVars = retrieveNeededVariables(second); - neededVars -= firstAvailableVars; - neededVars += retrieveNeededVariables(first); - - neededVars -= retrieveNotDeclaredWithinLoopNames(methodVars); - + list[str] statements = retrieveAllStatements(curr.prOp) + retrieveAllStatements(prev.prOp); Block statementsAsOneBlock = transformStatementsInBlock(statements); - - return prospectiveOperation(unparse(statementsAsOneBlock), second.operation); + prOp = prospectiveOperation(unparse(statementsAsOneBlock), prev.prOp.operation); + return mergeComposibleProspectiveOperation(prOp, curr, prev); } } -private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation first, ProspectiveOperation second) { - Expression exp = parse(#Expression, first.stmt); - Statement thenStmt = parse(#Statement, second.stmt); +private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation curr, ProspectiveOperation prev) { + Expression exp = parse(#Expression, curr.stmt); + Statement thenStmt = parse(#Statement, prev.stmt); ifThenStmt = [IfThenStatement] "if () "; - return prospectiveOperation(unparse(ifThenStmt), second.operation); + return prospectiveOperation(unparse(ifThenStmt), prev.operation); +} + +private ComposibleProspectiveOperation mergeComposibleProspectiveOperation(ProspectiveOperation prOp, ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { + mergedAvailableVars = mergeAvailableVars(curr.availableVars, prev.availableVars); + mergedNeededVars = mergeNeededVars(curr.neededVars, prev.neededVars, mergedAvailableVars); + return composibleProspectiveOperation(prOp, mergedNeededVars, mergedAvailableVars); +} + +private set[str] mergeAvailableVars(set[str] currAvailableVars, prevAvailableVars) { + return currAvailableVars + prevAvailableVars; +} + +private set[str] mergeNeededVars(set[str] currNeededVars, set[str] prevNeededVars, set[str] mergedAvailableVars) { + neededVars = currNeededVars + prevNeededVars; + return neededVars - mergedAvailableVars; } private list[str] retrieveAllStatements(ProspectiveOperation prOp) { From e4f3f9caef6a08f075f05bb686f2afdbe211fcfe Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 065/156] 'Composable' not composible. --- src/refactor/forloop/ForLoopToFunctional.rsc | 78 +++++++++++--------- 1 file changed, 45 insertions(+), 33 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 529ff4e..495a45c 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -11,66 +11,74 @@ import refactor::forloop::UsedVariables; import refactor::forloop::AvailableVariables; import refactor::forloop::OperationType; -public data ComposibleProspectiveOperation = composibleProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); +public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); -public list[ComposibleProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { +private set[MethodVar] methodAvailableVars; + +public list[ComposableProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); - composiblePrOps = createComposibleProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); + composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); + + methodAvailableVars = methodVars; - return mergeIntoComposableOperations(composiblePrOps); + return mergeIntoComposableOperations(composablePrOps); } -private list[ComposibleProspectiveOperation] createComposibleProspectiveOperationsWithVariableAvailability(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { - composiblePrOps = []; +private list[ComposableProspectiveOperation] createComposableProspectiveOperationsWithVariableAvailability(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { + composablePrOps = []; for (prOp <- prOps) { availableVars = retrieveAvailableVariables(prOp, methodVars); - neededVars = retrieveUsedVariables(prOp); - neededVars -= availableVars; - - composiblePrOps += composibleProspectiveOperation(prOp, neededVars, availableVars); + neededVars = retrieveNeededVars(prOp, availableVars); + composablePrOps += composableProspectiveOperation(prOp, neededVars, availableVars); } - return composiblePrOps; + return composablePrOps; +} + +private set[str] retrieveNeededVars(ProspectiveOperation prOp, set[str] availableVars) { + neededVars = retrieveUsedVariables(prOp); + neededVars -= availableVars; + return neededVars; } -private list[ComposibleProspectiveOperation] mergeIntoComposableOperations(list[ComposibleProspectiveOperation] composiblePrOps) { +private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ComposableProspectiveOperation] composablePrOps) { // we don't want the curr element (index 0) - listIndexes = [1 .. size(composiblePrOps)]; + listIndexes = [1 .. size(composablePrOps)]; // iterating bottom-up for (int i <- reverse(listIndexes)) { - curr = composiblePrOps[i]; - prev = composiblePrOps[i - 1]; + curr = composablePrOps[i]; + prev = composablePrOps[i - 1]; if (!areComposable(curr, prev)) { if (isMergeable(prev) && isMergeable(curr)) { - opsSize = size(composiblePrOps); + opsSize = size(composablePrOps); if (isFilter(prev.prOp) || isFilter(curr.prOp)) { while(opsSize > i) { - ComposibleProspectiveOperation last = composiblePrOps[opsSize - 1]; - ComposibleProspectiveOperation beforeLast = composiblePrOps[opsSize - 2]; + ComposableProspectiveOperation last = composablePrOps[opsSize - 1]; + ComposableProspectiveOperation beforeLast = composablePrOps[opsSize - 2]; - merged = mergeComposiblePrOps(beforeLast, last); - composiblePrOps = slice(composiblePrOps, 0, opsSize - 2) + merged; + merged = mergeComposablePrOps(beforeLast, last); + composablePrOps = slice(composablePrOps, 0, opsSize - 2) + merged; - opsSize = size(composiblePrOps); + opsSize = size(composablePrOps); } } else { - merged = mergeComposiblePrOps(prev, curr); - composiblePrOps = slice(composiblePrOps, 0, opsSize - 2) + merged; + merged = mergeComposablePrOps(prev, curr); + composablePrOps = slice(composablePrOps, 0, opsSize - 2) + merged; } } } } - return composiblePrOps; + return composablePrOps; } -public bool areComposable(ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { +public bool areComposable(ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { currNeededInPrevAvailable = isCurrNeededVarsInPrevAvailableVars(curr.neededVars, prev.availableVars); return size(curr.neededVars) <= 1 && currNeededInPrevAvailable; } -public bool isMergeable(ComposibleProspectiveOperation cPrOp) { +public bool isMergeable(ComposableProspectiveOperation cPrOp) { operation = cPrOp.prOp.operation; return operation == FILTER || operation == MAP || operation == FOR_EACH; } @@ -81,15 +89,17 @@ private bool isCurrNeededVarsInPrevAvailableVars(set[str] currNeededVars, set[st return true; } -public ComposibleProspectiveOperation mergeComposiblePrOps(ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { +public ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { if (isFilter(curr.prOp)) { prOp = mergeTwoOpsInAnIfThenStmt(curr.prOp, prev.prOp); - return mergeComposibleProspectiveOperation(prOp, curr, prev); + availableVars = retrieveAvailableVariables(prOp, methodAvailableVars); + neededVars = retrieveNeededVars(prOp, availableVars); + return composableProspectiveOperation(prOp, neededVars, availableVars); } else { list[str] statements = retrieveAllStatements(curr.prOp) + retrieveAllStatements(prev.prOp); Block statementsAsOneBlock = transformStatementsInBlock(statements); prOp = prospectiveOperation(unparse(statementsAsOneBlock), prev.prOp.operation); - return mergeComposibleProspectiveOperation(prOp, curr, prev); + return mergeComposableProspectiveOperation(prOp, curr, prev); } } @@ -100,10 +110,10 @@ private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation curr return prospectiveOperation(unparse(ifThenStmt), prev.operation); } -private ComposibleProspectiveOperation mergeComposibleProspectiveOperation(ProspectiveOperation prOp, ComposibleProspectiveOperation curr, ComposibleProspectiveOperation prev) { +private ComposableProspectiveOperation mergeComposableProspectiveOperation(ProspectiveOperation prOp, ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { mergedAvailableVars = mergeAvailableVars(curr.availableVars, prev.availableVars); mergedNeededVars = mergeNeededVars(curr.neededVars, prev.neededVars, mergedAvailableVars); - return composibleProspectiveOperation(prOp, mergedNeededVars, mergedAvailableVars); + return composableProspectiveOperation(prOp, mergedNeededVars, mergedAvailableVars); } private set[str] mergeAvailableVars(set[str] currAvailableVars, prevAvailableVars) { @@ -111,8 +121,10 @@ private set[str] mergeAvailableVars(set[str] currAvailableVars, prevAvailableVar } private set[str] mergeNeededVars(set[str] currNeededVars, set[str] prevNeededVars, set[str] mergedAvailableVars) { - neededVars = currNeededVars + prevNeededVars; - return neededVars - mergedAvailableVars; + neededVars = currNeededVars; + neededVars -= mergedAvailableVars; + neededVars += prevNeededVars; + return neededVars ; } private list[str] retrieveAllStatements(ProspectiveOperation prOp) { From fb0b15118e7585967c8a1c7412acbfb856beea51 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 066/156] Another case (IfThenStatement) for UsedVariables. - If Then Else will have to be added aswell. --- src/refactor/forloop/UsedVariables.rsc | 54 ++++++++++++++++------ src/refactor/forloop/UsedVariablesTest.rsc | 11 +++++ 2 files changed, 52 insertions(+), 13 deletions(-) diff --git a/src/refactor/forloop/UsedVariables.rsc b/src/refactor/forloop/UsedVariables.rsc index bf1ff7c..14b05f5 100644 --- a/src/refactor/forloop/UsedVariables.rsc +++ b/src/refactor/forloop/UsedVariables.rsc @@ -14,7 +14,7 @@ public set[str] retrieveUsedVariables(ProspectiveOperation prOp) { if (isReduce(prOp)) return {}; else if(isFilter(prOp)) - usedVariables += retrieveUsedVarsFromExpression(prOp.stmt); + usedVariables += retrieveUsedVarsFromFilter(prOp.stmt); else if (isLocalVariableDeclarationStatement(prOp.stmt)) usedVariables += retrieveUsedVarsFromLocalVariableDeclarationStmt(prOp.stmt); else @@ -23,31 +23,39 @@ public set[str] retrieveUsedVariables(ProspectiveOperation prOp) { return usedVariables; } -// XXX Parsing twice (isLocal... and this method) the stmt -// should not be a big deal since it's only a stmt from a prospective operation. -// Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again -// could refactor in the future to return a Tuple, with the bool and the parsed tree. -private set[str] retrieveUsedVarsFromLocalVariableDeclarationStmt(str stmt) { + +private set[str] retrieveUsedVarsFromFilter(str stmt) { + if(isIfThenStatement(stmt)) + return retrieveUsedVarsFromIfThenStmt(stmt); + else + return retrieveUsedVarsFromExpression(stmt); +} + +public bool isIfThenStatement(str stmt) { + try { + parse(#IfThenStatement, stmt); + return true; + } catch: return false; +} + +// XXX pretty redundant lookups for 'ExpressionName' around this module +private set[str] retrieveUsedVarsFromIfThenStmt(str stmt) { set[str] usedVariables = {}; + ifThenStmt = parse(#IfThenStatement, stmt); - lvdlStmt = parse(#LocalVariableDeclarationStatement, stmt); - - visit(lvdlStmt) { + visit(ifThenStmt) { case ExpressionName expName: { visit(expName) { case Identifier id: usedVariables += unparse(id); } - } + } } return usedVariables; } -// TODO verify if visit(Tree) works for a more generic traversal -// maybe it's possible to traverse only once private set[str] retrieveUsedVarsFromExpression(str stmt) { set[str] usedVariables = {}; - exp = parse(#Expression, stmt); visit(exp) { @@ -61,6 +69,26 @@ private set[str] retrieveUsedVarsFromExpression(str stmt) { return usedVariables; } +// XXX Parsing twice (isLocal... and this method) the stmt +// should not be a big deal since it's only a stmt from a prospective operation. +// Using this pattern (parsing to check if a stmt is of the type #Something) and then parsing again +// could refactor in the future to return a Tuple, with the bool and the parsed tree. +private set[str] retrieveUsedVarsFromLocalVariableDeclarationStmt(str stmt) { + set[str] usedVariables = {}; + + lvdlStmt = parse(#LocalVariableDeclarationStatement, stmt); + + visit(lvdlStmt) { + case ExpressionName expName: { + visit(expName) { + case Identifier id: usedVariables += unparse(id); + } + } + } + + return usedVariables; +} + private set[str] retrieveUsedVarsFromStatement(str stmt) { set[str] usedVariables = {}; diff --git a/src/refactor/forloop/UsedVariablesTest.rsc b/src/refactor/forloop/UsedVariablesTest.rsc index 5f5ac5d..44b9330 100644 --- a/src/refactor/forloop/UsedVariablesTest.rsc +++ b/src/refactor/forloop/UsedVariablesTest.rsc @@ -63,6 +63,17 @@ public test bool expressionIsNotAStatement() { "cl" in usedVars; } +public test bool ifThenStatement() { + prOp = prospectiveOperation("if (!((WebappClassLoader)cl).isStart()) result.add(entry.getValue());", FILTER); + + usedVars = retrieveUsedVariables(prOp); + + return size(usedVars) == 3 && + "cl" in usedVars && + "result" in usedVars && + "entry" in usedVars; +} + public test bool reduceShouldReturnEmpty() { prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); From 18cbec80fe5bd50f1db9557665d23c81c6dbd0ea Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 067/156] Standarizing passing arguments prev before curr. --- src/refactor/forloop/ForLoopToFunctional.rsc | 27 ++++++++++---------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 495a45c..4ed066f 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -49,7 +49,7 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ for (int i <- reverse(listIndexes)) { curr = composablePrOps[i]; prev = composablePrOps[i - 1]; - if (!areComposable(curr, prev)) { + if (!areComposable(prev, curr)) { if (isMergeable(prev) && isMergeable(curr)) { opsSize = size(composablePrOps); @@ -73,7 +73,7 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ return composablePrOps; } -public bool areComposable(ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { +public bool areComposable(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { currNeededInPrevAvailable = isCurrNeededVarsInPrevAvailableVars(curr.neededVars, prev.availableVars); return size(curr.neededVars) <= 1 && currNeededInPrevAvailable; } @@ -89,28 +89,29 @@ private bool isCurrNeededVarsInPrevAvailableVars(set[str] currNeededVars, set[st return true; } -public ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { - if (isFilter(curr.prOp)) { - prOp = mergeTwoOpsInAnIfThenStmt(curr.prOp, prev.prOp); +public ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + if (isFilter(prev.prOp)) { + prOp = mergeTwoOpsInAnIfThenStmt(prev.prOp, curr.prOp); availableVars = retrieveAvailableVariables(prOp, methodAvailableVars); neededVars = retrieveNeededVars(prOp, availableVars); return composableProspectiveOperation(prOp, neededVars, availableVars); + } else { - list[str] statements = retrieveAllStatements(curr.prOp) + retrieveAllStatements(prev.prOp); + list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); Block statementsAsOneBlock = transformStatementsInBlock(statements); - prOp = prospectiveOperation(unparse(statementsAsOneBlock), prev.prOp.operation); - return mergeComposableProspectiveOperation(prOp, curr, prev); + prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); + return mergeComposableProspectiveOperation(prOp, prev, curr); } } -private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation curr, ProspectiveOperation prev) { - Expression exp = parse(#Expression, curr.stmt); - Statement thenStmt = parse(#Statement, prev.stmt); +private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation prev, ProspectiveOperation curr) { + Expression exp = parse(#Expression, prev.stmt); + Statement thenStmt = parse(#Statement, curr.stmt); ifThenStmt = [IfThenStatement] "if () "; - return prospectiveOperation(unparse(ifThenStmt), prev.operation); + return prospectiveOperation(unparse(ifThenStmt), curr.operation); } -private ComposableProspectiveOperation mergeComposableProspectiveOperation(ProspectiveOperation prOp, ComposableProspectiveOperation curr, ComposableProspectiveOperation prev) { +private ComposableProspectiveOperation mergeComposableProspectiveOperation(ProspectiveOperation prOp, ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { mergedAvailableVars = mergeAvailableVars(curr.availableVars, prev.availableVars); mergedNeededVars = mergeNeededVars(curr.neededVars, prev.neededVars, mergedAvailableVars); return composableProspectiveOperation(prOp, mergedNeededVars, mergedAvailableVars); From f7f1568ea45aa5f4dea576477d23e2436e6044bd Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 068/156] Getting right if two operations can be chained or not. - According to the paper, two operations O and O' can be chained if: -- size of neededVars of O' is 1 or less -- neededVars of O' is contained in availability set of O --- availability set is the union of neededVars with availableVars --- src/refactor/forloop/ForLoopToFunctional.rsc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 4ed066f..883f7d3 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -49,7 +49,7 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ for (int i <- reverse(listIndexes)) { curr = composablePrOps[i]; prev = composablePrOps[i - 1]; - if (!areComposable(prev, curr)) { + if (!canBeChained(prev, curr)) { if (isMergeable(prev) && isMergeable(curr)) { opsSize = size(composablePrOps); @@ -73,9 +73,9 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ return composablePrOps; } -public bool areComposable(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - currNeededInPrevAvailable = isCurrNeededVarsInPrevAvailableVars(curr.neededVars, prev.availableVars); - return size(curr.neededVars) <= 1 && currNeededInPrevAvailable; +public bool canBeChained(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + currNeededVarsInPrevAvailabilitySet = isCurrNeededVarsInPrevAvailabilitySet(curr.neededVars, prev); + return size(curr.neededVars) <= 1 && currNeededVarsInPrevAvailabilitySet; } public bool isMergeable(ComposableProspectiveOperation cPrOp) { @@ -83,9 +83,10 @@ public bool isMergeable(ComposableProspectiveOperation cPrOp) { return operation == FILTER || operation == MAP || operation == FOR_EACH; } -private bool isCurrNeededVarsInPrevAvailableVars(set[str] currNeededVars, set[str] prevAvailableVars) { +private bool isCurrNeededVarsInPrevAvailabilitySet(set[str] currNeededVars, ComposableProspectiveOperation prev) { + prevAvailabilitySet = prev.availableVars + prev.neededVars; for(currNeededVar <- currNeededVars) - if(currNeededVar notin prevAvailableVars) return false; + if(currNeededVar notin prevAvailabilitySet) return false; return true; } From e87cd1e94ccfd421e8daebd3212c0343d23eedfd Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 069/156] Identifying operation as 'anyMatch' --- src/refactor/forloop/ProspectiveOperation.rsc | 30 ++++++++----- ...sTest.rsc => ProspectiveOperationTest.rsc} | 45 ++++++++++++++----- ... => ProspectiveOperationTestResources.rsc} | 2 +- 3 files changed, 55 insertions(+), 22 deletions(-) rename src/refactor/forloop/{ProspectiveOperationsTest.rsc => ProspectiveOperationTest.rsc} (53%) rename src/refactor/forloop/{ProspectiveOperationsTestResources.rsc => ProspectiveOperationTestResources.rsc} (97%) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 4550d50..bc4832b 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -7,6 +7,7 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import refactor::forloop::OperationType; +import ParseTreeVisualization; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); @@ -54,8 +55,8 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block case BlockStatement blockStatement: { top-down-break visit(blockStatement) { case (IfThenStatement) `if ( ) `: { - prOps += prospectiveOperation(unparse(exp), FILTER); - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + ifThenStmt = [IfThenStatement] "if () "; + prOps += retrieveProspectiveOperationsFromIfThenStatement(ifThenStmt); } case (IfThenElseStatement) `if ( ) else `: { //retrieveProspectiveOperationsFromStatement(thenStmt); @@ -77,18 +78,25 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatement(IfThenStatement ifStmt) { list[ProspectiveOperation] prOps = []; + foundReturn = false; top-down-break visit (ifStmt) { case (IfThenStatement) `if ( ) `: { top-down-break visit (thenStmt) { - case (ReturnStatement) `return ;`: { - if ("" == true) - prOps += prospectiveOperation(unparse(ifStmt), ANY_MATCH); - else if ("" == false) - prOps += prospectiveOperation(unparse(ifStmt), NONE_MATCH); - } - default: { - prOps += prospectiveOperation(unparse(exp), FILTER); - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + case Statement stmt: { + visit(stmt) { + case (ReturnStatement) `return ;`: { + foundReturn = true; + if ("" == "true") + prOps += prospectiveOperation(unparse(exp), ANY_MATCH); + else if ("" == "false") + prOps += prospectiveOperation(unparse(exp), NONE_MATCH); + } + } + + if (!foundReturn) { + prOps += prospectiveOperation(unparse(exp), FILTER); + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + } } } } diff --git a/src/refactor/forloop/ProspectiveOperationsTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc similarity index 53% rename from src/refactor/forloop/ProspectiveOperationsTest.rsc rename to src/refactor/forloop/ProspectiveOperationTest.rsc index cbc26d4..c6ac1ba 100644 --- a/src/refactor/forloop/ProspectiveOperationsTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -1,7 +1,7 @@ -module refactor::forloop::ProspectiveOperationsTest +module refactor::forloop::ProspectiveOperationTest import refactor::forloop::ProspectiveOperation; -import refactor::forloop::ProspectiveOperationsTestResources; +import refactor::forloop::ProspectiveOperationTestResources; import refactor::forloop::OperationType; import MethodVar; import lang::java::\syntax::Java18; @@ -18,7 +18,7 @@ public test bool shouldReturnAForEachOnSimpleShortExample() { prospectiveOperations[0].operation == FOR_EACH; } -public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { +public test bool shouldHandleReduce() { tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce = filterMapReduce(); prospectiveOperations = retrieveProspectiveOperations(filterMapReduce.vars, filterMapReduce.loop); @@ -30,14 +30,39 @@ public test bool shouldReturnCorrectlyOnFilterMapReduceExample() { prospectiveOperations[1].operation == REDUCE; } -//public test bool shouldReturnXOnContinueAndReturnEnhancedLoop() { -// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); -// prospectiveOperations = retrievePotentialOperations(continueAndReturn.vars, continueAndReturn.loop); -// println(prospectiveOperations); -// return false; -//} +public test bool shouldHandleAnyMatchAndIfWithContinue() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); + + prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); + println(prospectiveOperations); + + return size(prospectiveOperations) == 2 && + prospectiveOperations[0].stmt == "e.getGrammarName() != null" && + prospectiveOperations[0].operation == FILTER && + prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && + prospectiveOperations[1].operation == ANY_MATCH; +} + +public test bool shouldHandleIfWithContinue() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); + + prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); + println(prospectiveOperations); + + return prospectiveOperations[0].stmt == "e.getGrammarName() != null" && + prospectiveOperations[0].operation == FILTER; +} + +public test bool shouldHandleAnyMatch() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); + + prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); + + return prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && + prospectiveOperations[1].operation == ANY_MATCH; +} -public test bool shouldReturnXOnFilterAndMergedForEach() { +public test bool shouldBreakAndChooseCorrectOperationsOnMultipleStatements() { tuple [set[MethodVar] vars, EnhancedForStatement loop] filterAndMergedForEach = filterAndMergedForEach(); prospectiveOperations = retrieveProspectiveOperations(filterAndMergedForEach.vars, filterAndMergedForEach.loop); diff --git a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc similarity index 97% rename from src/refactor/forloop/ProspectiveOperationsTestResources.rsc rename to src/refactor/forloop/ProspectiveOperationTestResources.rsc index 3d9cfde..872eada 100644 --- a/src/refactor/forloop/ProspectiveOperationsTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -1,4 +1,4 @@ -module refactor::forloop::ProspectiveOperationsTestResources +module refactor::forloop::ProspectiveOperationTestResources import IO; import lang::java::\syntax::Java18; From e4abf1b7366fd7928bc2d11e33f0064d54bcd6bf Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 070/156] Minor clarity changes. --- src/ForLoop.rsc | 6 +++--- src/refactor/forloop/ForLoopToFunctional.rsc | 8 +++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index bb72f1f..f78608a 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -24,7 +24,6 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { } private void lookForForStatements(CompilationUnit unit) { - iteratedVariable = ""; visit(unit) { case MethodDeclaration methodDeclaration: lookForEnhancedForStatementsInMethod(methodDeclaration); @@ -72,8 +71,9 @@ private bool loopBodyPassConditions(Statement stmt) { case (BreakStatement) `break ;`: return false; case (ReturnStatement) `return ;`: returnCount += 1; - - case (ContinueStatement) `continue ;`: return false; + + // labeled continue. + case (ContinueStatement) `continue ;`: return false; } if (returnCount > 1) return false; diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 883f7d3..3baf703 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -15,7 +15,7 @@ public data ComposableProspectiveOperation = composableProspectiveOperation(Pros private set[MethodVar] methodAvailableVars; -public list[ComposableProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { +public list[ComposableProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); @@ -42,8 +42,7 @@ private set[str] retrieveNeededVars(ProspectiveOperation prOp, set[str] availabl } private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ComposableProspectiveOperation] composablePrOps) { - - // we don't want the curr element (index 0) + // exclude first, since we iterate index and index-1 listIndexes = [1 .. size(composablePrOps)]; // iterating bottom-up for (int i <- reverse(listIndexes)) { @@ -156,7 +155,6 @@ private list[str] retrieveAllStatementsFromBlock(str blockStr) { return blockStatements; } -// XXX probably not this private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { list[str] stmts = []; Statement stmt = parse(#Statement, statement); @@ -164,7 +162,7 @@ private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { case ExpressionStatement expStmt: stmts += unparse(expStmt); case (IfThenStatement) `if () `: - stmts += "if (" + unparse(exp) + ")"; + stmts += "if ()"; } return stmts; } From f689db7412bfa8355693bbbbbe898ab8bcb82b95 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 071/156] Commenting test cases with 'continue' operations. - They need to be refactored. And I'm not entirely sure right now about the process. --- .../forloop/ProspectiveOperationTest.rsc | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index c6ac1ba..a2024b2 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -30,28 +30,28 @@ public test bool shouldHandleReduce() { prospectiveOperations[1].operation == REDUCE; } -public test bool shouldHandleAnyMatchAndIfWithContinue() { - tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); - - prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); - println(prospectiveOperations); - - return size(prospectiveOperations) == 2 && - prospectiveOperations[0].stmt == "e.getGrammarName() != null" && - prospectiveOperations[0].operation == FILTER && - prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && - prospectiveOperations[1].operation == ANY_MATCH; -} - -public test bool shouldHandleIfWithContinue() { - tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); - - prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); - println(prospectiveOperations); - - return prospectiveOperations[0].stmt == "e.getGrammarName() != null" && - prospectiveOperations[0].operation == FILTER; -} +//public test bool shouldHandleAnyMatchAndIfWithContinue() { +// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); +// +// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); +// println(prospectiveOperations); +// +// return size(prospectiveOperations) == 2 && +// prospectiveOperations[0].stmt == "e.getGrammarName() != null" && +// prospectiveOperations[0].operation == FILTER && +// prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && +// prospectiveOperations[1].operation == ANY_MATCH; +//} +// +//public test bool shouldHandleIfWithContinue() { +// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); +// +// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); +// println(prospectiveOperations); +// +// return prospectiveOperations[0].stmt == "e.getGrammarName() != null" && +// prospectiveOperations[0].operation == FILTER; +//} public test bool shouldHandleAnyMatch() { tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); From 7cd806a5cb941c420625bb1de67ac423b9146fbf Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 072/156] More clarity changes. --- src/refactor/forloop/ForLoopToFunctional.rsc | 42 +++++++++++--------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 3baf703..8d2b5b7 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -72,12 +72,12 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ return composablePrOps; } -public bool canBeChained(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { +private bool canBeChained(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { currNeededVarsInPrevAvailabilitySet = isCurrNeededVarsInPrevAvailabilitySet(curr.neededVars, prev); return size(curr.neededVars) <= 1 && currNeededVarsInPrevAvailabilitySet; } -public bool isMergeable(ComposableProspectiveOperation cPrOp) { +private bool isMergeable(ComposableProspectiveOperation cPrOp) { operation = cPrOp.prOp.operation; return operation == FILTER || operation == MAP || operation == FOR_EACH; } @@ -89,19 +89,18 @@ private bool isCurrNeededVarsInPrevAvailabilitySet(set[str] currNeededVars, Comp return true; } -public ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - if (isFilter(prev.prOp)) { - prOp = mergeTwoOpsInAnIfThenStmt(prev.prOp, curr.prOp); - availableVars = retrieveAvailableVariables(prOp, methodAvailableVars); - neededVars = retrieveNeededVars(prOp, availableVars); - return composableProspectiveOperation(prOp, neededVars, availableVars); - - } else { - list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); - Block statementsAsOneBlock = transformStatementsInBlock(statements); - prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); - return mergeComposableProspectiveOperation(prOp, prev, curr); - } +private ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + if (isFilter(prev.prOp)) + return mergeIntoAnIfThenStmt(prev, curr); + else + return mergeIntoABlock(prev, curr); +} + +private ComposableProspectiveOperation mergeIntoAnIfThenStmt(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + prOp = mergeTwoOpsInAnIfThenStmt(prev.prOp, curr.prOp); + availableVars = retrieveAvailableVariables(prOp, methodAvailableVars); + neededVars = retrieveNeededVars(prOp, availableVars); + return composableProspectiveOperation(prOp, neededVars, availableVars); } private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation prev, ProspectiveOperation curr) { @@ -111,6 +110,13 @@ private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation prev return prospectiveOperation(unparse(ifThenStmt), curr.operation); } +private ComposableProspectiveOperation mergeIntoABlock(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); + Block statementsAsOneBlock = transformStatementsInBlock(statements); + prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); + return mergeComposableProspectiveOperation(prOp, prev, curr); +} + private ComposableProspectiveOperation mergeComposableProspectiveOperation(ProspectiveOperation prOp, ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { mergedAvailableVars = mergeAvailableVars(curr.availableVars, prev.availableVars); mergedNeededVars = mergeNeededVars(curr.neededVars, prev.neededVars, mergedAvailableVars); @@ -122,10 +128,8 @@ private set[str] mergeAvailableVars(set[str] currAvailableVars, prevAvailableVar } private set[str] mergeNeededVars(set[str] currNeededVars, set[str] prevNeededVars, set[str] mergedAvailableVars) { - neededVars = currNeededVars; - neededVars -= mergedAvailableVars; - neededVars += prevNeededVars; - return neededVars ; + neededVars = currNeededVars + prevNeededVars; + return neededVars - mergedAvailableVars; } private list[str] retrieveAllStatements(ProspectiveOperation prOp) { From 630b249ec47dd83a2c339736f057e136fe62e896 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 29 Mar 2017 21:57:39 -0300 Subject: [PATCH 073/156] Computing the right availability set when merging into an if statement. - In practice just calling mergeComposableProspectiveOperations() --- src/refactor/forloop/ForLoopToFunctional.rsc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 8d2b5b7..65cff4b 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -98,9 +98,7 @@ private ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiv private ComposableProspectiveOperation mergeIntoAnIfThenStmt(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { prOp = mergeTwoOpsInAnIfThenStmt(prev.prOp, curr.prOp); - availableVars = retrieveAvailableVariables(prOp, methodAvailableVars); - neededVars = retrieveNeededVars(prOp, availableVars); - return composableProspectiveOperation(prOp, neededVars, availableVars); + return mergeComposableProspectiveOperations(prOp, prev, curr); } private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation prev, ProspectiveOperation curr) { @@ -110,14 +108,7 @@ private ProspectiveOperation mergeTwoOpsInAnIfThenStmt(ProspectiveOperation prev return prospectiveOperation(unparse(ifThenStmt), curr.operation); } -private ComposableProspectiveOperation mergeIntoABlock(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); - Block statementsAsOneBlock = transformStatementsInBlock(statements); - prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); - return mergeComposableProspectiveOperation(prOp, prev, curr); -} - -private ComposableProspectiveOperation mergeComposableProspectiveOperation(ProspectiveOperation prOp, ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { +private ComposableProspectiveOperation mergeComposableProspectiveOperations(ProspectiveOperation prOp, ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { mergedAvailableVars = mergeAvailableVars(curr.availableVars, prev.availableVars); mergedNeededVars = mergeNeededVars(curr.neededVars, prev.neededVars, mergedAvailableVars); return composableProspectiveOperation(prOp, mergedNeededVars, mergedAvailableVars); @@ -132,6 +123,13 @@ private set[str] mergeNeededVars(set[str] currNeededVars, set[str] prevNeededVar return neededVars - mergedAvailableVars; } +private ComposableProspectiveOperation mergeIntoABlock(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); + Block statementsAsOneBlock = transformStatementsInBlock(statements); + prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); + return mergeComposableProspectiveOperations(prOp, prev, curr); +} + private list[str] retrieveAllStatements(ProspectiveOperation prOp) { list[str] allStatements = []; if (isBlock(prOp.stmt)) From 0ff334e2825c898c8c9cc9c269299688a7fef38c Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Mon, 10 Apr 2017 01:05:25 -0300 Subject: [PATCH 074/156] Returning a transformed MethodBody with single forEach refactor. - Not transforming source file yet. - We need to change some modules and methods names. - Also needed to change modules folder location. --- src/ForLoop.rsc | 16 ++++--- src/refactor/forloop/ForLoopToFunctional.rsc | 50 ++++++++++++++++++-- 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index f78608a..ceb0136 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -6,7 +6,7 @@ import ParseTree; import LocalVariablesFinder; import EnhancedLoopExpression; import refactor::forloop::ForLoopBodyReferences; -import refactor::forloop::ProspectiveOperation; +import refactor::forloop::ForLoopToFunctional; import MethodVar; private set[str] checkedExceptionClasses; @@ -41,10 +41,14 @@ private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, visit(methodBody) { case EnhancedForStatement forStmt: { visit(forStmt) { - case (EnhancedForStatement) `for ( : ) `: { - methodLocalVariables = findLocalVariables(methodHeader, methodBody); - checkLoopEligibilityForRefactor(methodLocalVariables, exp, stmt); - retrievePotentialOperations(methodLocalVariables, forStmt); + case EnhancedForStatement enhancedForStmt: { + visit(enhancedForStmt) { + case (EnhancedForStatement) `for ( : ) `: { + methodLocalVariables = findLocalVariables(methodHeader, methodBody); + if(isLoopRefactorable(methodLocalVariables, exp, stmt)) + refactorEnhancedToFunctional(methodLocalVariables, enhancedForStmt, methodBody); + } + } } } } @@ -54,7 +58,7 @@ private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, } } -private bool checkLoopEligibilityForRefactor(set[MethodVar] methodLocalVariables, Expression exp, Statement stmt) { +private bool isLoopRefactorable(set[MethodVar] methodLocalVariables, Expression exp, Statement stmt) { return loopBodyPassConditions(stmt) && isIteratingOnCollection(exp, methodLocalVariables) && atMostOneReferenceToNonEffectiveFinalVar(methodLocalVariables, stmt); } diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 65cff4b..fc7a060 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -3,6 +3,7 @@ module refactor::forloop::ForLoopToFunctional import IO; import List; import Set; +import String; import lang::java::\syntax::Java18; import ParseTree; import MethodVar; @@ -13,14 +14,28 @@ import refactor::forloop::OperationType; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); -private set[MethodVar] methodAvailableVars; +public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody) { + composablePrOps = retrieveComposableProspectiveOperations(methodVars, forStmt); + + Statement refactored = buildFunctionalStatement(composablePrOps, forStmt); + refactoredMethodBody = refactorToFunctional(methodBody, refactored); + + println("\n --- APPLYING REFACTOR ---"); + println(methodBody); + println("refactored to:"); + println(refactoredMethodBody); + + return refactoredMethodBody; +} -public list[ComposableProspectiveOperation] refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt) { +MethodBody refactorToFunctional(MethodBody methodBody, Statement refactored) = top-down-break visit(methodBody) { + case (Statement) `for ( : ) ` + => refactored +}; + +public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperations(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); - - methodAvailableVars = methodVars; - return mergeIntoComposableOperations(composablePrOps); } @@ -175,4 +190,29 @@ private Block transformStatementsInBlock(list[str] stmts) { joined += (stmt + "\n"); joined += "}"; return parse(#Block, joined); +} + +private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt) { + visit(forStmt) { + case (EnhancedForStatement) `for ( : ) `: { + if(size(composablePrOps) == 1 && composablePrOps[0].prOp.operation == FOR_EACH) { + prOp = composablePrOps[0].prOp; + stmtBlock = transformIntoBlock(prOp.stmt); + iteratedVarName = trimEndingBlankSpace(iteratedVarName); + return parse(#Statement, ".forEach(() -\> );"); + } + + } + } + + return parse(#Statement, ";"); +} + +private Block transformIntoBlock(str stmt) { + if(isBlock(stmt)) return parse(#Block, stmt); + return parse(#Block, "{\n\n}"); +} + +private VariableDeclaratorId trimEndingBlankSpace(VariableDeclaratorId varId) { + return parse(#VariableDeclaratorId, trim(unparse(varId))); } \ No newline at end of file From 858dd7baf7bbbb3aa0454c0da4a9fd7604ebf90a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Mon, 10 Apr 2017 11:39:18 -0300 Subject: [PATCH 075/156] Trying to match the exact loop to be refactored. --- src/ForLoop.rsc | 7 +++-- src/refactor/forloop/ForLoopToFunctional.rsc | 33 +++++++++----------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index ceb0136..0c4ca30 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -43,10 +43,11 @@ private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, visit(forStmt) { case EnhancedForStatement enhancedForStmt: { visit(enhancedForStmt) { - case (EnhancedForStatement) `for ( : ) `: { + case (EnhancedForStatement) `for ( : ) `: { methodLocalVariables = findLocalVariables(methodHeader, methodBody); - if(isLoopRefactorable(methodLocalVariables, exp, stmt)) - refactorEnhancedToFunctional(methodLocalVariables, enhancedForStmt, methodBody); + if(isLoopRefactorable(methodLocalVariables, collectionId, stmt)) + // TODO Create data structure + refactorEnhancedToFunctional(methodLocalVariables, enhancedForStmt, methodBody, iteratedVarName, collectionId); } } } diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index fc7a060..f09c75b 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -14,11 +14,12 @@ import refactor::forloop::OperationType; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); -public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody) { +public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { composablePrOps = retrieveComposableProspectiveOperations(methodVars, forStmt); - Statement refactored = buildFunctionalStatement(composablePrOps, forStmt); - refactoredMethodBody = refactorToFunctional(methodBody, refactored); + Statement refactored = buildFunctionalStatement(composablePrOps, forStmt, iteratedVarName, collectionId); + forStatement = parse(#Statement, unparse(forStmt)); + refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); println("\n --- APPLYING REFACTOR ---"); println(methodBody); @@ -28,8 +29,8 @@ public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, Enhanc return refactoredMethodBody; } -MethodBody refactorToFunctional(MethodBody methodBody, Statement refactored) = top-down-break visit(methodBody) { - case (Statement) `for ( : ) ` +MethodBody refactorToFunctional(MethodBody methodBody, Statement forStmt, Statement refactored) = top-down-break visit(methodBody) { + case forStmt => refactored }; @@ -192,20 +193,16 @@ private Block transformStatementsInBlock(list[str] stmts) { return parse(#Block, joined); } -private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt) { - visit(forStmt) { - case (EnhancedForStatement) `for ( : ) `: { - if(size(composablePrOps) == 1 && composablePrOps[0].prOp.operation == FOR_EACH) { - prOp = composablePrOps[0].prOp; - stmtBlock = transformIntoBlock(prOp.stmt); - iteratedVarName = trimEndingBlankSpace(iteratedVarName); - return parse(#Statement, ".forEach(() -\> );"); - } - - } - } +private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt, VariableDeclaratorId iteratedVarName, Expression collectionId) { + if(size(composablePrOps) == 1 && composablePrOps[0].prOp.operation == FOR_EACH) { + prOp = composablePrOps[0].prOp; + stmtBlock = transformIntoBlock(prOp.stmt); + iteratedVarName = trimEndingBlankSpace(iteratedVarName); + return parse(#Statement, ".forEach(() -\> );"); + } + - return parse(#Statement, ";"); + return parse(#Statement, unparse(forStmt)); } private Block transformIntoBlock(str stmt) { From f3e8121d1602764f7d5f9ea06ac2c2e0e6b10037 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Mon, 10 Apr 2017 15:09:17 -0300 Subject: [PATCH 076/156] Gitignore --- bin/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/.gitignore b/bin/.gitignore index 3040ad9..3c6e732 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1 +1,2 @@ /*.rsc +/refactor/ From 385c97129ee8b0187d196e2db33234c679fcd957 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 11 Apr 2017 21:19:26 -0300 Subject: [PATCH 077/156] Starting to chain operations. --- src/refactor/forloop/ForLoopToFunctional.rsc | 74 ++++++++++++++++--- src/refactor/forloop/ProspectiveOperation.rsc | 16 ++++ testes/ForLoopToFunctional/SimpleForEach.java | 8 ++ 3 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 testes/ForLoopToFunctional/SimpleForEach.java diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index f09c75b..ad31720 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -21,10 +21,10 @@ public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, Enhanc forStatement = parse(#Statement, unparse(forStmt)); refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); - println("\n --- APPLYING REFACTOR ---"); - println(methodBody); - println("refactored to:"); - println(refactoredMethodBody); + //println("\n --- APPLYING REFACTOR ---"); + //println(forStmt); + //println("refactored to:"); + //println(refactored); return refactoredMethodBody; } @@ -194,15 +194,19 @@ private Block transformStatementsInBlock(list[str] stmts) { } private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt, VariableDeclaratorId iteratedVarName, Expression collectionId) { - if(size(composablePrOps) == 1 && composablePrOps[0].prOp.operation == FOR_EACH) { - prOp = composablePrOps[0].prOp; - stmtBlock = transformIntoBlock(prOp.stmt); - iteratedVarName = trimEndingBlankSpace(iteratedVarName); - return parse(#Statement, ".forEach(() -\> );"); - } - + if(size(composablePrOps) == 1 && isForEach(composablePrOps[0].prOp)) + return buildStatementForOnlyOneForEach(composablePrOps[0].prOp, iteratedVarName, collectionId); - return parse(#Statement, unparse(forStmt)); + println(); + println(forStmt); + println("\nrefactored to:"); + return chainOperationsIntoStatement(composablePrOps, collectionId); +} + +private Statement buildStatementForOnlyOneForEach(ProspectiveOperation prOp, VariableDeclaratorId iteratedVarName, Expression collectionId) { + stmtBlock = transformIntoBlock(prOp.stmt); + iteratedVarName = trimEndingBlankSpace(iteratedVarName); + return parse(#Statement, ".forEach(() -\> );"); } private Block transformIntoBlock(str stmt) { @@ -212,4 +216,50 @@ private Block transformIntoBlock(str stmt) { private VariableDeclaratorId trimEndingBlankSpace(VariableDeclaratorId varId) { return parse(#VariableDeclaratorId, trim(unparse(varId))); +} + +private Statement chainOperationsIntoStatement(list[ComposableProspectiveOperation] composablePrOps, Expression collectionId) { + str chainStr = ".stream()"; + + for(composablePrOp <- composablePrOps) { + chainStr = "." + buildChainableOperation(composablePrOp); + } + + println(chainStr); + return parse(#Statement, ";"); +} + +private str buildChainableOperation(ComposableProspectiveOperation cPrOp) { + prOp = cPrOp.prOp; + return prOp.operation + "(" + retrieveLambdaParameterName(cPrOp) + " -\> " + + retrieveLambdaBody(prOp) + ")"; +} + +private str retrieveLambdaParameterName(ComposableProspectiveOperation cPrOp) { + return isEmpty(cPrOp.neededVars) ? "_item" : getOneFrom(cPrOp.neededVars); +} + +private str retrieveLambdaBody(ProspectiveOperation prOp) { + if(isFilter(prOp) || isAnyMatch(prOp) || isNoneMatch(prOp) || isBlock(prOp.stmt)) + return prOp.stmt; + else if(isMap(prOp)) { + return getLambdaBodyForMap(prOp.stmt); + } + else if(isReduce(prOp)) + return getLambdaBodyForReduce(prOp.stmt); + else // isForEach(prOp) + return unparse(transformIntoBlock(prOp.stmt)); +} + +private str getLambdaBodyForMap(str stmt) { + // XXX Are other kind of statements maps? + lvdl = parse(#LocalVariableDeclaration, stmt); + visit(lvdl) { + case VariableInitializer vi: return unparse(vi); + } + throw "No variable initializer in MAP"; +} + +private str getLambdaBodyForReduce(str stmt) { + return "REDUCE_NOT_IMPLEMENTED_YET;"; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index bc4832b..1fe51a5 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -149,6 +149,22 @@ public bool isReduce(ProspectiveOperation prOp) { return prOp.operation == REDUCE; } +public bool isAnyMatch(ProspectiveOperation prOp) { + return prOp.operation == ANY_MATCH; +} + +public bool isNoneMatch(ProspectiveOperation prOp) { + return prOp.operation == NONE_MATCH; +} + +public bool isMap(ProspectiveOperation prOp) { + return prOp.operation == MAP; +} + +public bool isForEach(ProspectiveOperation prOp) { + return prOp.operation == FOR_EACH; +} + public bool isLocalVariableDeclarationStatement(str stmt) { try { parse(#LocalVariableDeclarationStatement, stmt); diff --git a/testes/ForLoopToFunctional/SimpleForEach.java b/testes/ForLoopToFunctional/SimpleForEach.java new file mode 100644 index 0000000..56ec92b --- /dev/null +++ b/testes/ForLoopToFunctional/SimpleForEach.java @@ -0,0 +1,8 @@ +class SimpleForEach { + + public void test1(List things, PrintWriter writer) { + for (String thing: things) { + writer.write(thing); + } + } +} \ No newline at end of file From 997a4a5f6955dfee8e15ee290db713cd3ce3c94a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sat, 15 Apr 2017 11:18:08 -0300 Subject: [PATCH 078/156] Catching case when LocalVariableDeclaration ends with ";". - LocalVariableDeclaration can't be parsed with ending ";" --- src/refactor/forloop/ForLoopToFunctional.rsc | 3 +++ .../forloop/ForLoopToFunctionalTest.rsc | 23 +++++++++++++++++++ testes/ForLoopToFunctional/T1.java | 23 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/refactor/forloop/ForLoopToFunctionalTest.rsc create mode 100644 testes/ForLoopToFunctional/T1.java diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index ad31720..55f69ea 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -253,6 +253,9 @@ private str retrieveLambdaBody(ProspectiveOperation prOp) { private str getLambdaBodyForMap(str stmt) { // XXX Are other kind of statements maps? + if(endsWith(stmt, ";")) + stmt = substring(stmt, 0, size(stmt)-1); + lvdl = parse(#LocalVariableDeclaration, stmt); visit(lvdl) { case VariableInitializer vi: return unparse(vi); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc new file mode 100644 index 0000000..9c5ac98 --- /dev/null +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -0,0 +1,23 @@ +module refactor::forloop::ForLoopToFunctionalTest + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import refactor::forloop::ForLoopToFunctional; +import MethodVar; +import LocalVariablesFinder; +import ParseTreeVisualization; + +public test bool x() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T1.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "TestSuite createTestSuite()"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Class\ testerClass : testers) {\n final TestSuite testerSuite =\n makeSuiteForTesterClass((Class\\>) testerClass);\n if (testerSuite.countTestCases() \> 0) {\n suite.addTest(testerSuite);\n }\n }"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "testerClass"); + Expression collectionId = parse(#Expression, "testers"); + + println(refactorEnhancedToFunctional(methodVars, forStmt, methodBody, iteratedVarName, collectionId)); + + return false; +} \ No newline at end of file diff --git a/testes/ForLoopToFunctional/T1.java b/testes/ForLoopToFunctional/T1.java new file mode 100644 index 0000000..3b16dc4 --- /dev/null +++ b/testes/ForLoopToFunctional/T1.java @@ -0,0 +1,23 @@ +{ + checkCanCreate(); + + logger.fine(" Testing: " + name); + logger.fine("Features: " + formatFeatureSet(features)); + + FeatureUtil.addImpliedFeatures(features); + + logger.fine("Expanded: " + formatFeatureSet(features)); + + // Class parameters must be raw. + List> testers = getTesters(); + + TestSuite suite = new TestSuite(name); + for (Class testerClass : testers) { + final TestSuite testerSuite = + makeSuiteForTesterClass((Class>) testerClass); + if (testerSuite.countTestCases() > 0) { + suite.addTest(testerSuite); + } + } + return suite; + } \ No newline at end of file From 8945f0dc751ba002fe9f243e2da6450dc5782da0 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sat, 15 Apr 2017 11:48:48 -0300 Subject: [PATCH 079/156] Extracting method to facilitate testing. --- src/refactor/forloop/ForLoopToFunctional.rsc | 9 ++++++--- src/refactor/forloop/ForLoopToFunctionalTest.rsc | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 55f69ea..facc1af 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -15,12 +15,10 @@ import refactor::forloop::OperationType; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { - composablePrOps = retrieveComposableProspectiveOperations(methodVars, forStmt); - Statement refactored = buildFunctionalStatement(composablePrOps, forStmt, iteratedVarName, collectionId); forStatement = parse(#Statement, unparse(forStmt)); + refactored = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); - //println("\n --- APPLYING REFACTOR ---"); //println(forStmt); //println("refactored to:"); @@ -29,6 +27,11 @@ public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, Enhanc return refactoredMethodBody; } +public Statement buildRefactoredEnhancedFor(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { + composablePrOps = retrieveComposableProspectiveOperations(methodVars, forStmt); + return buildFunctionalStatement(composablePrOps, forStmt, iteratedVarName, collectionId); +} + MethodBody refactorToFunctional(MethodBody methodBody, Statement forStmt, Statement refactored) = top-down-break visit(methodBody) { case forStmt => refactored diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 9c5ac98..2842c54 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -17,7 +17,7 @@ public test bool x() { VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "testerClass"); Expression collectionId = parse(#Expression, "testers"); - println(refactorEnhancedToFunctional(methodVars, forStmt, methodBody, iteratedVarName, collectionId)); + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - return false; + return unparse(refactoredStatement) == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\nsuite.addTest(testerSuite);\n});"; } \ No newline at end of file From 2efcd3b625722f484a08d19a66b382d4002dc166 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 080/156] Adjusting the temporary impl of the lambda body for a reduce. - It was resulting in a parse error. -- Obviously, invalid syntax. --- src/refactor/forloop/ForLoopToFunctional.rsc | 2 +- .../forloop/ForLoopToFunctionalTest.rsc | 19 ++++- testes/ForLoopToFunctional/T2.java | 83 +++++++++++++++++++ testes/ForLoopToFunctional/T2For.java | 10 +++ 4 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 testes/ForLoopToFunctional/T2.java create mode 100644 testes/ForLoopToFunctional/T2For.java diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index facc1af..f024b6a 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -267,5 +267,5 @@ private str getLambdaBodyForMap(str stmt) { } private str getLambdaBodyForReduce(str stmt) { - return "REDUCE_NOT_IMPLEMENTED_YET;"; + return "needToImplementReduce()"; } \ No newline at end of file diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 2842c54..0f7be34 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -1,6 +1,7 @@ module refactor::forloop::ForLoopToFunctionalTest import IO; +import String; import lang::java::\syntax::Java18; import ParseTree; import refactor::forloop::ForLoopToFunctional; @@ -8,7 +9,7 @@ import MethodVar; import LocalVariablesFinder; import ParseTreeVisualization; -public test bool x() { +public test bool ex1() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T1.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "TestSuite createTestSuite()"); @@ -20,4 +21,20 @@ public test bool x() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); return unparse(refactoredStatement) == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\nsuite.addTest(testerSuite);\n});"; +} + +// FIXME workaround for now. not really useful test. +public test bool reduceShouldNotBeEmpty() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "key"); + Expression collectionId = parse(#Expression, "keySet"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + + return !isEmpty(""); } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/T2.java b/testes/ForLoopToFunctional/T2.java new file mode 100644 index 0000000..d78572f --- /dev/null +++ b/testes/ForLoopToFunctional/T2.java @@ -0,0 +1,83 @@ +{ + Set keySet = map.keySet(); + Collection valueCollection = map.values(); + Set> entrySet = map.entrySet(); + + assertEquals(map.size() == 0, map.isEmpty()); + assertEquals(map.size(), keySet.size()); + assertEquals(keySet.size() == 0, keySet.isEmpty()); + assertEquals(!keySet.isEmpty(), keySet.iterator().hasNext()); + + int expectedKeySetHash = 0; + for (K key : keySet) { + V value = map.get(key); + expectedKeySetHash += key != null ? key.hashCode() : 0; + assertTrue(map.containsKey(key)); + assertTrue(map.containsValue(value)); + assertTrue(valueCollection.contains(value)); + assertTrue(valueCollection.containsAll(Collections.singleton(value))); + assertTrue(entrySet.contains(mapEntry(key, value))); + assertTrue(allowsNullKeys || (key != null)); + } + assertEquals(expectedKeySetHash, keySet.hashCode()); + + assertEquals(map.size(), valueCollection.size()); + assertEquals(valueCollection.size() == 0, valueCollection.isEmpty()); + assertEquals(!valueCollection.isEmpty(), valueCollection.iterator().hasNext()); + for (V value : valueCollection) { + assertTrue(map.containsValue(value)); + assertTrue(allowsNullValues || (value != null)); + } + + assertEquals(map.size(), entrySet.size()); + assertEquals(entrySet.size() == 0, entrySet.isEmpty()); + assertEquals(!entrySet.isEmpty(), entrySet.iterator().hasNext()); + assertEntrySetNotContainsString(entrySet); + + boolean supportsValuesHashCode = supportsValuesHashCode(map); + if (supportsValuesHashCode) { + int expectedEntrySetHash = 0; + for (Entry entry : entrySet) { + assertTrue(map.containsKey(entry.getKey())); + assertTrue(map.containsValue(entry.getValue())); + int expectedHash = + (entry.getKey() == null ? 0 : entry.getKey().hashCode()) + ^ (entry.getValue() == null ? 0 : entry.getValue().hashCode()); + assertEquals(expectedHash, entry.hashCode()); + expectedEntrySetHash += expectedHash; + } + assertEquals(expectedEntrySetHash, entrySet.hashCode()); + assertTrue(entrySet.containsAll(new HashSet>(entrySet))); + assertTrue(entrySet.equals(new HashSet>(entrySet))); + } + + Object[] entrySetToArray1 = entrySet.toArray(); + assertEquals(map.size(), entrySetToArray1.length); + assertTrue(Arrays.asList(entrySetToArray1).containsAll(entrySet)); + + Entry[] entrySetToArray2 = new Entry[map.size() + 2]; + entrySetToArray2[map.size()] = mapEntry("foo", 1); + assertSame(entrySetToArray2, entrySet.toArray(entrySetToArray2)); + assertNull(entrySetToArray2[map.size()]); + assertTrue(Arrays.asList(entrySetToArray2).containsAll(entrySet)); + + Object[] valuesToArray1 = valueCollection.toArray(); + assertEquals(map.size(), valuesToArray1.length); + assertTrue(Arrays.asList(valuesToArray1).containsAll(valueCollection)); + + Object[] valuesToArray2 = new Object[map.size() + 2]; + valuesToArray2[map.size()] = "foo"; + assertSame(valuesToArray2, valueCollection.toArray(valuesToArray2)); + assertNull(valuesToArray2[map.size()]); + assertTrue(Arrays.asList(valuesToArray2).containsAll(valueCollection)); + + if (supportsValuesHashCode) { + int expectedHash = 0; + for (Entry entry : entrySet) { + expectedHash += entry.hashCode(); + } + assertEquals(expectedHash, map.hashCode()); + } + + assertMoreInvariants(map); + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/T2For.java b/testes/ForLoopToFunctional/T2For.java new file mode 100644 index 0000000..75117b3 --- /dev/null +++ b/testes/ForLoopToFunctional/T2For.java @@ -0,0 +1,10 @@ +for (K key : keySet) { + V value = map.get(key); + expectedKeySetHash += key != null ? key.hashCode() : 0; + assertTrue(map.containsKey(key)); + assertTrue(map.containsValue(value)); + assertTrue(valueCollection.contains(value)); + assertTrue(valueCollection.containsAll(Collections.singleton(value))); + assertTrue(entrySet.contains(mapEntry(key, value))); + assertTrue(allowsNullKeys || (key != null)); + } \ No newline at end of file From db6aafb2f853ea71475a369dcad303a885c7b4ad Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 081/156] Writing a faling test for nested loops (not really supported right now). - At least how we break stmts in prospective operations needs to be changed --- .../forloop/ForLoopToFunctionalTest.rsc | 17 ++++++++++ testes/ForLoopToFunctional/NestedLoops.java | 33 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 testes/ForLoopToFunctional/NestedLoops.java diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 0f7be34..a7a9498 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -37,4 +37,21 @@ public test bool reduceShouldNotBeEmpty() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); return !isEmpty(""); +} + +// TODO nested loops needed to be changed in ProspectiveOperation +public test bool nestedLoops() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); + Expression collectionId = parse(#Expression, "colorElem"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + println(refactoredStatement); + + return false; } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/NestedLoops.java b/testes/ForLoopToFunctional/NestedLoops.java new file mode 100644 index 0000000..7c6098e --- /dev/null +++ b/testes/ForLoopToFunctional/NestedLoops.java @@ -0,0 +1,33 @@ +{ + List colorElem = asList(0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF); + // javac won't compile this without "this." + ImmutableSet.Builder webSafeColorsBuilder + = this.builder(); + for (Integer red : colorElem) { + for (Integer green : colorElem) { + for (Integer blue : colorElem) { + webSafeColorsBuilder.add((red << 16) + (green << 8) + blue); + } + } + } + ImmutableSet webSafeColors = webSafeColorsBuilder.build(); + assertEquals(216, webSafeColors.size()); + Integer[] webSafeColorArray = + webSafeColors.toArray(new Integer[webSafeColors.size()]); + assertEquals(0x000000, (int) webSafeColorArray[0]); + assertEquals(0x000033, (int) webSafeColorArray[1]); + assertEquals(0x000066, (int) webSafeColorArray[2]); + assertEquals(0x003300, (int) webSafeColorArray[6]); + assertEquals(0x330000, (int) webSafeColorArray[36]); + ImmutableSet addedColor + = webSafeColorsBuilder.add(LAST_COLOR_ADDED).build(); + assertEquals( + "Modifying the builder should not have changed any already built sets", + 216, webSafeColors.size()); + assertEquals("the new array should be one bigger than webSafeColors", + 217, addedColor.size()); + Integer[] appendColorArray = + addedColor.toArray(new Integer[addedColor.size()]); + assertEquals( + getComplexBuilderSetLastElement(), (int) appendColorArray[216]); + } \ No newline at end of file From 28d144976719c50cf626a0483ebfde085b151408 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 082/156] Not refactoring when there is an eager operation as non last operation. --- src/refactor/forloop/ForLoopToFunctional.rsc | 29 ++++++++++++------- .../forloop/ForLoopToFunctionalTest.rsc | 27 ++++++++++++++--- src/refactor/forloop/ProspectiveOperation.rsc | 24 +++++++++++++++ testes/ForLoopToFunctional/T2For2.java | 9 ++++++ 4 files changed, 75 insertions(+), 14 deletions(-) create mode 100644 testes/ForLoopToFunctional/T2For2.java diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index f024b6a..dce7a16 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -15,10 +15,16 @@ import refactor::forloop::OperationType; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { - - forStatement = parse(#Statement, unparse(forStmt)); + try + return buildRefactoredMethodBody(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + catch: + return methodBody; +} + +private MethodBody buildRefactoredMethodBody(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { refactored = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); + forStatement = parse(#Statement, unparse(forStmt)); + refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); //println("\n --- APPLYING REFACTOR ---"); //println(forStmt); //println("refactored to:"); @@ -39,8 +45,12 @@ MethodBody refactorToFunctional(MethodBody methodBody, Statement forStmt, Statem public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperations(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); - composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); - return mergeIntoComposableOperations(composablePrOps); + if (canOperationsBeRefactored(prospectiveOperations)) { + composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); + return mergeIntoComposableOperations(composablePrOps); + } else + // Throwing the exception is not the best option, but the easiest to implement right now + throw "CanNotBeRefactored"; } private list[ComposableProspectiveOperation] createComposableProspectiveOperationsWithVariableAvailability(list[ProspectiveOperation] prOps, set[MethodVar] methodVars) { @@ -68,7 +78,7 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ curr = composablePrOps[i]; prev = composablePrOps[i - 1]; if (!canBeChained(prev, curr)) { - if (isMergeable(prev) && isMergeable(curr)) { + if (canBeMerged(prev, curr)) { opsSize = size(composablePrOps); if (isFilter(prev.prOp) || isFilter(curr.prOp)) { @@ -96,9 +106,8 @@ private bool canBeChained(ComposableProspectiveOperation prev, ComposableProspec return size(curr.neededVars) <= 1 && currNeededVarsInPrevAvailabilitySet; } -private bool isMergeable(ComposableProspectiveOperation cPrOp) { - operation = cPrOp.prOp.operation; - return operation == FILTER || operation == MAP || operation == FOR_EACH; +private bool canBeMerged(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + return isMergeable(prev.prOp) && isMergeable(curr.prOp); } private bool isCurrNeededVarsInPrevAvailabilitySet(set[str] currNeededVars, ComposableProspectiveOperation prev) { @@ -258,7 +267,7 @@ private str getLambdaBodyForMap(str stmt) { // XXX Are other kind of statements maps? if(endsWith(stmt, ";")) stmt = substring(stmt, 0, size(stmt)-1); - + lvdl = parse(#LocalVariableDeclaration, stmt); visit(lvdl) { case VariableInitializer vi: return unparse(vi); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index a7a9498..1b87bba 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -23,8 +23,7 @@ public test bool ex1() { return unparse(refactoredStatement) == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\nsuite.addTest(testerSuite);\n});"; } -// FIXME workaround for now. not really useful test. -public test bool reduceShouldNotBeEmpty() { +public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); @@ -34,9 +33,13 @@ public test bool reduceShouldNotBeEmpty() { VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "key"); Expression collectionId = parse(#Expression, "keySet"); - refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + try + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + catch: + return true; - return !isEmpty(""); + // Should have thrown exception + return false; } // TODO nested loops needed to be changed in ProspectiveOperation @@ -54,4 +57,20 @@ public test bool nestedLoops() { println(refactoredStatement); return false; +} + +public test bool ex() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); + Expression collectionId = parse(#Expression, "entrySet"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + println(refactoredStatement); + + return !isEmpty(""); } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 1fe51a5..45528f9 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -141,6 +141,18 @@ private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation return prefix(prOps) + lastPrOp; } +public bool isMergeable(ProspectiveOperation prOp) { + return isFilter(prOp) || isMap (prOp) || isForEach(prOp); +} + +public bool isEagerOperation(ProspectiveOperation prOp) { + return !isLazyOperation(prOp); +} + +public bool isLazyOperation(ProspectiveOperation prOp) { + return isFilter(prOp) || isMap(prOp); +} + public bool isFilter(ProspectiveOperation prOp) { return prOp.operation == FILTER; } @@ -170,4 +182,16 @@ public bool isLocalVariableDeclarationStatement(str stmt) { parse(#LocalVariableDeclarationStatement, stmt); return true; } catch: return false; +} + +public bool canOperationsBeRefactored(list[ProspectiveOperation] prOps) { + return !haveEagerOperationAsNonLast(prOps); +} + +private bool haveEagerOperationAsNonLast(list[ProspectiveOperation] prOps) { + operationsWithoutLast = prefix(prOps); + for(prOp <- operationsWithoutLast) + if(isEagerOperation(prOp)) return true; + + return false; } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/T2For2.java b/testes/ForLoopToFunctional/T2For2.java new file mode 100644 index 0000000..5362a43 --- /dev/null +++ b/testes/ForLoopToFunctional/T2For2.java @@ -0,0 +1,9 @@ +for (Entry entry : entrySet) { + assertTrue(map.containsKey(entry.getKey())); + assertTrue(map.containsValue(entry.getValue())); + int expectedHash = + (entry.getKey() == null ? 0 : entry.getKey().hashCode()) + ^ (entry.getValue() == null ? 0 : entry.getValue().hashCode()); + assertEquals(expectedHash, entry.hashCode()); + expectedEntrySetHash += expectedHash; + } \ No newline at end of file From 1801def795ba133c1cb0e8c3070308b274510a5f Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 083/156] A Map Prospective Operation can be an 'ExpressionStatement' too! - Previously we were only considering 'LocalVariableDeclaration's --- src/refactor/forloop/ForLoopToFunctional.rsc | 20 ++++++++++++++++++- .../forloop/ForLoopToFunctionalTest.rsc | 4 +++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index dce7a16..5bda31b 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -264,10 +264,28 @@ private str retrieveLambdaBody(ProspectiveOperation prOp) { } private str getLambdaBodyForMap(str stmt) { - // XXX Are other kind of statements maps? + try { + expStmt = parse(#ExpressionStatement, stmt); + return getLambdaBodyForMapWhenExpressionStatement(expStmt); + } catch: + return getLambdaBodyForMapWhenLocalVariableDeclaration(stmt); +} + +private str getLambdaBodyForMapWhenExpressionStatement(ExpressionStatement expStmt) { + stmtStr = unparse(expStmt); + stmtStr = removeEndingSemiCollonIfPresent(stmtStr); + return stmtStr; +} + +private str removeEndingSemiCollonIfPresent(str stmt) { if(endsWith(stmt, ";")) stmt = substring(stmt, 0, size(stmt)-1); + return stmt; +} +private str getLambdaBodyForMapWhenLocalVariableDeclaration(str stmt) { + stmt = removeEndingSemiCollonIfPresent(stmt); + lvdl = parse(#LocalVariableDeclaration, stmt); visit(lvdl) { case VariableInitializer vi: return unparse(vi); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 1b87bba..e982e61 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -59,7 +59,9 @@ public test bool nestedLoops() { return false; } -public test bool ex() { +// not that useful of a test as it is now +// TODO test the prospective operations with this methodBody. +public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); From 170c97676a0bd23cf94ac338a3e66f5f234dddc7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 084/156] Assuring that a problem is ocurring in chaining&merging, rather than ProspectiveOperation. --- .../forloop/ProspectiveOperationTest.rsc | 20 ++++++++++++++++++- .../ProspectiveOperationTestResources.rsc | 13 ++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index a2024b2..a237975 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -62,7 +62,7 @@ public test bool shouldHandleAnyMatch() { prospectiveOperations[1].operation == ANY_MATCH; } -public test bool shouldBreakAndChooseCorrectOperationsOnMultipleStatements() { +public test bool shouldSeparateAndChooseCorrectOperationsOnMultipleStatements() { tuple [set[MethodVar] vars, EnhancedForStatement loop] filterAndMergedForEach = filterAndMergedForEach(); prospectiveOperations = retrieveProspectiveOperations(filterAndMergedForEach.vars, filterAndMergedForEach.loop); @@ -76,4 +76,22 @@ public test bool shouldBreakAndChooseCorrectOperationsOnMultipleStatements() { prospectiveOperations[2].operation == FILTER && prospectiveOperations[3].stmt == "result.add(entry.getValue());" && prospectiveOperations[3].operation == FOR_EACH; +} + +public test bool shouldSeparateAndChooseCorrectOperationsOnMultipleMapsEndingWithAReduce() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] multipleMapsAndEndingReducer = multipleMapsAndEndingReducer(); + + prospectiveOperations = retrieveProspectiveOperations(multipleMapsAndEndingReducer.vars, multipleMapsAndEndingReducer.loop); + + return size(prospectiveOperations) == 5 && + prospectiveOperations[0].stmt == "assertTrue(map.containsKey(entry.getKey()));" && + prospectiveOperations[0].operation == MAP && + prospectiveOperations[1].stmt == "assertTrue(map.containsValue(entry.getValue()));" && + prospectiveOperations[1].operation == MAP && + prospectiveOperations[2].stmt == "int expectedHash =\r\n (entry.getKey() == null ? 0 : entry.getKey().hashCode())\r\n ^ (entry.getValue() == null ? 0 : entry.getValue().hashCode());" && + prospectiveOperations[2].operation == MAP && + prospectiveOperations[3].stmt == "assertEquals(expectedHash, entry.hashCode());" && + prospectiveOperations[3].operation == MAP && + prospectiveOperations[4].stmt == "expectedEntrySetHash += expectedHash;" && + prospectiveOperations[4].operation == REDUCE; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc index 872eada..2023ae3 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -46,4 +46,17 @@ private set[MethodVar] filterAndMergedForEachVars() { methodHeader = parse(#MethodHeader, "List\ findReloadedContextMemoryLeaks()"); methodBody = parse(#MethodBody, "{\n List\ result = new ArrayList\();\n for (Map.Entry\ entry :\n childClassLoaders.entrySet())\n if(isValid(entry)) {\n ClassLoader cl = entry.getKey();\n if (!((WebappClassLoader)cl).isStart())\n result.add(entry.getValue());\n }\n return result;\n }"); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] multipleMapsAndEndingReducer() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + return ; +} + +private set[MethodVar] multipleMapsAndEndingReducerVars() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file From 8f8f18625f8f65475f144d44d77e76b2a0163a57 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 085/156] Not losing last operation in list when merging both operations that are not filters - Slices done wrong. --- src/refactor/forloop/ForLoopToFunctional.rsc | 44 ++++++++++---------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 5bda31b..ce918db 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -78,36 +78,34 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ curr = composablePrOps[i]; prev = composablePrOps[i - 1]; if (!canBeChained(prev, curr)) { - if (canBeMerged(prev, curr)) { - opsSize = size(composablePrOps); - - if (isFilter(prev.prOp) || isFilter(curr.prOp)) { - while(opsSize > i) { - ComposableProspectiveOperation last = composablePrOps[opsSize - 1]; - ComposableProspectiveOperation beforeLast = composablePrOps[opsSize - 2]; - - merged = mergeComposablePrOps(beforeLast, last); - composablePrOps = slice(composablePrOps, 0, opsSize - 2) + merged; - - opsSize = size(composablePrOps); - } - } else { - merged = mergeComposablePrOps(prev, curr); + if(neitherCanBeMerged(prev, curr)) + throw "CanNotBeRefactored. Both operations are not mergeable"; + + opsSize = size(composablePrOps); + + if (isFilter(prev.prOp) || isFilter(curr.prOp)) { + while(opsSize > i) { + ComposableProspectiveOperation last = composablePrOps[opsSize - 1]; + ComposableProspectiveOperation beforeLast = composablePrOps[opsSize - 2]; + + merged = mergeComposablePrOps(beforeLast, last); + // XXX analyze if this "merging" is correct. probably not composablePrOps = slice(composablePrOps, 0, opsSize - 2) + merged; + + opsSize = size(composablePrOps); } + } else { + merged = mergeComposablePrOps(prev, curr); + composablePrOps = composablePrOps[0..i] + merged + composablePrOps[i + 1..]; } + } } return composablePrOps; } private bool canBeChained(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - currNeededVarsInPrevAvailabilitySet = isCurrNeededVarsInPrevAvailabilitySet(curr.neededVars, prev); - return size(curr.neededVars) <= 1 && currNeededVarsInPrevAvailabilitySet; -} - -private bool canBeMerged(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - return isMergeable(prev.prOp) && isMergeable(curr.prOp); + return size(curr.neededVars) <= 1 && isCurrNeededVarsInPrevAvailabilitySet(curr.neededVars, prev); } private bool isCurrNeededVarsInPrevAvailabilitySet(set[str] currNeededVars, ComposableProspectiveOperation prev) { @@ -117,6 +115,10 @@ private bool isCurrNeededVarsInPrevAvailabilitySet(set[str] currNeededVars, Comp return true; } +private bool neitherCanBeMerged(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { + return !isMergeable(prev.prOp) || !isMergeable(curr.prOp); +} + private ComposableProspectiveOperation mergeComposablePrOps(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { if (isFilter(prev.prOp)) return mergeIntoAnIfThenStmt(prev, curr); From 2c8bfba7273310ab4ea49a6a22a7d14c280f44e4 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 086/156] Fixing slices again! When both operations are not filters. - Was happening in the example with multiple maps in sequence. - Also commenting the nestedLoops example. --- src/refactor/forloop/ForLoopToFunctional.rsc | 2 +- .../forloop/ForLoopToFunctionalTest.rsc | 31 +++++++++---------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index ce918db..dd008b3 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -96,7 +96,7 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ } } else { merged = mergeComposablePrOps(prev, curr); - composablePrOps = composablePrOps[0..i] + merged + composablePrOps[i + 1..]; + composablePrOps = composablePrOps[0..(i - 1)] + merged + composablePrOps[(i + 1)..]; } } diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index e982e61..519b313 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -43,24 +43,22 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { } // TODO nested loops needed to be changed in ProspectiveOperation -public test bool nestedLoops() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; - methodBody = parse(#MethodBody, readFile(fileLoc)); - methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); - set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; - EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); - VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); - Expression collectionId = parse(#Expression, "colorElem"); - - refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - println(refactoredStatement); - - return false; -} +//public test bool nestedLoops() { +// fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; +// methodBody = parse(#MethodBody, readFile(fileLoc)); +// methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); +// set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); +// fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; +// EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); +// VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); +// Expression collectionId = parse(#Expression, "colorElem"); +// +// refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); +// +// return false; +//} // not that useful of a test as it is now -// TODO test the prospective operations with this methodBody. public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); @@ -72,7 +70,6 @@ public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { Expression collectionId = parse(#Expression, "entrySet"); refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - println(refactoredStatement); return !isEmpty(""); } \ No newline at end of file From 049f63319d193f50582c5846ba0c1a5d5ac2567f Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 087/156] Rearranging map bodies when a return is needed. - A return is not needed when a variable declared in the previous statement is needed in the next statement. - We should consider the java DOCS. -- https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax -- If you specify a single expression there is no need to return it. - Need more tests to analyze. --- src/refactor/forloop/ForLoopToFunctional.rsc | 79 +++++++++++++++++-- .../forloop/ForLoopToFunctionalTest.rsc | 2 +- 2 files changed, 73 insertions(+), 8 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index dd008b3..28d57b5 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -47,6 +47,9 @@ public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperati prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); if (canOperationsBeRefactored(prospectiveOperations)) { composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); + + composablePrOps = rearrangeMapBodiesIfNeeded(composablePrOps); + return mergeIntoComposableOperations(composablePrOps); } else // Throwing the exception is not the best option, but the easiest to implement right now @@ -207,6 +210,63 @@ private Block transformStatementsInBlock(list[str] stmts) { return parse(#Block, joined); } +private list[ComposableProspectiveOperation] rearrangeMapBodiesIfNeeded(list[ComposableProspectiveOperation] composablePrOps) { + listIndexes = [1 .. size(composablePrOps)]; + for (int i <- reverse(listIndexes)) { + curr = composablePrOps[i - 1]; + next = composablePrOps[i]; + if (isMap(curr.prOp)) + // Modifying in place + composablePrOps[i - 1] = rearrangeMapBody(curr, next.neededVars); + } + + return composablePrOps; +} + +private ComposableProspectiveOperation rearrangeMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { + prOp = curr.prOp; + + if(isLocalVariableDeclarationStatement(prOp.stmt)) + return rearrangeLocalVariableDeclarationMapBody(curr, nextNeededVars); + else if(isNumericLiteral(prOp.stmt)) + return curr; + else + return addReturnToMapBody(curr, nextNeededVars); +} + +private ComposableProspectiveOperation rearrangeLocalVariableDeclarationMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { + lvdl = parse(#LocalVariableDeclarationStatement, curr.prOp.stmt); + varName = ""; + visit(lvdl) { + case VariableDeclaratorId varId: varName = trim(unparse(varId)); + } + + if (varName notin nextNeededVars) + return addReturnToMapBody(curr, nextNeededVars); + + return curr; +} + +private bool isNumericLiteral(str stmt) { + // FIXME + return false; +} + +private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { + list[str] stmts = []; + if (isBlock(curr.prOp.stmt)) + stmts += retrieveAllStatementsFromBlock(curr.prOp.stmt); + else + stmts += curr.prOp.stmt; + + varName = isEmpty(nextNeededVars) ? "_item" : getOneFrom(nextNeededVars); + stmts += "return ;"; + block = transformStatementsInBlock(stmts); + + curr.prOp.stmt = unparse(block); + return curr; +} + private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt, VariableDeclaratorId iteratedVarName, Expression collectionId) { if(size(composablePrOps) == 1 && isForEach(composablePrOps[0].prOp)) return buildStatementForOnlyOneForEach(composablePrOps[0].prOp, iteratedVarName, collectionId); @@ -266,17 +326,22 @@ private str retrieveLambdaBody(ProspectiveOperation prOp) { } private str getLambdaBodyForMap(str stmt) { + if(isExpressionStatement(stmt)) + return getLambdaBodyForMapWhenExpressionStatement(stmt); + else + return getLambdaBodyForMapWhenLocalVariableDeclaration(stmt); +} + +private bool isExpressionStatement(str stmt) { try { - expStmt = parse(#ExpressionStatement, stmt); - return getLambdaBodyForMapWhenExpressionStatement(expStmt); + parse(#ExpressionStatement, stmt); + return true; } catch: - return getLambdaBodyForMapWhenLocalVariableDeclaration(stmt); + return false; } -private str getLambdaBodyForMapWhenExpressionStatement(ExpressionStatement expStmt) { - stmtStr = unparse(expStmt); - stmtStr = removeEndingSemiCollonIfPresent(stmtStr); - return stmtStr; +private str getLambdaBodyForMapWhenExpressionStatement(str stmt) { + return removeEndingSemiCollonIfPresent(stmt); } private str removeEndingSemiCollonIfPresent(str stmt) { diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 519b313..edda36c 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -58,7 +58,7 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { // return false; //} -// not that useful of a test as it is now +// TODO Complete the test with full output when REDUCE implemented public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); From 7a1d9597adb9fbedca0c1bde8fd6dacd208b3a68 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 088/156] UsedVariables working properly when operation is reduce. - Differing our implementation from Lambdaficator --- src/refactor/forloop/UsedVariables.rsc | 4 +--- src/refactor/forloop/UsedVariablesTest.rsc | 6 ++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/refactor/forloop/UsedVariables.rsc b/src/refactor/forloop/UsedVariables.rsc index 14b05f5..5ab7656 100644 --- a/src/refactor/forloop/UsedVariables.rsc +++ b/src/refactor/forloop/UsedVariables.rsc @@ -11,9 +11,7 @@ import refactor::forloop::ProspectiveOperation; public set[str] retrieveUsedVariables(ProspectiveOperation prOp) { set[str] usedVariables = {}; - if (isReduce(prOp)) - return {}; - else if(isFilter(prOp)) + if(isFilter(prOp)) usedVariables += retrieveUsedVarsFromFilter(prOp.stmt); else if (isLocalVariableDeclarationStatement(prOp.stmt)) usedVariables += retrieveUsedVarsFromLocalVariableDeclarationStmt(prOp.stmt); diff --git a/src/refactor/forloop/UsedVariablesTest.rsc b/src/refactor/forloop/UsedVariablesTest.rsc index 44b9330..37a9162 100644 --- a/src/refactor/forloop/UsedVariablesTest.rsc +++ b/src/refactor/forloop/UsedVariablesTest.rsc @@ -74,10 +74,12 @@ public test bool ifThenStatement() { "entry" in usedVars; } -public test bool reduceShouldReturnEmpty() { +public test bool reduce() { prOp = prospectiveOperation("count += rule.getErrors().size();", REDUCE); usedVars = retrieveUsedVariables(prOp); - return size(usedVars) == 0; + return size(usedVars) == 2 && + "count" in usedVars && + "rule" in usedVars; } \ No newline at end of file From b127f7021530a19495d56d32bfce9fdcd096487d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 089/156] Implementation of reduce with compound assignment operator. --- src/MethodVar.rsc | 9 +++ src/refactor/forloop/ForLoopToFunctional.rsc | 79 ++++++++++++++++--- src/refactor/forloop/ProspectiveOperation.rsc | 1 + 3 files changed, 76 insertions(+), 13 deletions(-) diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 0cda4c9..ccbcf0d 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -11,6 +11,15 @@ public bool isArray(MethodVar methodVar) { return methodVar.varType == "array"; } +public bool isString(MethodVar methodVar) { + return methodVar.varType == "String"; +} + +public bool isInteger(MethodVar methodVar) { + varType = methodVar.varType; + return varType == "int" || varType == "Integer"; +} + public bool isParameter(MethodVar methodVar) { return !methodVar.isParameter; } diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 28d57b5..6717d73 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -11,6 +11,7 @@ import refactor::forloop::ProspectiveOperation; import refactor::forloop::UsedVariables; import refactor::forloop::AvailableVariables; import refactor::forloop::OperationType; +import ParseTreeVisualization; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); @@ -35,7 +36,7 @@ private MethodBody buildRefactoredMethodBody(set[MethodVar] methodVars, Enhanced public Statement buildRefactoredEnhancedFor(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { composablePrOps = retrieveComposableProspectiveOperations(methodVars, forStmt); - return buildFunctionalStatement(composablePrOps, forStmt, iteratedVarName, collectionId); + return buildFunctionalStatement(methodVars, composablePrOps, forStmt, iteratedVarName, collectionId); } MethodBody refactorToFunctional(MethodBody methodBody, Statement forStmt, Statement refactored) = top-down-break visit(methodBody) { @@ -242,8 +243,8 @@ private ComposableProspectiveOperation rearrangeLocalVariableDeclarationMapBody( } if (varName notin nextNeededVars) - return addReturnToMapBody(curr, nextNeededVars); - + return addReturnToMapBody(curr, nextNeededVars); + return curr; } @@ -258,7 +259,7 @@ private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveO stmts += retrieveAllStatementsFromBlock(curr.prOp.stmt); else stmts += curr.prOp.stmt; - + varName = isEmpty(nextNeededVars) ? "_item" : getOneFrom(nextNeededVars); stmts += "return ;"; block = transformStatementsInBlock(stmts); @@ -267,14 +268,14 @@ private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveO return curr; } -private Statement buildFunctionalStatement(list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt, VariableDeclaratorId iteratedVarName, Expression collectionId) { +private Statement buildFunctionalStatement(set[MethodVar] methodVars, list[ComposableProspectiveOperation] composablePrOps, EnhancedForStatement forStmt, VariableDeclaratorId iteratedVarName, Expression collectionId) { if(size(composablePrOps) == 1 && isForEach(composablePrOps[0].prOp)) return buildStatementForOnlyOneForEach(composablePrOps[0].prOp, iteratedVarName, collectionId); println(); println(forStmt); println("\nrefactored to:"); - return chainOperationsIntoStatement(composablePrOps, collectionId); + return chainOperationsIntoStatement(methodVars, composablePrOps, collectionId); } private Statement buildStatementForOnlyOneForEach(ProspectiveOperation prOp, VariableDeclaratorId iteratedVarName, Expression collectionId) { @@ -292,19 +293,22 @@ private VariableDeclaratorId trimEndingBlankSpace(VariableDeclaratorId varId) { return parse(#VariableDeclaratorId, trim(unparse(varId))); } -private Statement chainOperationsIntoStatement(list[ComposableProspectiveOperation] composablePrOps, Expression collectionId) { +private Statement chainOperationsIntoStatement(set[MethodVar] methodVars, list[ComposableProspectiveOperation] composablePrOps, Expression collectionId) { str chainStr = ".stream()"; for(composablePrOp <- composablePrOps) { - chainStr = "." + buildChainableOperation(composablePrOp); + chainStr = "." + buildChainableOperation(methodVars, composablePrOp); } println(chainStr); return parse(#Statement, ";"); } -private str buildChainableOperation(ComposableProspectiveOperation cPrOp) { +private str buildChainableOperation(set[MethodVar] methodVars, ComposableProspectiveOperation cPrOp) { prOp = cPrOp.prOp; + if(isReduce(prOp)) + return buildMapReduceOperation(methodVars, cPrOp); + return prOp.operation + "(" + retrieveLambdaParameterName(cPrOp) + " -\> " + retrieveLambdaBody(prOp) + ")"; } @@ -319,8 +323,6 @@ private str retrieveLambdaBody(ProspectiveOperation prOp) { else if(isMap(prOp)) { return getLambdaBodyForMap(prOp.stmt); } - else if(isReduce(prOp)) - return getLambdaBodyForReduce(prOp.stmt); else // isForEach(prOp) return unparse(transformIntoBlock(prOp.stmt)); } @@ -360,6 +362,57 @@ private str getLambdaBodyForMapWhenLocalVariableDeclaration(str stmt) { throw "No variable initializer in MAP"; } -private str getLambdaBodyForReduce(str stmt) { - return "needToImplementReduce()"; +// TODO check for prefix and postfix increment/decrement after ProspectiveOperation is working +private str buildMapReduceOperation(set[MethodVar] methodVars, ComposableProspectiveOperation cPrOp) { + mapOperation = ""; + reduceOperation = ""; + stmt = parse(#Statement, cPrOp.prOp.stmt); + bottom-up-break visit(stmt) { + case (Assignment) ` `: { + reducingVar = unparse(lhs); + + lambdaParamName = retrieveLambdaParameterName(cPrOp); + mapOperation = "map( -\> )"; + + reduceOperation += buildReduceOperation(methodVars, op, reducingVar); + } + } + + + + return "."; +} + +private str buildReduceOperation(set[MethodVar] methodVars, AssignmentOperator op, str reducingVar) { + reduceOperation = ""; + if("" == "+=") + reduceOperation = buildPlusAssignmentReduce(methodVars, reducingVar); + else + reduceOperation = buildSimpleExplicitReduce("", reducingVar); + + return reduceOperation; +} + +private str buildPlusAssignmentReduce(set[MethodVar] methodVars, str reducingVar) { + if(isString(methodVars, reducingVar)) + return "reduce(, String::concat)"; + else + if(isInteger(methodVars, reducingVar)) + return "reduce(, Integer::sum)"; + else + return buildSimpleExplicitReduce("+=", reducingVar); +} + +private bool isString(set[MethodVar] methodVars, str varName) { + var = findByName(methodVars, varName); + return isString(var); +} + +private bool isInteger(set[MethodVar] methodVars, str varName) { + var = findByName(methodVars, varName); + return isInteger(var); +} + +private str buildSimpleExplicitReduce(str op, str reducingVar) { + return "reduce(, (accumulator, _item) -\> accumulator _item)"; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 45528f9..b9ceba5 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -111,6 +111,7 @@ private ProspectiveOperation retrieveProspectiveOperationFromSingleStatement(Sta return prospectiveOperation(unparse(statement), MAP); } +// TODO implement prefix and postfix increment/decrement private bool isReducer(Statement statement) { visit (statement) { case (Assignment) ` `: From 8193c176d3acf7f345ede568bf966c4861358ba3 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 090/156] Updating test with one reduce example --- src/refactor/forloop/ForLoopToFunctionalTest.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index edda36c..58ba331 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -59,7 +59,7 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { //} // TODO Complete the test with full output when REDUCE implemented -public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { +public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); @@ -70,6 +70,6 @@ public test bool shouldNotBreakWithExpressionStatementAsMapOperation() { Expression collectionId = parse(#Expression, "entrySet"); refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - - return !isEmpty(""); + + return unparse(refactoredStatement) == "entrySet.stream().map(entry -\> {\nassertTrue(map.containsKey(entry.getKey()));\nreturn entry;\n}).map(entry -\> {\nassertTrue(map.containsValue(entry.getValue()));\nreturn entry;\n}).map(entry -\> {\nint expectedHash =\r\n (entry.getKey() == null ? 0 : entry.getKey().hashCode())\r\n ^ (entry.getValue() == null ? 0 : entry.getValue().hashCode());\nassertEquals(expectedHash, entry.hashCode());\nreturn expectedHash;\n}).map(expectedHash -\> expectedHash).reduce(expectedEntrySetHash, Integer::sum);"; } \ No newline at end of file From d203cb9225798ed7f7865d2f01ee26eb696dad17 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 091/156] EnhancedFor iterating on Iterable is not a collection => not refactorable. --- src/ForLoop.rsc | 2 +- src/MethodVar.rsc | 5 +++ .../forloop}/EnhancedLoopExpression.rsc | 10 +++--- .../forloop/EnhancedLoopExpressionTest.rsc | 32 +++++++++++++++++++ .../EnhancedForOnIterable.java | 15 +++++++++ 5 files changed, 58 insertions(+), 6 deletions(-) rename src/{ => refactor/forloop}/EnhancedLoopExpression.rsc (80%) create mode 100644 src/refactor/forloop/EnhancedLoopExpressionTest.rsc create mode 100644 testes/ForLoopToFunctional/EnhancedForOnIterable.java diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 0c4ca30..e1ff20e 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -4,7 +4,7 @@ import IO; import lang::java::\syntax::Java18; import ParseTree; import LocalVariablesFinder; -import EnhancedLoopExpression; +import refactor::forloop::EnhancedLoopExpression; import refactor::forloop::ForLoopBodyReferences; import refactor::forloop::ForLoopToFunctional; import MethodVar; diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index ccbcf0d..d7dae03 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -20,6 +20,11 @@ public bool isInteger(MethodVar methodVar) { return varType == "int" || varType == "Integer"; } +public bool isIterable(MethodVar methodVar) { + varType = methodVar.varType; + return startsWith(varType, "Iterable"); +} + public bool isParameter(MethodVar methodVar) { return !methodVar.isParameter; } diff --git a/src/EnhancedLoopExpression.rsc b/src/refactor/forloop/EnhancedLoopExpression.rsc similarity index 80% rename from src/EnhancedLoopExpression.rsc rename to src/refactor/forloop/EnhancedLoopExpression.rsc index 71c71a5..e0b445c 100644 --- a/src/EnhancedLoopExpression.rsc +++ b/src/refactor/forloop/EnhancedLoopExpression.rsc @@ -1,16 +1,16 @@ -module EnhancedLoopExpression +module refactor::forloop::EnhancedLoopExpression import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import String; -// XXX Only checking iterable variables defined in method (local and parameter(SOON) ) -// Need to verify class and instance variables too! (not that hard) +// XXX Only checking iterable variables defined in method (local and parameter) +// Need to verify class and instance variables too! // Doing the full check on a method call will be an entire new problem // example: for (Object rowKey : table.rowKeySet()) -// Relying on compiler to help finding if it an array or not +// Relying on compiler to help finding if it's an array or not // Compiler gives error if expression is not Array/Collection // Therefore we only check if the expression is an Array public bool isIteratingOnCollection(Expression exp, set[MethodVar] localVariables) { @@ -28,7 +28,7 @@ private bool isExpAnIdentifier(Expression exp) { private bool isIdentifierACollection(Expression exp, set[MethodVar] localVariables) { varName = unparse(exp); var = findByName(localVariables, varName); - return !isTypePlainArray(var); + return !isTypePlainArray(var) && !isIterable(var); } // FIXME diff --git a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc new file mode 100644 index 0000000..fa34d7d --- /dev/null +++ b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc @@ -0,0 +1,32 @@ +module refactor::forloop::EnhancedLoopExpressionTest + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import MethodVar; +import LocalVariablesFinder; +import refactor::forloop::EnhancedLoopExpression; + +public test bool iterableShouldReturnFalse() { + params = paramsEnhancedForOnIterable(); + + return isIteratingOnCollection(params.exp, params.localVariables) == false; +} + +private tuple[Expression exp, set[MethodVar] localVariables] paramsEnhancedForOnIterable() { + tuple[MethodHeader methodHeader, MethodBody methodBody] method = getEnhancedForOnIterable(); + localVariables = findLocalVariables(method.methodHeader, method.methodBody); + // Making life easier + exp = parse(#Expression, "keys"); + return ; +} + +private tuple[MethodHeader methodHeader, MethodBody methodBody] getEnhancedForOnIterable() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/EnhancedForOnIterable.java|; + methodDeclaration = parse(#MethodDeclaration, readFile(fileLoc)); + visit(methodDeclaration) { + case (MethodDeclaration) ` `: { + return ; + } + } +} \ No newline at end of file diff --git a/testes/ForLoopToFunctional/EnhancedForOnIterable.java b/testes/ForLoopToFunctional/EnhancedForOnIterable.java new file mode 100644 index 0000000..923243b --- /dev/null +++ b/testes/ForLoopToFunctional/EnhancedForOnIterable.java @@ -0,0 +1,15 @@ +@Override + public ImmutableMap getAllPresent(Iterable keys) { + Map result = Maps.newLinkedHashMap(); + for (Object key : keys) { + if (!result.containsKey(key)) { + @SuppressWarnings("unchecked") + K castKey = (K) key; + V value = getIfPresent(key); + if (value != null) { + result.put(castKey, value); + } + } + } + return ImmutableMap.copyOf(result); + } \ No newline at end of file From 16395ba7f8180ab35109aaec6f481e3d2ead3958 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 092/156] Checking if loop returns a non literal boolean as pre condition to refactor --- src/ForLoop.rsc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index e1ff20e..ab09248 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -69,13 +69,18 @@ private bool loopBodyPassConditions(Statement stmt) { returnCount = 0; visit(stmt) { case (ThrowStatement) `throw new ( );`: { - classNameStr = unparse(className); - if (classNameStr in checkedExceptionClasses) return false; + if ("" in checkedExceptionClasses) return false; } case (BreakStatement) `break ;`: return false; - case (ReturnStatement) `return ;`: returnCount += 1; + case (ReturnStatement) `return ;`: { + returnExpStr = unparse(returnExp); + if(returnExpStr != "true" || returnExpStr != "false") + return false; + + returnCount += 1; + } // labeled continue. case (ContinueStatement) `continue ;`: return false; From b475bf954e868b50f964aea211b113bd87c3b7ca Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 093/156] Lambda bodies of Map Operations should be rearranged only AFTER merged. --- src/refactor/forloop/ForLoopToFunctional.rsc | 9 ++++----- .../forloop/ForLoopToFunctionalTest.rsc | 15 +++++++++++++++ .../ForWithMultiStatementMap.java | 7 +++++++ .../MethodBodyWithMultiStatementMap.java | 18 ++++++++++++++++++ 4 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 testes/ForLoopToFunctional/ForWithMultiStatementMap.java create mode 100644 testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 6717d73..982ca3a 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -49,9 +49,9 @@ public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperati if (canOperationsBeRefactored(prospectiveOperations)) { composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); - composablePrOps = rearrangeMapBodiesIfNeeded(composablePrOps); + composablePrOps = mergeIntoComposableOperations(composablePrOps); - return mergeIntoComposableOperations(composablePrOps); + return rearrangeMapBodiesIfNeeded(composablePrOps); } else // Throwing the exception is not the best option, but the easiest to implement right now throw "CanNotBeRefactored"; @@ -226,13 +226,12 @@ private list[ComposableProspectiveOperation] rearrangeMapBodiesIfNeeded(list[Com private ComposableProspectiveOperation rearrangeMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { prOp = curr.prOp; - if(isLocalVariableDeclarationStatement(prOp.stmt)) return rearrangeLocalVariableDeclarationMapBody(curr, nextNeededVars); else if(isNumericLiteral(prOp.stmt)) return curr; else - return addReturnToMapBody(curr, nextNeededVars); + return addReturnToMapBody(curr, nextNeededVars); } private ComposableProspectiveOperation rearrangeLocalVariableDeclarationMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { @@ -255,7 +254,7 @@ private bool isNumericLiteral(str stmt) { private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { list[str] stmts = []; - if (isBlock(curr.prOp.stmt)) + if (isBlock(curr.prOp.stmt)) stmts += retrieveAllStatementsFromBlock(curr.prOp.stmt); else stmts += curr.prOp.stmt; diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 58ba331..9d76ef0 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -72,4 +72,19 @@ public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); return unparse(refactoredStatement) == "entrySet.stream().map(entry -\> {\nassertTrue(map.containsKey(entry.getKey()));\nreturn entry;\n}).map(entry -\> {\nassertTrue(map.containsValue(entry.getValue()));\nreturn entry;\n}).map(entry -\> {\nint expectedHash =\r\n (entry.getKey() == null ? 0 : entry.getKey().hashCode())\r\n ^ (entry.getValue() == null ? 0 : entry.getValue().hashCode());\nassertEquals(expectedHash, entry.hashCode());\nreturn expectedHash;\n}).map(expectedHash -\> expectedHash).reduce(expectedEntrySetHash, Integer::sum);"; +} + +public test bool shouldAddReturnToMapWithMoreThanOneStatement() { + methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodHeader = parse(#MethodHeader, "Iterable\\> findAll()"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWithMultiStatementMap.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "v"); + Expression collectionId = parse(#Expression, "values"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + + return unparse(refactoredStatement) == "values.stream().map(v -\> {\nString key = keysIt.next();\nMetric\ value = deserialize(key, v, this.zSetOperations.score(key));\nreturn value;\n}).filter(value -\> value != null).forEach(value -\> {\nresult.add(value);\n});"; } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/ForWithMultiStatementMap.java b/testes/ForLoopToFunctional/ForWithMultiStatementMap.java new file mode 100644 index 0000000..ec01d61 --- /dev/null +++ b/testes/ForLoopToFunctional/ForWithMultiStatementMap.java @@ -0,0 +1,7 @@ +for (String v : values) { + String key = keysIt.next(); + Metric value = deserialize(key, v, this.zSetOperations.score(key)); + if (value != null) { + result.add(value); + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java b/testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java new file mode 100644 index 0000000..3bc474c --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java @@ -0,0 +1,18 @@ +{ + + // This set is sorted + Set keys = this.zSetOperations.range(0, -1); + Iterator keysIt = keys.iterator(); + + List> result = new ArrayList<>(keys.size()); + List values = this.redisOperations.opsForValue().multiGet(keys); + for (String v : values) { + String key = keysIt.next(); + Metric value = deserialize(key, v, this.zSetOperations.score(key)); + if (value != null) { + result.add(value); + } + } + return result; + + } \ No newline at end of file From 7daa4654d44a0a6cac7a0940459f92f11a266697 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 094/156] Making sure we are refactoring correctly a map body with 3 statements. - Was wrong before. --- .../forloop/ForLoopToFunctionalTest.rsc | 15 +++++++++++++++ .../ForWith3StatementsMapBody.java | 9 +++++++++ .../MethodBodyWIth3StatementsMapBody.java | 17 +++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 testes/ForLoopToFunctional/ForWith3StatementsMapBody.java create mode 100644 testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 9d76ef0..6de92de 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -87,4 +87,19 @@ public test bool shouldAddReturnToMapWithMoreThanOneStatement() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); return unparse(refactoredStatement) == "values.stream().map(v -\> {\nString key = keysIt.next();\nMetric\ value = deserialize(key, v, this.zSetOperations.score(key));\nreturn value;\n}).filter(value -\> value != null).forEach(value -\> {\nresult.add(value);\n});"; +} + +public test bool shouldAddCorrectReturnTo3StmtsMapBody() { + methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodHeader = parse(#MethodHeader, "void updateSnapshots(Collection\ snapshots)"); + set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWith3StatementsMapBody.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "snapshot"); + Expression collectionId = parse(#Expression, "snapshots"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + + return unparse(refactoredStatement) == "snapshots.stream().map(snapshot -\> {\nFolderSnapshot previous = this.folders.get(snapshot.getFolder());\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\nreturn changedFiles;\n}).filter(changedFiles -\> !changedFiles.getFiles().isEmpty()).forEach(changedFiles -\> {\nchangeSet.add(changedFiles);\n});"; } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/ForWith3StatementsMapBody.java b/testes/ForLoopToFunctional/ForWith3StatementsMapBody.java new file mode 100644 index 0000000..fa1b4e7 --- /dev/null +++ b/testes/ForLoopToFunctional/ForWith3StatementsMapBody.java @@ -0,0 +1,9 @@ +for (FolderSnapshot snapshot : snapshots) { + FolderSnapshot previous = this.folders.get(snapshot.getFolder()); + updated.put(snapshot.getFolder(), snapshot); + ChangedFiles changedFiles = previous.getChangedFiles(snapshot, + this.triggerFilter); + if (!changedFiles.getFiles().isEmpty()) { + changeSet.add(changedFiles); + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java b/testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java new file mode 100644 index 0000000..dc7d677 --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java @@ -0,0 +1,17 @@ +{ + Map updated = new LinkedHashMap<>(); + Set changeSet = new LinkedHashSet<>(); + for (FolderSnapshot snapshot : snapshots) { + FolderSnapshot previous = this.folders.get(snapshot.getFolder()); + updated.put(snapshot.getFolder(), snapshot); + ChangedFiles changedFiles = previous.getChangedFiles(snapshot, + this.triggerFilter); + if (!changedFiles.getFiles().isEmpty()) { + changeSet.add(changedFiles); + } + } + if (!changeSet.isEmpty()) { + fireListeners(Collections.unmodifiableSet(changeSet)); + } + this.folders = updated; + } \ No newline at end of file From 154c4c50fa50dbf52df1cab494845c7d09954742 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 095/156] Making the creation of methodVars more clear. - A builder pattern would be nice. --- src/LocalVariablesFinder.rsc | 18 +++++++++++++----- src/LocalVariablesFinderTestResources.rsc | 11 +++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 28c44a4..c4c1897 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -76,13 +76,17 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false, false); + bool isParameter = false; + bool isDeclaredWithinLoop = false; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); } private MethodVar createLocalMethodVarWithinLoop(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false, true); + bool isParameter = false; + bool isDeclaredWithinLoop = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); } private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -93,8 +97,10 @@ private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType // Standarizing arrays to have varType == [] if(dimsStr == "[]") varTypeStr += "[]"; - - return methodVar(isFinal, name, varTypeStr, false, false); + + bool isParameter = false; + bool isDeclaredWithinLoop = false; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); } private MethodVar createLocalMethodVarWithinLoop(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -106,7 +112,9 @@ private MethodVar createLocalMethodVarWithinLoop(bool isFinal, Identifier varId, private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, CatchType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, false, false); + bool isParameter = false; + bool isDeclaredWithinLoop = false; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); } private bool figureIfIsFinal(VariableModifier* varMod) { diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 00975e2..507839c 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -103,4 +103,15 @@ public MethodBody varsWithinTheLoopMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopVarsWithinLoop|; content = readFile(fileLoc); return parse(#MethodBody, content); +} + +public MethodHeader nonEffectiveFinalUsedInEnhancedForMethodHeader() { + header = "void set(String group, Collection\\> values)"; + return parse(#MethodHeader, header); +} + +public MethodBody nonEffectiveFinalUsedInEnhancedForMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/NonEffectiveFinalUsedInEnhancedFor|; + content = readFile(fileLoc); + return parse(#MethodBody, content); } \ No newline at end of file From 7bc19b58ddda655e14bd6848b61963325553fa99 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 16 Apr 2017 18:31:16 -0300 Subject: [PATCH 096/156] Identifying non effective final vars outside loop. More tests would be great. - Not the best code ever, but mainly due to the usage of Set. --- src/LocalVariablesFinder.rsc | 51 +++++++++++++++---- src/LocalVariablesFinderTest.rsc | 12 ++++- src/MethodVar.rsc | 7 +-- .../NonEffectiveFinalUsedInEnhancedFor | 14 +++++ 4 files changed, 68 insertions(+), 16 deletions(-) create mode 100644 testes/localVariables/NonEffectiveFinalUsedInEnhancedFor diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index c4c1897..4d7b3b7 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -32,14 +32,17 @@ private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); - return methodVar(isFinal, name, varTypeStr, true, false); + bool isParameter = true; + bool isDeclaredWithinLoop = false; + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } -// XXX probably incorrect, ugly and not really DRY way of checking for vars within loop +// XXX ugly and not really DRY way of checking for vars within loop private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { set[MethodVar] methodVars = {}; + set[str] nonEffectiveFinalOutsideLoopVars = {}; set[str] varsWithinLoopNames = {}; - top-down visit(methodBody) { case EnhancedForStatement enhancedForStmt: { @@ -56,7 +59,9 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { } } } - + + + case (LocalVariableDeclaration) ` `: { visit(vdl) { case (VariableDeclaratorId) ` `: { @@ -66,11 +71,15 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { } } + case (Assignment) ` `: nonEffectiveFinalOutsideLoopVars += ""; + case(CatchFormalParameter) ` `: methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType); } - return methodVars; + + + return addNonEffectiveFinalVars(methodVars, nonEffectiveFinalOutsideLoopVars); } private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { @@ -78,7 +87,8 @@ private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, varTypeStr = trim(unparse(varType)); bool isParameter = false; bool isDeclaredWithinLoop = false; - return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } private MethodVar createLocalMethodVarWithinLoop(bool isFinal, VariableDeclaratorId varId, UnannType varType) { @@ -86,7 +96,8 @@ private MethodVar createLocalMethodVarWithinLoop(bool isFinal, VariableDeclarato varTypeStr = trim(unparse(varType)); bool isParameter = false; bool isDeclaredWithinLoop = true; - return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -100,7 +111,8 @@ private MethodVar createLocalMethodVar(bool isFinal, Identifier varId, UnannType bool isParameter = false; bool isDeclaredWithinLoop = false; - return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } private MethodVar createLocalMethodVarWithinLoop(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { @@ -114,11 +126,32 @@ private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, varTypeStr = trim(unparse(varType)); bool isParameter = false; bool isDeclaredWithinLoop = false; - return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop); + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } private bool figureIfIsFinal(VariableModifier* varMod) { if ("" := "final") return true; return false; +} + + +// XXX ugly handling of non effective finals (mainly due to usage of sets) +private set[MethodVar] addNonEffectiveFinalVars(set[MethodVar] methodVars, set[str] nonEffectiveFinalOutsideLoopVars) { + completeMethodVars = methodVars; + for (methodVar <- methodVars) { + for (nonEffectiveFinalVar <- nonEffectiveFinalOutsideLoopVars) { + if (methodVar.name == nonEffectiveFinalVar) { + completeMethodVars -= methodVar; + completeMethodVars += cloneMethodVarAsNonEffectiveFinal(methodVar); + } + } + } + return completeMethodVars; +} + +private MethodVar cloneMethodVarAsNonEffectiveFinal(MethodVar m) { + bool isEffectiveFinal = false; + return methodVar(m.isFinal, m.name, m.varType, m.isParameter, m.isDeclaredWithinLoop, isEffectiveFinal); } \ No newline at end of file diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index a29e6cc..d80271e 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -120,7 +120,7 @@ public test bool shouldReturnNonFinalSingleParameter() { return size(nonLocals) == 1 && !var.isFinal && var.isParameter; } -public test bool shouldReturnFinalSingleParamater() { +public test bool shouldReturnFinalSingleParameter() { methodHeader = finalSingleParameterMethodHeader(); methodBody = emptyMethodBody(); @@ -192,3 +192,13 @@ public test bool shouldReturnCorrectVarsNotDeclaredWithinLoop() { "localVarNotWithinLoopAgain" in notWithinLoopNames && "notWithinLoopAfterLoop" in notWithinLoopNames; } + +public test bool shouldIdentifyNonEffectiveFinalVar() { + methodHeader = nonEffectiveFinalUsedInEnhancedForMethodHeader(); + methodBody = nonEffectiveFinalUsedInEnhancedForMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + nonEffectiveFinalVar = findByName(vars, "prefix"); + + return !isEffectiveFinal(nonEffectiveFinalVar); +} diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index d7dae03..48f097d 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -4,7 +4,6 @@ import Set; import String; // TODO Review if using a Set is the best choice. Probably not. -public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isDeclaredWithinLoop); public data MethodVar = methodVar(bool isFinal, str name, str varType, bool isParameter, bool isDeclaredWithinLoop, bool isEffectiveFinal); public bool isArray(MethodVar methodVar) { @@ -85,10 +84,6 @@ public set[str] retrieveNotDeclaredWithinLoopNames(set[MethodVar] methodVars) { return { var.name | MethodVar var <- methodVars, !var.isDeclaredWithinLoop }; } -// FIXME public bool isEffectiveFinal(MethodVar methodVar) { - try - return methodVar.isFinal || methodVar.isEffectiveFinal; - catch NoSuchField("isEffectiveFinal"): - return methodVar.isFinal; + return methodVar.isFinal || methodVar.isEffectiveFinal; } \ No newline at end of file diff --git a/testes/localVariables/NonEffectiveFinalUsedInEnhancedFor b/testes/localVariables/NonEffectiveFinalUsedInEnhancedFor new file mode 100644 index 0000000..387209d --- /dev/null +++ b/testes/localVariables/NonEffectiveFinalUsedInEnhancedFor @@ -0,0 +1,14 @@ +{ + String prefix = group; + if (!prefix.endsWith(".")) { + prefix = prefix + "."; + } + for (Metric metric : values) { + if (!metric.getName().startsWith(prefix)) { + metric = new Metric(prefix + metric.getName(), metric.getValue(), + metric.getTimestamp()); + } + this.repository.set(metric); + } + this.groups.add(group); + } \ No newline at end of file From 4f573be05ce0684597b1fd6ba3bd8c166c9f120b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 27 Apr 2017 00:07:51 -0300 Subject: [PATCH 097/156] Retrieving class fields from CompilationUnit. - Fields are effective final for the purpose of the refactor. -- Tested in loco on NetBeans. --- src/refactor/forloop/ClassFieldsFinder.rsc | 62 +++++++++++++++++++ .../forloop/ClassFieldsFinderTest.rsc | 22 +++++++ testes/localVariables/ClassWithFields.java | 18 ++++++ 3 files changed, 102 insertions(+) create mode 100644 src/refactor/forloop/ClassFieldsFinder.rsc create mode 100644 src/refactor/forloop/ClassFieldsFinderTest.rsc create mode 100644 testes/localVariables/ClassWithFields.java diff --git a/src/refactor/forloop/ClassFieldsFinder.rsc b/src/refactor/forloop/ClassFieldsFinder.rsc new file mode 100644 index 0000000..18956c9 --- /dev/null +++ b/src/refactor/forloop/ClassFieldsFinder.rsc @@ -0,0 +1,62 @@ +module refactor::forloop::ClassFieldsFinder + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import String; +import Set; +import MethodVar; + +// M3 isn't very helpful here. +// We can't really get type + var name +public set[MethodVar] findClassFields(CompilationUnit unit) { + return findCurrentClassFields(unit); +} + +private set[MethodVar] findCurrentClassFields(CompilationUnit unit) { + classFields = {}; + + // syntax FieldDeclaration = fieldDeclaration: FieldModifier* UnannType VariableDeclaratorList ";"+ ; + + visit(unit) { + case (FieldDeclaration) ` ;`: { + visit(vdl) { + case (VariableDeclaratorId) ` `: + classFields += createEffectiveFinalVar(figureIfIsFinal(varMod), varId, varType, dims); + + } + } + } + + return classFields; +} + +private bool figureIfIsFinal(FieldModifier* varMod) { + return contains("", "final"); +} + +// Class fields are effectively final for the purpose of ForLoopToFunctional +private MethodVar createEffectiveFinalVar(bool isFinal, Identifier varId, UnannType varType, Dims? dims) { + name = trim(unparse(varId)); + varTypeStr = trim(unparse(varType)); + dimsStr = trim(unparse(dims)); + + // Standarizing arrays to have varType == [] + if(dimsStr == "[]") + varTypeStr += "[]"; + + bool isParameter = false; + bool isDeclaredWithinLoop = false; + bool isEffectiveFinal = true; + return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); +} + +// XXX hard +private set[MethodVar] findInheritedFields() { + return {}; +} + +// XXX hard +private set[MethodVar] findImportedFields() { + return {}; +} \ No newline at end of file diff --git a/src/refactor/forloop/ClassFieldsFinderTest.rsc b/src/refactor/forloop/ClassFieldsFinderTest.rsc new file mode 100644 index 0000000..8afffd0 --- /dev/null +++ b/src/refactor/forloop/ClassFieldsFinderTest.rsc @@ -0,0 +1,22 @@ +module refactor::forloop::ClassFieldsFinderTest + +import lang::java::\syntax::Java18; +import ParseTree; +import refactor::forloop::ClassFieldsFinder; +import MethodVar; +import Set; + +public test bool shouldReturnAllClassFields() { + fileLoc = |project://rascal-Java8//testes/localVariables/ClassWithFields.java|; + unit = parse(#CompilationUnit, fileLoc); + + classFields = findClassFields(unit); + + return size(classFields) == 6 && + methodVar(true,"NAME","String",false,false,true) in classFields && + methodVar(false,"name","String",false,false,true) in classFields && + methodVar(true,"NUMBERS_SIZE","int",false,false,true) in classFields && + methodVar(false,"objArray2","Object[]",false,false,true) in classFields && + methodVar(false,"numbers","List\",false,false,true) in classFields && + methodVar(false,"objArray","Object[]",false,false,true) in classFields; +} \ No newline at end of file diff --git a/testes/localVariables/ClassWithFields.java b/testes/localVariables/ClassWithFields.java new file mode 100644 index 0000000..33bd7b7 --- /dev/null +++ b/testes/localVariables/ClassWithFields.java @@ -0,0 +1,18 @@ +import java.util.ArrayList; +import java.util.List; + +public class ClassWithFields { + + public static final String NAME = "Classe"; + + private static final int NUMBERS_SIZE = 10; + + private String name; + + private List numbers = new ArrayList<>(NUMBERS_SIZE); + + private Object[] objArray; + + private Object objArray2[]; + +} \ No newline at end of file From e3f61aa7932b9913cd79994ddcddda0ca21cf2e2 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 27 Apr 2017 00:08:36 -0300 Subject: [PATCH 098/156] Removing unecessary stuff from LocalVariablesFinder --- src/LocalVariablesFinder.rsc | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 4d7b3b7..7c3bd92 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -1,23 +1,14 @@ module LocalVariablesFinder -import Set; +import IO; import lang::java::\syntax::Java18; -import String; import ParseTree; -import IO; +import Set; +import String; import MethodVar; -import ParseTreeVisualization; - -// syntax LocalVariableDeclarationStatement = LocalVariableDeclaration ";"+ ; -// syntax LocalVariableDeclaration = VariableModifier* UnannType VariableDeclaratorList ; -// syntax VariableDeclaratorList = variableDeclaratorList: {VariableDeclarator ","}+ ; -// syntax VariableDeclarator = variableDeclarator: VariableDeclaratorId ("=" VariableInitializer)? ; public set[MethodVar] findLocalVariables(MethodHeader methodHeader, MethodBody methodBody) { - set[MethodVar] methodVars = {}; - methodVars += findVariablesAsParameters(methodHeader); - methodVars += findVariablesInsideBody(methodBody); - return methodVars; + return findVariablesAsParameters(methodHeader) + findVariablesInsideBody(methodBody); } private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { @@ -29,6 +20,10 @@ private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { return methodVars; } +private bool figureIfIsFinal(VariableModifier* varMod) { + return "" := "final"; +} + private MethodVar createParameterMethodVar(bool isFinal, VariableDeclaratorId varId, UnannType varType) { name = trim(unparse(varId)); varTypeStr = trim(unparse(varType)); @@ -130,13 +125,6 @@ private MethodVar createLocalMethodVar(bool isFinal, VariableDeclaratorId varId, return methodVar(isFinal, name, varTypeStr, isParameter, isDeclaredWithinLoop, isEffectiveFinal); } -private bool figureIfIsFinal(VariableModifier* varMod) { - if ("" := "final") - return true; - return false; -} - - // XXX ugly handling of non effective finals (mainly due to usage of sets) private set[MethodVar] addNonEffectiveFinalVars(set[MethodVar] methodVars, set[str] nonEffectiveFinalOutsideLoopVars) { completeMethodVars = methodVars; From c69060ccb08fb25e8a319fa9cb660cf921dd5692 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 27 Apr 2017 00:33:16 -0300 Subject: [PATCH 099/156] ForLoop using classFields to check for preconditions + Optimization attempt - If a method had more than one for, was looking for its variables N times - Trying to only compute class fields once, and only if it has at least one Enhanced For. --- src/ForLoop.rsc | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index ab09248..15ea01b 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -7,16 +7,22 @@ import LocalVariablesFinder; import refactor::forloop::EnhancedLoopExpression; import refactor::forloop::ForLoopBodyReferences; import refactor::forloop::ForLoopToFunctional; +import refactor::forloop::ClassFieldsFinder; import MethodVar; private set[str] checkedExceptionClasses; +private set[MethodVar] currentClassFields = {}; + +private bool alreadyComputedClassFields; + public void findForLoops(list[loc] locs, set[str] checkedExceptions) { checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { javaFileContent = readFile(fileLoc); try { unit = parse(#CompilationUnit, javaFileContent); + alreadyComputedClassFields = false; lookForForStatements(unit); } catch: continue; @@ -26,28 +32,41 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { private void lookForForStatements(CompilationUnit unit) { visit(unit) { case MethodDeclaration methodDeclaration: - lookForEnhancedForStatementsInMethod(methodDeclaration); + lookForEnhancedForStatementsInMethod(unit, methodDeclaration); } } -private void lookForEnhancedForStatementsInMethod(MethodDeclaration methodDeclaration) { +private void lookForEnhancedForStatementsInMethod(CompilationUnit unit, MethodDeclaration methodDeclaration) { visit(methodDeclaration) { case (MethodDeclaration) ` `: - lookForEnhancedForStatementsInMethodBody(methodHeader, methodBody); + lookForEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); } } -private void lookForEnhancedForStatementsInMethodBody(MethodHeader methodHeader, MethodBody methodBody) { +private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { + set[MethodVar] availableVars = {}; + alreadyComputedCurrentMethodAvailableVars = false; + visit(methodBody) { case EnhancedForStatement forStmt: { + + if(!alreadyComputedClassFields) { + currentClassFields = findClassFields(unit); + alreadyComputedClassFields = true; + } + + if(!alreadyComputedCurrentMethodAvailableVars) { + availableVars = currentClassFields + findLocalVariables(methodHeader, methodBody); + alreadyComputedAvailableVars = true; + } + visit(forStmt) { case EnhancedForStatement enhancedForStmt: { visit(enhancedForStmt) { case (EnhancedForStatement) `for ( : ) `: { - methodLocalVariables = findLocalVariables(methodHeader, methodBody); - if(isLoopRefactorable(methodLocalVariables, collectionId, stmt)) - // TODO Create data structure - refactorEnhancedToFunctional(methodLocalVariables, enhancedForStmt, methodBody, iteratedVarName, collectionId); + + if(isLoopRefactorable(availableVars, collectionId, stmt)) + refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); } } } From 3ccb03003a1f877d918a0e56cdac6f3ca55970e1 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 3 May 2017 22:50:29 -0300 Subject: [PATCH 100/156] ForLoopToFunctional not catching exception. - It was making harder to count how many refactors we did. --- src/refactor/forloop/ForLoopToFunctional.rsc | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 982ca3a..34ff805 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -16,21 +16,13 @@ import ParseTreeVisualization; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { - try - return buildRefactoredMethodBody(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - catch: - return methodBody; + return buildRefactoredMethodBody(methodVars, forStmt, methodBody, iteratedVarName, collectionId); } private MethodBody buildRefactoredMethodBody(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { refactored = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); forStatement = parse(#Statement, unparse(forStmt)); refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); - //println("\n --- APPLYING REFACTOR ---"); - //println(forStmt); - //println("refactored to:"); - //println(refactored); - return refactoredMethodBody; } @@ -271,9 +263,6 @@ private Statement buildFunctionalStatement(set[MethodVar] methodVars, list[Compo if(size(composablePrOps) == 1 && isForEach(composablePrOps[0].prOp)) return buildStatementForOnlyOneForEach(composablePrOps[0].prOp, iteratedVarName, collectionId); - println(); - println(forStmt); - println("\nrefactored to:"); return chainOperationsIntoStatement(methodVars, composablePrOps, collectionId); } @@ -299,7 +288,6 @@ private Statement chainOperationsIntoStatement(set[MethodVar] methodVars, list[C chainStr = "." + buildChainableOperation(methodVars, composablePrOp); } - println(chainStr); return parse(#Statement, ";"); } From 87d24437f5cdc8667172a2fd6392cd1dadbdb55f Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 3 May 2017 22:52:23 -0300 Subject: [PATCH 101/156] Counting and showing refactors in ForLoop --- src/ForLoop.rsc | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 15ea01b..c451e0a 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -9,6 +9,7 @@ import refactor::forloop::ForLoopBodyReferences; import refactor::forloop::ForLoopToFunctional; import refactor::forloop::ClassFieldsFinder; import MethodVar; +import util::Math; private set[str] checkedExceptionClasses; @@ -16,7 +17,10 @@ private set[MethodVar] currentClassFields = {}; private bool alreadyComputedClassFields; +private int refactoredCount = 0; + public void findForLoops(list[loc] locs, set[str] checkedExceptions) { + refactoredCount = 0; checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { javaFileContent = readFile(fileLoc); @@ -27,6 +31,7 @@ public void findForLoops(list[loc] locs, set[str] checkedExceptions) { } catch: continue; } + println("refactoredCount: " + toString(refactoredCount)); } private void lookForForStatements(CompilationUnit unit) { @@ -47,7 +52,7 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth set[MethodVar] availableVars = {}; alreadyComputedCurrentMethodAvailableVars = false; - visit(methodBody) { + top-down visit(methodBody) { case EnhancedForStatement forStmt: { if(!alreadyComputedClassFields) { @@ -60,13 +65,26 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth alreadyComputedAvailableVars = true; } - visit(forStmt) { + top-down visit(forStmt) { case EnhancedForStatement enhancedForStmt: { visit(enhancedForStmt) { case (EnhancedForStatement) `for ( : ) `: { - if(isLoopRefactorable(availableVars, collectionId, stmt)) - refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); + if(isLoopRefactorable(availableVars, collectionId, stmt)) { + + try { + refactored = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); + refactoredCount += 1; + println("refactored: " + toString(refactoredCount)); + println(enhancedForStmt); + println("---"); + println(refactored); + println(); + } catch: { + continue; + } + + } } } } From f5d05c25c5215928651a5a62def278b67c02e0d7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 00:33:51 -0300 Subject: [PATCH 102/156] In case there is a duplicated localVariable and classField, retaining the local var. - Note sure when 'this.varName' is called. Probably will break. - As it probably breaks when a variable is declared more than once in inner scopes. --- src/ForLoop.rsc | 3 ++- src/LocalVariablesFinderTest.rsc | 10 +++++++ src/LocalVariablesFinderTestResources.rsc | 25 ++++++++++------- src/MethodVar.rsc | 12 +++++++++ .../forloop/EnhancedLoopExpression.rsc | 4 ++- .../forloop/EnhancedLoopExpressionTest.rsc | 27 +++++++++++++++++++ .../IterableParameterMethodBody | 9 +++++++ 7 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 testes/localVariables/IterableParameterMethodBody diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index c451e0a..2327bae 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -61,7 +61,8 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth } if(!alreadyComputedCurrentMethodAvailableVars) { - availableVars = currentClassFields + findLocalVariables(methodHeader, methodBody); + methodVars = findLocalVariables(methodHeader, methodBody); + availableVars = retainLocalVariablesIfDuplicates(currentClassFields, methodVars); alreadyComputedAvailableVars = true; } diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index d80271e..b66c875 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -202,3 +202,13 @@ public test bool shouldIdentifyNonEffectiveFinalVar() { return !isEffectiveFinal(nonEffectiveFinalVar); } + +public test bool shouldParseCorrectTypeFromIterableParameter() { + methodHeader = iterableParameterMethodHeader(); + methodBody = iterableParameterMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + iterableParam = findByName(vars, "types"); + + return iterableParam.varType == "Iterable\"; +} diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 507839c..fa7ab14 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -37,20 +37,17 @@ public MethodBody emptyMethodBody() { public MethodBody enhancedForLoopFinalVarDecl() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; - content = readFile(fileLoc); - return parse(#MethodBody, content); + return parse(#MethodBody, readFile(fileLoc)); } public MethodBody enhancedForLoopWithException() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopWithException|; - content = readFile(fileLoc); - return parse(#MethodBody, content); + return parse(#MethodBody, readFile(fileLoc)); } public MethodBody arrayVariables() { fileLoc = |project://rascal-Java8//testes/localVariables/MultiplePlainArrayDeclarations|; - content = readFile(fileLoc); - return parse(#MethodBody, content); + return parse(#MethodBody, readFile(fileLoc)); } public set[MethodVar] getEncouragedArrays(set[MethodVar] vars) { @@ -101,8 +98,7 @@ public MethodHeader varsWithinTheLoopMethodHeader() { public MethodBody varsWithinTheLoopMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopVarsWithinLoop|; - content = readFile(fileLoc); - return parse(#MethodBody, content); + return parse(#MethodBody, readFile(fileLoc)); } public MethodHeader nonEffectiveFinalUsedInEnhancedForMethodHeader() { @@ -112,6 +108,15 @@ public MethodHeader nonEffectiveFinalUsedInEnhancedForMethodHeader() { public MethodBody nonEffectiveFinalUsedInEnhancedForMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/NonEffectiveFinalUsedInEnhancedFor|; - content = readFile(fileLoc); - return parse(#MethodBody, content); + return parse(#MethodBody, readFile(fileLoc)); +} + +public MethodHeader iterableParameterMethodHeader() { + header = "ImmutableList\ collectTypes(Iterable\ types)"; + return parse(#MethodHeader, header); +} + +public MethodBody iterableParameterMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/IterableParameterMethodBody|; + return parse(#MethodBody, readFile(fileLoc)); } \ No newline at end of file diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 48f097d..484760b 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -86,4 +86,16 @@ public set[str] retrieveNotDeclaredWithinLoopNames(set[MethodVar] methodVars) { public bool isEffectiveFinal(MethodVar methodVar) { return methodVar.isFinal || methodVar.isEffectiveFinal; +} + +// FIXME This will break if 'this.varName' is referenced, as we are removing the class field +// Would need to treat 'this.*' and change how we find vars by name +public set[MethodVar] retainLocalVariablesIfDuplicates(set[MethodVar] classFields, set[MethodVar] localVars) { + duplicatedNames = retrieveAllNames(classFields) & retrieveAllNames(localVars); + duplicatedClassFields = { field | MethodVar field <- classFields, field.name in duplicatedNames }; + return (classFields - duplicatedClassFields) + localVars; +} + +private set[str] retrieveAllNames(set[MethodVar] vars) { + return { var.name | MethodVar var <- vars }; } \ No newline at end of file diff --git a/src/refactor/forloop/EnhancedLoopExpression.rsc b/src/refactor/forloop/EnhancedLoopExpression.rsc index e0b445c..29f772d 100644 --- a/src/refactor/forloop/EnhancedLoopExpression.rsc +++ b/src/refactor/forloop/EnhancedLoopExpression.rsc @@ -4,6 +4,7 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import String; +import IO; // XXX Only checking iterable variables defined in method (local and parameter) // Need to verify class and instance variables too! @@ -20,13 +21,14 @@ public bool isIteratingOnCollection(Expression exp, set[MethodVar] localVariable return false; } +// (Object[]) object will be treated as method invocation private bool isExpAnIdentifier(Expression exp) { expStr = unparse(exp); return !contains(expStr, ".") && !contains(expStr, "("); } private bool isIdentifierACollection(Expression exp, set[MethodVar] localVariables) { - varName = unparse(exp); + varName = trim(unparse(exp)); var = findByName(localVariables, varName); return !isTypePlainArray(var) && !isIterable(var); } diff --git a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc index fa34d7d..f42dc63 100644 --- a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc +++ b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc @@ -5,6 +5,7 @@ import lang::java::\syntax::Java18; import ParseTree; import MethodVar; import LocalVariablesFinder; +import LocalVariablesFinderTestResources; import refactor::forloop::EnhancedLoopExpression; public test bool iterableShouldReturnFalse() { @@ -29,4 +30,30 @@ private tuple[MethodHeader methodHeader, MethodBody methodBody] getEnhancedForOn return ; } } +} + +public test bool objectCastedToArrayShouldReturnFalse() { + params = paramsObjectCastedToArray(); + + return isIteratingOnCollection(params.exp, params.localVariables) == false; +} + +private tuple [Expression exp, set[MethodVar] localVariables] paramsObjectCastedToArray() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyObjectCastedToArray.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "List\\> collectClasses(List\ list)"); + localVariables = findLocalVariables(methodHeader, methodBody); + + exp = parse(#Expression, "(Object[]) object"); + + return ; +} + +public test bool iterableParamShouldReturnFalse() { + exp = parse(#Expression, "types"); + methodHeader = iterableParameterMethodHeader(); + methodBody = iterableParameterMethodBody(); + localVariables = findLocalVariables(methodHeader, methodBody); + + return isIteratingOnCollection(exp, localVariables) == false; } \ No newline at end of file diff --git a/testes/localVariables/IterableParameterMethodBody b/testes/localVariables/IterableParameterMethodBody new file mode 100644 index 0000000..9701499 --- /dev/null +++ b/testes/localVariables/IterableParameterMethodBody @@ -0,0 +1,9 @@ +{ + ImmutableList.Builder builder = ImmutableList.builder(); + for (K type : types) { + if (!getRawType(type).isInterface()) { + builder.add(type); + } + } + return super.collectTypes(builder.build()); + } \ No newline at end of file From 4ce0f4dc18742392d6eaf9ec874655c70b971616 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 00:53:07 -0300 Subject: [PATCH 103/156] Identifying methods' parameters inside an anonnymous inner class inside a method. --- src/LocalVariablesFinder.rsc | 11 +++++++---- src/LocalVariablesFinderTest.rsc | 10 ++++++++++ src/LocalVariablesFinderTestResources.rsc | 10 ++++++++++ .../MethodBodyWithAnonnymousInnerClass | 19 +++++++++++++++++++ 4 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 testes/localVariables/MethodBodyWithAnonnymousInnerClass diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 7c3bd92..24842ba 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -12,12 +12,12 @@ public set[MethodVar] findLocalVariables(MethodHeader methodHeader, MethodBody m } private set[MethodVar] findVariablesAsParameters(MethodHeader methodHeader) { - set[MethodVar] methodVars = {}; + set[MethodVar] methodParams = {}; visit(methodHeader) { case (FormalParameter) ` `: - methodVars += createParameterMethodVar(figureIfIsFinal(varMod), varId, varType); + methodParams += createParameterMethodVar(figureIfIsFinal(varMod), varId, varType); } - return methodVars; + return methodParams; } private bool figureIfIsFinal(VariableModifier* varMod) { @@ -55,7 +55,10 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { } } - + // XXX Redundant. Doing this inside MethodHeader and MethodBody + // might just visit the MethodDeclaration here. + case (FormalParameter) ` `: + methodVars += createParameterMethodVar(figureIfIsFinal(varMod), varId, varType); case (LocalVariableDeclaration) ` `: { visit(vdl) { diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index b66c875..74f6e49 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -212,3 +212,13 @@ public test bool shouldParseCorrectTypeFromIterableParameter() { return iterableParam.varType == "Iterable\"; } + +public test bool shouldIdentifyAnonnymousInnerClassMethodParams() { + methodHeader = methodWithAnonnymousInnerClassMethodHeader(); + methodBody = methodWithAnonnymousInnerClassMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + iterableParam = findByName(vars, "types"); + + return iterableParam.varType == "Iterable\"; +} diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index fa7ab14..693c4e6 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -119,4 +119,14 @@ public MethodHeader iterableParameterMethodHeader() { public MethodBody iterableParameterMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/IterableParameterMethodBody|; return parse(#MethodBody, readFile(fileLoc)); +} + +public MethodHeader methodWithAnonnymousInnerClassMethodHeader() { + header = "TypeCollector\ classesOnly()"; + return parse(#MethodHeader, header); +} + +public MethodBody methodWithAnonnymousInnerClassMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyWithAnonnymousInnerClass|; + return parse(#MethodBody, readFile(fileLoc)); } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyWithAnonnymousInnerClass b/testes/localVariables/MethodBodyWithAnonnymousInnerClass new file mode 100644 index 0000000..52cc226 --- /dev/null +++ b/testes/localVariables/MethodBodyWithAnonnymousInnerClass @@ -0,0 +1,19 @@ +{ + return new ForwardingTypeCollector(this) { + @Override + Iterable getInterfaces(K type) { + return ImmutableSet.of(); + } + + @Override + ImmutableList collectTypes(Iterable types) { + ImmutableList.Builder builder = ImmutableList.builder(); + for (K type : types) { + if (!getRawType(type).isInterface()) { + builder.add(type); + } + } + return super.collectTypes(builder.build()); + } + }; + } \ No newline at end of file From 384c08e2c711d3234183d6dc032964cc2993039d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 01:30:14 -0300 Subject: [PATCH 104/156] Removing deprecated test. --- src/refactor/forloop/EnhancedLoopExpression.rsc | 1 - .../forloop/EnhancedLoopExpressionTest.rsc | 17 ----------------- 2 files changed, 18 deletions(-) diff --git a/src/refactor/forloop/EnhancedLoopExpression.rsc b/src/refactor/forloop/EnhancedLoopExpression.rsc index 29f772d..6f2cbbd 100644 --- a/src/refactor/forloop/EnhancedLoopExpression.rsc +++ b/src/refactor/forloop/EnhancedLoopExpression.rsc @@ -21,7 +21,6 @@ public bool isIteratingOnCollection(Expression exp, set[MethodVar] localVariable return false; } -// (Object[]) object will be treated as method invocation private bool isExpAnIdentifier(Expression exp) { expStr = unparse(exp); return !contains(expStr, ".") && !contains(expStr, "("); diff --git a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc index f42dc63..1dea380 100644 --- a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc +++ b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc @@ -32,23 +32,6 @@ private tuple[MethodHeader methodHeader, MethodBody methodBody] getEnhancedForOn } } -public test bool objectCastedToArrayShouldReturnFalse() { - params = paramsObjectCastedToArray(); - - return isIteratingOnCollection(params.exp, params.localVariables) == false; -} - -private tuple [Expression exp, set[MethodVar] localVariables] paramsObjectCastedToArray() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyObjectCastedToArray.java|; - methodBody = parse(#MethodBody, readFile(fileLoc)); - methodHeader = parse(#MethodHeader, "List\\> collectClasses(List\ list)"); - localVariables = findLocalVariables(methodHeader, methodBody); - - exp = parse(#Expression, "(Object[]) object"); - - return ; -} - public test bool iterableParamShouldReturnFalse() { exp = parse(#Expression, "types"); methodHeader = iterableParameterMethodHeader(); From 66852565a4953c221827f82211204909ac174bc4 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 01:37:04 -0300 Subject: [PATCH 105/156] Not refactoring inner loops, loops with while and (if AND else) statements. --- src/refactor/forloop/ProspectiveOperation.rsc | 18 ++++----- .../forloop/ProspectiveOperationTest.rsc | 33 ++++++++++++++++ .../ProspectiveOperationTestResources.rsc | 39 +++++++++++++++++++ testes/ForLoopToFunctional/InnerLoop1.java | 12 ++++++ testes/ForLoopToFunctional/InnerLoop2.java | 19 +++++++++ .../LoopWithInnerWhile.java | 16 ++++++++ .../MethodBodyInnerLoop1.java | 32 +++++++++++++++ .../MethodBodyInnerLoop2.java | 24 ++++++++++++ .../MethodBodyLoopWithInnerWhile.java | 22 +++++++++++ 9 files changed, 206 insertions(+), 9 deletions(-) create mode 100644 testes/ForLoopToFunctional/InnerLoop1.java create mode 100644 testes/ForLoopToFunctional/InnerLoop2.java create mode 100644 testes/ForLoopToFunctional/LoopWithInnerWhile.java create mode 100644 testes/ForLoopToFunctional/MethodBodyInnerLoop1.java create mode 100644 testes/ForLoopToFunctional/MethodBodyInnerLoop2.java create mode 100644 testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index b9ceba5..e790ce2 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -34,21 +34,18 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(St case IfThenStatement ifStmt: { prOps += retrieveProspectiveOperationsFromIfThenStatement(ifStmt); } - case IfThenElseStatement ifElseStmt: { - println("IfThenElseStatement"); - println(ifElseStmt); - println(); - } case ExpressionStatement expStmt: { statement = parse(#Statement, unparse(expStmt)); prOps += retrieveProspectiveOperationFromSingleStatement(statement); } + + case IfThenElseStatement ifElseStmt: throw "Not Refactoring If/Else for now"; + case ForStatement _: throw "Not Refactoring Inner Loops for now"; + case WhileStatement _: throw "Not Refactoring While Loops inside ForStatement for now"; } return prOps; } - -// XXX we might need to save `if (exp)` when a filter is added private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block block) { list[ProspectiveOperation] prOps = []; top-down-break visit(block) { @@ -59,8 +56,7 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block prOps += retrieveProspectiveOperationsFromIfThenStatement(ifThenStmt); } case (IfThenElseStatement) `if ( ) else `: { - //retrieveProspectiveOperationsFromStatement(thenStmt); - println("if else"); + throw "Not Refactoring If/Else for now"; } case LocalVariableDeclarationStatement lvdlStmt: { // not an if, so it's a map @@ -70,6 +66,10 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block statement = parse(#Statement, unparse(otherStmt)); prOps += retrieveProspectiveOperationFromSingleStatement(statement); } + + case IfThenElseStatement ifElseStmt: throw "Not Refactoring If/Else for now"; + case ForStatement _: throw "Not Refactoring Inner Loops for now"; + case WhileStatement _: throw "Not Refactoring While Loops inside ForStatement for now"; } } } diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index a237975..5f5570e 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -94,4 +94,37 @@ public test bool shouldSeparateAndChooseCorrectOperationsOnMultipleMapsEndingWit prospectiveOperations[3].operation == MAP && prospectiveOperations[4].stmt == "expectedEntrySetHash += expectedHash;" && prospectiveOperations[4].operation == REDUCE; +} + +public test bool shouldThrowExceptionWhenInnerLoopIsFound() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop = innerLoop1(); + + try { + prospectiveOperations = retrieveProspectiveOperations(innerLoop.vars, innerLoop.loop); + } catch: + return true; + + return false; +} + +public test bool shouldThrowExceptionWhenAnotherInnerLoopIsFound() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop = innerLoop2(); + + try { + prospectiveOperations = retrieveProspectiveOperations(innerLoop.vars, innerLoop.loop); + } catch: + return true; + + return false; +} + +public test bool shouldThrowExceptionWhenLoopWithInnerWhileIsFound() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithInnerWhile = loopWithInnerWhile(); + + try { + prospectiveOperations = retrieveProspectiveOperations(loopWithInnerWhile.vars, loopWithInnerWhile.loop); + } catch: + return true; + + return false; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc index 2023ae3..3eb96b9 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -59,4 +59,43 @@ private set[MethodVar] multipleMapsAndEndingReducerVars() { methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop1() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/InnerLoop1.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + return ; +} + +private set[MethodVar] innerLoop1Vars() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyInnerLoop1.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "\ Graph\ transitiveClosure(Graph\ graph)"); + return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop2() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/InnerLoop2.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + return ; +} + +private set[MethodVar] innerLoop2Vars() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyInnerLoop2.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "ImmutableList\ getAnnotatedMethodsNotCached(Class\ clazz)"); + return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithInnerWhile() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/LoopWithInnerWhile.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + return ; +} + +private set[MethodVar] loopWithInnerWhileVars() { + fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java|; + methodBody = parse(#MethodBody, readFile(fileLoc)); + methodHeader = parse(#MethodHeader, "ImmutableList\ getAnnotatedMethodsNotCached(Class\ clazz)"); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/InnerLoop1.java b/testes/ForLoopToFunctional/InnerLoop1.java new file mode 100644 index 0000000..ddd4bb8 --- /dev/null +++ b/testes/ForLoopToFunctional/InnerLoop1.java @@ -0,0 +1,12 @@ +for (N node : graph.nodes()) { + if (!visitedNodes.contains(node)) { + Set reachableNodes = reachableNodes(graph, node); + visitedNodes.addAll(reachableNodes); + int pairwiseMatch = 1; // start at 1 to include self-loops + for (N nodeU : reachableNodes) { + for (N nodeV : Iterables.limit(reachableNodes, pairwiseMatch++)) { + transitiveClosure.putEdge(nodeU, nodeV); + } + } + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/InnerLoop2.java b/testes/ForLoopToFunctional/InnerLoop2.java new file mode 100644 index 0000000..4e648e0 --- /dev/null +++ b/testes/ForLoopToFunctional/InnerLoop2.java @@ -0,0 +1,19 @@ +for (Class supertype : supertypes) { + for (Method method : supertype.getDeclaredMethods()) { + if (method.isAnnotationPresent(Subscribe.class) && !method.isSynthetic()) { + // TODO(cgdecker): Should check for a generic parameter type and error out + Class[] parameterTypes = method.getParameterTypes(); + checkArgument( + parameterTypes.length == 1, + "Method %s has @Subscribe annotation but has %s parameters." + + "Subscriber methods must have exactly 1 parameter.", + method, + parameterTypes.length); + + MethodIdentifier ident = new MethodIdentifier(method); + if (!identifiers.containsKey(ident)) { + identifiers.put(ident, method); + } + } + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/LoopWithInnerWhile.java b/testes/ForLoopToFunctional/LoopWithInnerWhile.java new file mode 100644 index 0000000..f494d3c --- /dev/null +++ b/testes/ForLoopToFunctional/LoopWithInnerWhile.java @@ -0,0 +1,16 @@ +for (HttpMessageConverter defaultConverter : defaultConverters) { + Iterator> iterator = processing.iterator(); + while (iterator.hasNext()) { + HttpMessageConverter candidate = iterator.next(); + if (isReplacement(defaultConverter, candidate)) { + combined.add(candidate); + iterator.remove(); + } + } + combined.add(defaultConverter); + if (defaultConverter instanceof AllEncompassingFormHttpMessageConverter) { + configurePartConverters( + (AllEncompassingFormHttpMessageConverter) defaultConverter, + converters); + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyInnerLoop1.java b/testes/ForLoopToFunctional/MethodBodyInnerLoop1.java new file mode 100644 index 0000000..a9dd572 --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyInnerLoop1.java @@ -0,0 +1,32 @@ +{ + MutableGraph transitiveClosure = GraphBuilder.from(graph).allowsSelfLoops(true).build(); + // Every node is, at a minimum, reachable from itself. Since the resulting transitive closure + // will have no isolated nodes, we can skip adding nodes explicitly and let putEdge() do it. + + if (graph.isDirected()) { + // Note: works for both directed and undirected graphs, but we only use in the directed case. + for (N node : graph.nodes()) { + for (N reachableNode : reachableNodes(graph, node)) { + transitiveClosure.putEdge(node, reachableNode); + } + } + } else { + // An optimization for the undirected case: for every node B reachable from node A, + // node A and node B have the same reachability set. + Set visitedNodes = new HashSet(); + for (N node : graph.nodes()) { + if (!visitedNodes.contains(node)) { + Set reachableNodes = reachableNodes(graph, node); + visitedNodes.addAll(reachableNodes); + int pairwiseMatch = 1; // start at 1 to include self-loops + for (N nodeU : reachableNodes) { + for (N nodeV : Iterables.limit(reachableNodes, pairwiseMatch++)) { + transitiveClosure.putEdge(nodeU, nodeV); + } + } + } + } + } + + return transitiveClosure; + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyInnerLoop2.java b/testes/ForLoopToFunctional/MethodBodyInnerLoop2.java new file mode 100644 index 0000000..06915b3 --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyInnerLoop2.java @@ -0,0 +1,24 @@ +{ + Set> supertypes = TypeToken.of(clazz).getTypes().rawTypes(); + Map identifiers = Maps.newHashMap(); + for (Class supertype : supertypes) { + for (Method method : supertype.getDeclaredMethods()) { + if (method.isAnnotationPresent(Subscribe.class) && !method.isSynthetic()) { + // TODO(cgdecker): Should check for a generic parameter type and error out + Class[] parameterTypes = method.getParameterTypes(); + checkArgument( + parameterTypes.length == 1, + "Method %s has @Subscribe annotation but has %s parameters." + + "Subscriber methods must have exactly 1 parameter.", + method, + parameterTypes.length); + + MethodIdentifier ident = new MethodIdentifier(method); + if (!identifiers.containsKey(ident)) { + identifiers.put(ident, method); + } + } + } + } + return ImmutableList.copyOf(identifiers.values()); + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java b/testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java new file mode 100644 index 0000000..895c4dc --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java @@ -0,0 +1,22 @@ +{ + List> combined = new ArrayList<>(); + List> processing = new ArrayList<>(converters); + for (HttpMessageConverter defaultConverter : defaultConverters) { + Iterator> iterator = processing.iterator(); + while (iterator.hasNext()) { + HttpMessageConverter candidate = iterator.next(); + if (isReplacement(defaultConverter, candidate)) { + combined.add(candidate); + iterator.remove(); + } + } + combined.add(defaultConverter); + if (defaultConverter instanceof AllEncompassingFormHttpMessageConverter) { + configurePartConverters( + (AllEncompassingFormHttpMessageConverter) defaultConverter, + converters); + } + } + combined.addAll(0, processing); + return combined; + } \ No newline at end of file From a785c2a4e18241ba80f87b06482e7b5d892530d6 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 13:49:45 -0300 Subject: [PATCH 106/156] PostIncremented and PostDecremented vars should not be effective final. --- src/LocalVariablesFinder.rsc | 5 +++ src/LocalVariablesFinderTest.rsc | 40 +++++++++++++++++ src/LocalVariablesFinderTestResources.rsc | 43 +++++++++++++++++- .../MethodBodyPostDecrementedVar | 44 +++++++++++++++++++ .../MethodBodyPostIncrementedVar | 11 +++++ .../MethodBodyPostIncrementedVar2 | 43 ++++++++++++++++++ .../MethodBodyPostIncrementedVar3 | 8 ++++ 7 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 testes/localVariables/MethodBodyPostDecrementedVar create mode 100644 testes/localVariables/MethodBodyPostIncrementedVar create mode 100644 testes/localVariables/MethodBodyPostIncrementedVar2 create mode 100644 testes/localVariables/MethodBodyPostIncrementedVar3 diff --git a/src/LocalVariablesFinder.rsc b/src/LocalVariablesFinder.rsc index 24842ba..e92efd2 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/LocalVariablesFinder.rsc @@ -71,6 +71,11 @@ private set[MethodVar] findVariablesInsideBody(MethodBody methodBody) { case (Assignment) ` `: nonEffectiveFinalOutsideLoopVars += ""; + case (PreIncrementExpression) `++ `: nonEffectiveFinalOutsideLoopVars += ""; + case (PreDecrementExpression) `-- `: nonEffectiveFinalOutsideLoopVars += ""; + case (PostIncrementExpression) ` ++`: nonEffectiveFinalOutsideLoopVars += ""; + case (PostDecrementExpression) ` --`: nonEffectiveFinalOutsideLoopVars += ""; + case(CatchFormalParameter) ` `: methodVars += createLocalMethodVar(figureIfIsFinal(varMod), varId, varType); diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 74f6e49..d955aeb 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -222,3 +222,43 @@ public test bool shouldIdentifyAnonnymousInnerClassMethodParams() { return iterableParam.varType == "Iterable\"; } + +public test bool postIncrementedVariableInsideLoopShouldBeNonEffectiveFinal() { + methodHeader = postIncrementedVarMethodHeader(); + methodBody = postIncrementedVarMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + i = findByName(vars, "i"); + + return !i.isEffectiveFinal && !isEffectiveFinal(i); +} + +public test bool postIncrementedVariable2InsideLoopShouldBeNonEffectiveFinal() { + methodHeader = postIncrementedVar2MethodHeader(); + methodBody = postIncrementedVar2MethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + i = findByName(vars, "i"); + + return !i.isEffectiveFinal && !isEffectiveFinal(i); +} + +public test bool postIncrementedVariable3InsideLoopShouldBeNonEffectiveFinal() { + methodHeader = postIncrementedVar3MethodHeader(); + methodBody = postIncrementedVar3MethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + i = findByName(vars, "i"); + + return !i.isEffectiveFinal && !isEffectiveFinal(i); +} + +public test bool postDecrementedVariableInsideLoopShouldBeNonEffectiveFinal() { + methodHeader = postDecrementedVarMethodHeader(); + methodBody = postDecrementedVarMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + misses = findByName(vars, "misses"); + + return !misses.isEffectiveFinal && !isEffectiveFinal(misses); +} \ No newline at end of file diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index 693c4e6..c79f349 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -129,4 +129,45 @@ public MethodHeader methodWithAnonnymousInnerClassMethodHeader() { public MethodBody methodWithAnonnymousInnerClassMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyWithAnonnymousInnerClass|; return parse(#MethodBody, readFile(fileLoc)); -} \ No newline at end of file +} + +public MethodHeader postIncrementedVarMethodHeader() { + header = "void processCompleted()"; + return parse(#MethodHeader, header); +} + +public MethodBody postIncrementedVarMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar|; + return parse(#MethodBody, readFile(fileLoc)); +} + +public MethodHeader postIncrementedVar2MethodHeader() { + header = "void init()"; + return parse(#MethodHeader, header); +} + +public MethodBody postIncrementedVar2MethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar2|; + return parse(#MethodBody, readFile(fileLoc)); +} + +public MethodHeader postIncrementedVar3MethodHeader() { + header = "\ ImmutableMap\ indexMap(Collection\ list)"; + return parse(#MethodHeader, header); +} + +public MethodBody postIncrementedVar3MethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar3|; + return parse(#MethodBody, readFile(fileLoc)); +} + + +public MethodHeader postDecrementedVarMethodHeader() { + header = "ImmutableMap\ getAll(Iterable\ keys) throws ExecutionException"; + return parse(#MethodHeader, header); +} + +public MethodBody postDecrementedVarMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; + return parse(#MethodBody, readFile(fileLoc)); +} diff --git a/testes/localVariables/MethodBodyPostDecrementedVar b/testes/localVariables/MethodBodyPostDecrementedVar new file mode 100644 index 0000000..3b9e45f --- /dev/null +++ b/testes/localVariables/MethodBodyPostDecrementedVar @@ -0,0 +1,44 @@ +{ + int hits = 0; + int misses = 0; + + Map result = Maps.newLinkedHashMap(); + Set keysToLoad = Sets.newLinkedHashSet(); +// for (K key : keys) { +// V value = get(key); +// if (!result.containsKey(key)) { +// result.put(key, value); +// if (value == null) { +// misses++; +// keysToLoad.add(key); +// } else { +// hits++; +// } +// } +// } + + try { + if (!keysToLoad.isEmpty()) { + try { + Map newEntries = loadAll(keysToLoad, defaultLoader); + for (K key : keysToLoad) { + V value = newEntries.get(key); + if (value == null) { + throw new InvalidCacheLoadException("loadAll failed to return a value for " + key); + } + result.put(key, value); + } + } catch (UnsupportedLoadingOperationException e) { + // loadAll not implemented, fallback to load + for (K key : keysToLoad) { + misses--; // get will count this miss + result.put(key, get(key, defaultLoader)); + } + } + } + return ImmutableMap.copyOf(result); + } finally { + globalStatsCounter.recordHits(hits); + globalStatsCounter.recordMisses(misses); + } + } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyPostIncrementedVar b/testes/localVariables/MethodBodyPostIncrementedVar new file mode 100644 index 0000000..73e9fc8 --- /dev/null +++ b/testes/localVariables/MethodBodyPostIncrementedVar @@ -0,0 +1,11 @@ +{ + // Collect the values if (a) our output requires collecting them and (b) we haven't been + // collecting them as we go. (We've collected them as we go only if we needed to fail fast) + if (collectsValues & !allMustSucceed) { + int i = 0; + for (ListenableFuture listenable : futures) { + handleOneInputDone(i++, listenable); + } + } + handleAllCompleted(); + } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyPostIncrementedVar2 b/testes/localVariables/MethodBodyPostIncrementedVar2 new file mode 100644 index 0000000..569c8b9 --- /dev/null +++ b/testes/localVariables/MethodBodyPostIncrementedVar2 @@ -0,0 +1,43 @@ +{ + // Corner case: List is empty. + if (futures.isEmpty()) { + handleAllCompleted(); + return; + } + + // NOTE: If we ever want to use a custom executor here, have a look at CombinedFuture as we'll + // need to handle RejectedExecutionException + if (allMustSucceed) { + // We need fail fast, so we have to keep track of which future failed so we can propagate + // the exception immediately + + // Register a listener on each Future in the list to update the state of this future. + // Note that if all the futures on the list are done prior to completing this loop, the last + // call to addListener() will callback to setOneValue(), transitively call our cleanup + // listener, and set this.futures to null. + // This is not actually a problem, since the foreach only needs this.futures to be non-null + // at the beginning of the loop. + int i = 0; + for (final ListenableFuture listenable : futures) { + final int index = i++; + listenable.addListener( + new Runnable() { + @Override + public void run() { + try { + handleOneInputDone(index, listenable); + } finally { + decrementCountAndMaybeComplete(); + } + } + }, + directExecutor()); + } + } else { + // We'll only call the callback when all futures complete, regardless of whether some failed + // Hold off on calling setOneValue until all complete, so we can share the same listener + for (ListenableFuture listenable : futures) { + listenable.addListener(this, directExecutor()); + } + } + } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyPostIncrementedVar3 b/testes/localVariables/MethodBodyPostIncrementedVar3 new file mode 100644 index 0000000..0253d77 --- /dev/null +++ b/testes/localVariables/MethodBodyPostIncrementedVar3 @@ -0,0 +1,8 @@ +{ + ImmutableMap.Builder builder = new ImmutableMap.Builder(list.size()); + int i = 0; + for (E e : list) { + builder.put(e, i++); + } + return builder.build(); + } \ No newline at end of file From 1a1b0ed6cb5a853a6d81ca5241d2edd15f6bbabc Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 107/156] Assuring that assignment inside loop renders a non effective final var. --- src/LocalVariablesFinderTest.rsc | 18 ++++++++++++++---- src/LocalVariablesFinderTestResources.rsc | 10 ++++++++++ .../MethodBodyAssignmentInsideLoop | 11 +++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 testes/localVariables/MethodBodyAssignmentInsideLoop diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index d955aeb..1847737 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -223,7 +223,7 @@ public test bool shouldIdentifyAnonnymousInnerClassMethodParams() { return iterableParam.varType == "Iterable\"; } -public test bool postIncrementedVariableInsideLoopShouldBeNonEffectiveFinal() { +public test bool postIncrementedVariableInsideLoopShouldNotBeEffectiveFinal() { methodHeader = postIncrementedVarMethodHeader(); methodBody = postIncrementedVarMethodBody(); @@ -233,7 +233,7 @@ public test bool postIncrementedVariableInsideLoopShouldBeNonEffectiveFinal() { return !i.isEffectiveFinal && !isEffectiveFinal(i); } -public test bool postIncrementedVariable2InsideLoopShouldBeNonEffectiveFinal() { +public test bool postIncrementedVariable2InsideLoopShouldNotBeEffectiveFinal() { methodHeader = postIncrementedVar2MethodHeader(); methodBody = postIncrementedVar2MethodBody(); @@ -243,7 +243,7 @@ public test bool postIncrementedVariable2InsideLoopShouldBeNonEffectiveFinal() { return !i.isEffectiveFinal && !isEffectiveFinal(i); } -public test bool postIncrementedVariable3InsideLoopShouldBeNonEffectiveFinal() { +public test bool postIncrementedVariable3InsideLoopShouldNotBeEffectiveFinal() { methodHeader = postIncrementedVar3MethodHeader(); methodBody = postIncrementedVar3MethodBody(); @@ -253,7 +253,7 @@ public test bool postIncrementedVariable3InsideLoopShouldBeNonEffectiveFinal() { return !i.isEffectiveFinal && !isEffectiveFinal(i); } -public test bool postDecrementedVariableInsideLoopShouldBeNonEffectiveFinal() { +public test bool postDecrementedVariableInsideLoopShouldNotBeEffectiveFinal() { methodHeader = postDecrementedVarMethodHeader(); methodBody = postDecrementedVarMethodBody(); @@ -261,4 +261,14 @@ public test bool postDecrementedVariableInsideLoopShouldBeNonEffectiveFinal() { misses = findByName(vars, "misses"); return !misses.isEffectiveFinal && !isEffectiveFinal(misses); +} + +public test bool variableAssignedInsideLoopShouldNotBeEffectiveFinal() { + methodHeader = assignmentInsideForMethodHeader(); + methodBody = assignmentInsideForMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + exceptions = findByName(vars, "exceptions"); + + return !exceptions.isEffectiveFinal && !isEffectiveFinal(exceptions); } \ No newline at end of file diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index c79f349..e8c3665 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -171,3 +171,13 @@ public MethodBody postDecrementedVarMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; return parse(#MethodBody, readFile(fileLoc)); } + +public MethodHeader assignmentInsideForMethodHeader() { + header = "Collection\ deleteDirectoryContentsInsecure(DirectoryStream\ dir)"; + return parse(#MethodHeader, header); +} + +public MethodBody assignmentInsideForMethodBody() { + fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyAssignmentInsideLoop|; + return parse(#MethodBody, readFile(fileLoc)); +} \ No newline at end of file diff --git a/testes/localVariables/MethodBodyAssignmentInsideLoop b/testes/localVariables/MethodBodyAssignmentInsideLoop new file mode 100644 index 0000000..8b30e1a --- /dev/null +++ b/testes/localVariables/MethodBodyAssignmentInsideLoop @@ -0,0 +1,11 @@ +{ + Collection exceptions = null; + try { + for (Path entry : dir) { + exceptions = concat(exceptions, deleteRecursivelyInsecure(entry)); + } + return exceptions; + } catch (DirectoryIteratorException e) { + return addException(exceptions, e.getCause()); + } + } \ No newline at end of file From 85d66cccd1ff1bdb627dbeaf1be447fb6f1ae739 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 108/156] Names that reveal more intention in ForLoop --- src/ForLoop.rsc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index 2327bae..c4bfe3f 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -69,9 +69,9 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth top-down visit(forStmt) { case EnhancedForStatement enhancedForStmt: { visit(enhancedForStmt) { - case (EnhancedForStatement) `for ( : ) `: { + case (EnhancedForStatement) `for ( : ) `: { - if(isLoopRefactorable(availableVars, collectionId, stmt)) { + if(isLoopRefactorable(availableVars, collectionId, loopBody)) { try { refactored = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); @@ -97,13 +97,13 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth } } -private bool isLoopRefactorable(set[MethodVar] methodLocalVariables, Expression exp, Statement stmt) { - return loopBodyPassConditions(stmt) && isIteratingOnCollection(exp, methodLocalVariables) && - atMostOneReferenceToNonEffectiveFinalVar(methodLocalVariables, stmt); +private bool isLoopRefactorable(set[MethodVar] methodLocalVariables, Expression collectionId, Statement loopBody) { + return loopBodyPassConditions(loopBody) && isIteratingOnCollection(collectionId, methodLocalVariables) && + atMostOneReferenceToNonEffectiveFinalVar(methodLocalVariables, loopBody); } // TODO extract module and test it -private bool loopBodyPassConditions(Statement stmt) { +private bool loopBodyPassConditions(Statement loopBody) { returnCount = 0; visit(stmt) { case (ThrowStatement) `throw new ( );`: { From cb7cb060e8414c0419d692ecdacdf7d8f4596c98 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 109/156] More robust implementation of ForLoopBodyReferences. - Really similar implementation of UsedVariables. --- .../forloop/ForLoopBodyReferences.rsc | 30 +++++++--- .../forloop/ForLoopToFunctionalTest.rsc | 1 - .../test/ForLoopBodyReferencesTest.rsc | 60 +++++++++++++++++++ 3 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc diff --git a/src/refactor/forloop/ForLoopBodyReferences.rsc b/src/refactor/forloop/ForLoopBodyReferences.rsc index 431288f..84b81d4 100644 --- a/src/refactor/forloop/ForLoopBodyReferences.rsc +++ b/src/refactor/forloop/ForLoopBodyReferences.rsc @@ -7,18 +7,34 @@ import IO; import Set; import MethodVar; -// TODO still need to find effective final vars somewhere. public bool atMostOneReferenceToNonEffectiveFinalVar(set[MethodVar] localVariables, Statement loopBody) { - varsReferenced = findVariablesReferenced(loopBody); - return size(varsReferenced) <= 1; + return getTotalOfNonEffectiveFinalVarsReferenced(localVariables, loopBody) <= 1; } -private set[str] findVariablesReferenced(Statement stmt) { +public int getTotalOfNonEffectiveFinalVarsReferenced(set[MethodVar] localVariables, Statement loopBody) { + varsReferencedNames = findVariablesReferenced(loopBody); + nonEffectiveFinalVarsReferencedCount = 0; + + for (varReferencedName <- varsReferencedNames) { + var = findByName(localVariables, varReferencedName); + if (!isEffectiveFinal(var) && !var.isDeclaredWithinLoop) + nonEffectiveFinalVarsReferencedCount += 1; + } + + return nonEffectiveFinalVarsReferencedCount; +} + +// XXX UsedVariables could use the same thing +// XXX Ignoring class fields. ('this.x') +public set[str] findVariablesReferenced(Statement loopBody) { set[str] varsReferenced = {}; - visit (stmt) { - case (Assignment) ` `: - varsReferenced += trim(unparse(lhs)); + visit (loopBody) { + case ExpressionName expName: { + visit(expName) { + case Identifier id: varsReferenced += unparse(id); + } + } } return varsReferenced; diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 6de92de..9b5b39a 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -58,7 +58,6 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { // return false; //} -// TODO Complete the test with full output when REDUCE implemented public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); diff --git a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc new file mode 100644 index 0000000..0e08b50 --- /dev/null +++ b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc @@ -0,0 +1,60 @@ +module refactor::forloop::\test::ForLoopBodyReferencesTest + +import IO; +import lang::java::\syntax::Java18; +import ParseTree; +import Set; +import refactor::forloop::ForLoopBodyReferences; +import MethodVar; + +public test bool variablesReferenced1() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWith3StatementsMapBody.java|; + forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); + + result = findVariablesReferenced(loopBody); + + return size(result) == 5 && + "previous" in result && + "snapshot" in result && + "updated" in result && + "changedFiles" in result && + "changeSet" in result; +} + +private Statement retrieveLoopBodyFromEnhancedFor(EnhancedForStatement forStmt) { + visit (forStmt) { + case (EnhancedForStatement) `for ( : ) `: + return loopBody; + } + throw "Error"; +} + +public test bool variablesReferenced2() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWithMultiStatementMap.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); + + result = findVariablesReferenced(loopBody); + + return size(result) == 5 && + "key" in result && + "keysIt" in result && + "value" in result && + "v" in result && + "result" in result; +} + +public test bool variablesReferenced3() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); + + result = findVariablesReferenced(loopBody); + + return size(result) == 4 && + "map" in result && + "entry" in result && + "expectedHash" in result && + "expectedEntrySetHash" in result; +} \ No newline at end of file From 9f4f044c6b90cc16c1676b5f6c4734a4eb62a105 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 110/156] Removing parenthesis from lambda arguments when functional refactor is only a forEach. --- src/refactor/forloop/ForLoopToFunctional.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 34ff805..c1983ab 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -269,7 +269,7 @@ private Statement buildFunctionalStatement(set[MethodVar] methodVars, list[Compo private Statement buildStatementForOnlyOneForEach(ProspectiveOperation prOp, VariableDeclaratorId iteratedVarName, Expression collectionId) { stmtBlock = transformIntoBlock(prOp.stmt); iteratedVarName = trimEndingBlankSpace(iteratedVarName); - return parse(#Statement, ".forEach(() -\> );"); + return parse(#Statement, ".forEach( -\> );"); } private Block transformIntoBlock(str stmt) { From 0af923fef33df5e07b34305cd0b1a358f5ded5a6 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 111/156] Only refactoring loops with one reference to outside NonEffectiveFinal if it's a reducer. --- src/refactor/forloop/ForLoopBodyReferences.rsc | 12 ++++++++++++ src/refactor/forloop/ForLoopToFunctional.rsc | 5 +++-- .../forloop/ForLoopToFunctionalTest.rsc | 18 ++++++++++++++++++ src/refactor/forloop/ProspectiveOperation.rsc | 11 +++++++++-- .../forloop/test/ForLoopBodyReferencesTest.rsc | 8 -------- 5 files changed, 42 insertions(+), 12 deletions(-) diff --git a/src/refactor/forloop/ForLoopBodyReferences.rsc b/src/refactor/forloop/ForLoopBodyReferences.rsc index 84b81d4..e16cb40 100644 --- a/src/refactor/forloop/ForLoopBodyReferences.rsc +++ b/src/refactor/forloop/ForLoopBodyReferences.rsc @@ -11,6 +11,18 @@ public bool atMostOneReferenceToNonEffectiveFinalVar(set[MethodVar] localVariabl return getTotalOfNonEffectiveFinalVarsReferenced(localVariables, loopBody) <= 1; } +public int getTotalOfNonEffectiveFinalVarsReferenced(set[MethodVar] localVariables, EnhancedForStatement forStmt) { + return getTotalOfNonEffectiveFinalVarsReferenced(localVariables, retrieveLoopBodyFromEnhancedFor(forStmt)); +} + +public Statement retrieveLoopBodyFromEnhancedFor(EnhancedForStatement forStmt) { + visit (forStmt) { + case (EnhancedForStatement) `for ( : ) `: + return loopBody; + } + throw "Error"; +} + public int getTotalOfNonEffectiveFinalVarsReferenced(set[MethodVar] localVariables, Statement loopBody) { varsReferencedNames = findVariablesReferenced(loopBody); nonEffectiveFinalVarsReferencedCount = 0; diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index c1983ab..a694f24 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -11,7 +11,7 @@ import refactor::forloop::ProspectiveOperation; import refactor::forloop::UsedVariables; import refactor::forloop::AvailableVariables; import refactor::forloop::OperationType; -import ParseTreeVisualization; +import refactor::forloop::ForLoopBodyReferences; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); @@ -38,7 +38,8 @@ MethodBody refactorToFunctional(MethodBody methodBody, Statement forStmt, Statem public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperations(set[MethodVar] methodVars, EnhancedForStatement forStmt) { prospectiveOperations = retrieveProspectiveOperations(methodVars, forStmt); - if (canOperationsBeRefactored(prospectiveOperations)) { + nonEffectiveOutsideVarsReferencedCount = getTotalOfNonEffectiveFinalVarsReferenced(methodVars, forStmt); + if (canOperationsBeRefactored(prospectiveOperations, nonEffectiveOutsideVarsReferencedCount)) { composablePrOps = createComposableProspectiveOperationsWithVariableAvailability(prospectiveOperations, methodVars); composablePrOps = mergeIntoComposableOperations(composablePrOps); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 9b5b39a..33bb787 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -7,6 +7,7 @@ import ParseTree; import refactor::forloop::ForLoopToFunctional; import MethodVar; import LocalVariablesFinder; +import LocalVariablesFinderTestResources; import ParseTreeVisualization; public test bool ex1() { @@ -101,4 +102,21 @@ public test bool shouldAddCorrectReturnTo3StmtsMapBody() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); return unparse(refactoredStatement) == "snapshots.stream().map(snapshot -\> {\nFolderSnapshot previous = this.folders.get(snapshot.getFolder());\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\nreturn changedFiles;\n}).filter(changedFiles -\> !changedFiles.getFiles().isEmpty()).forEach(changedFiles -\> {\nchangeSet.add(changedFiles);\n});"; +} + +public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEffectiveFinalVarIsNotAReducer() { + methodHeader = assignmentInsideForMethodHeader(); + methodBody = assignmentInsideForMethodBody(); + methodVars = findLocalVariables(methodHeader, methodBody); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); + Expression collectionId = parse(#Expression, "dir"); + EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Path entry : dir) {\n exceptions = concat(exceptions, deleteRecursivelyInsecure(entry));\n }"); + + try { + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + } catch: + return true; + + return false; + } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index e790ce2..424c120 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -185,8 +185,9 @@ public bool isLocalVariableDeclarationStatement(str stmt) { } catch: return false; } -public bool canOperationsBeRefactored(list[ProspectiveOperation] prOps) { - return !haveEagerOperationAsNonLast(prOps); +public bool canOperationsBeRefactored(list[ProspectiveOperation] prOps, int nonEffectiveOutsideVarsReferencedCount) { + return !haveEagerOperationAsNonLast(prOps) + && isLoopAReducerIfHasMoreThanOneReferenceToOutsideNonEffectiveFinalVar(prOps, nonEffectiveOutsideVarsReferencedCount); } private bool haveEagerOperationAsNonLast(list[ProspectiveOperation] prOps) { @@ -195,4 +196,10 @@ private bool haveEagerOperationAsNonLast(list[ProspectiveOperation] prOps) { if(isEagerOperation(prOp)) return true; return false; +} + +private bool isLoopAReducerIfHasMoreThanOneReferenceToOutsideNonEffectiveFinalVar(list[ProspectiveOperation] prOps, int outsideNonEffectiveReferencesCount) { + if (outsideNonEffectiveReferencesCount == 1) + return isReduce(last(prOps)); + return true; } \ No newline at end of file diff --git a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc index 0e08b50..2f44aa3 100644 --- a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc +++ b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc @@ -22,14 +22,6 @@ public test bool variablesReferenced1() { "changeSet" in result; } -private Statement retrieveLoopBodyFromEnhancedFor(EnhancedForStatement forStmt) { - visit (forStmt) { - case (EnhancedForStatement) `for ( : ) `: - return loopBody; - } - throw "Error"; -} - public test bool variablesReferenced2() { fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWithMultiStatementMap.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); From 85fc52c4b46f1226b9c45e754efccf0a994a35c1 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 112/156] More test cases when loop with one reference to outside NEFV is not a reduce --- src/LocalVariablesFinderTest.rsc | 12 ++++++++ src/LocalVariablesFinderTestResources.rsc | 10 +++++++ src/refactor/forloop/ForLoopToFunctional.rsc | 1 - .../forloop/ForLoopToFunctionalTest.rsc | 20 +++++++++++-- .../test/ForLoopBodyReferencesTest.rsc | 28 +++++++++++++++++++ ...WithTwoReferencesToOutsideNonEffectiveVars | 18 ++++++++++++ 6 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars diff --git a/src/LocalVariablesFinderTest.rsc b/src/LocalVariablesFinderTest.rsc index 1847737..7074abc 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/LocalVariablesFinderTest.rsc @@ -271,4 +271,16 @@ public test bool variableAssignedInsideLoopShouldNotBeEffectiveFinal() { exceptions = findByName(vars, "exceptions"); return !exceptions.isEffectiveFinal && !isEffectiveFinal(exceptions); +} + +public test bool arrayAssignmentShouldStillKeepVarAsEffectiveFinal() { + methodHeader = twoNonEffectiveFinalVarsInsideLoopMethodHeader(); + methodBody = twoNonEffectiveFinalVarsInsideLoopMethodBody(); + + vars = findLocalVariables(methodHeader, methodBody); + + i = findByName(vars, "i"); + cumulativeCounts = findByName(vars, "cumulativeCounts"); + + return !isEffectiveFinal(i) && isEffectiveFinal(cumulativeCounts); } \ No newline at end of file diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/LocalVariablesFinderTestResources.rsc index e8c3665..10e3506 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/LocalVariablesFinderTestResources.rsc @@ -180,4 +180,14 @@ public MethodHeader assignmentInsideForMethodHeader() { public MethodBody assignmentInsideForMethodBody() { fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyAssignmentInsideLoop|; return parse(#MethodBody, readFile(fileLoc)); +} + +public MethodHeader twoNonEffectiveFinalVarsInsideLoopMethodHeader() { + header = "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"; + return parse(#MethodHeader, header); +} + +public MethodBody twoNonEffectiveFinalVarsInsideLoopMethodBody() { + methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + return parse(#MethodBody, readFile(methodBodyLoc)); } \ No newline at end of file diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index a694f24..659305c 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -46,7 +46,6 @@ public list[ComposableProspectiveOperation] retrieveComposableProspectiveOperati return rearrangeMapBodiesIfNeeded(composablePrOps); } else - // Throwing the exception is not the best option, but the easiest to implement right now throw "CanNotBeRefactored"; } diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 33bb787..440cee6 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -117,6 +117,22 @@ public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEf } catch: return true; - return false; - + return false; +} + +public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEffectiveFinalVarIsNotAReducer2() { + methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); + methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodVars = findLocalVariables(methodHeader, methodBody); + forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); + Expression collectionId = parse(#Expression, "entries"); + + try { + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + } catch: + return true; + + return false; } \ No newline at end of file diff --git a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc index 2f44aa3..cd68379 100644 --- a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc +++ b/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc @@ -6,6 +6,7 @@ import ParseTree; import Set; import refactor::forloop::ForLoopBodyReferences; import MethodVar; +import LocalVariablesFinder; public test bool variablesReferenced1() { fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWith3StatementsMapBody.java|; @@ -49,4 +50,31 @@ public test bool variablesReferenced3() { "entry" in result && "expectedHash" in result && "expectedEntrySetHash" in result; +} + +public test bool variablesReferenced4() { + forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); + + result = findVariablesReferenced(loopBody); + + return size(result) == 4 && + "elementsBuilder" in result && + "entry" in result && + "cumulativeCounts" in result && + "i" in result; + +} + +public test bool shouldBeRefactorableWhenOneReferenceFound() { + methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); + methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + localVariables = findLocalVariables(methodHeader, methodBody); + forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + + total = getTotalOfNonEffectiveFinalVarsReferenced(localVariables, forStmt); + refactorable = atMostOneReferenceToNonEffectiveFinalVar(localVariables, retrieveLoopBodyFromEnhancedFor(forStmt)); + + return total == 1 && refactorable; } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars b/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars new file mode 100644 index 0000000..74ecedd --- /dev/null +++ b/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars @@ -0,0 +1,18 @@ +{ + if (entries.isEmpty()) { + return emptyMultiset(comparator); + } + ImmutableList.Builder elementsBuilder = new ImmutableList.Builder(entries.size()); + long[] cumulativeCounts = new long[entries.size() + 1]; + int i = 0; + for (Entry entry : entries) { + elementsBuilder.add(entry.getElement()); + cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount(); + i++; + } + return new RegularImmutableSortedMultiset( + new RegularImmutableSortedSet(elementsBuilder.build(), comparator), + cumulativeCounts, + 0, + entries.size()); + } \ No newline at end of file From a03b29dc1a53e907e21b47986f9d0c7f93328375 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 113/156] Writing tests to not yet implemented reduce with post increment. --- .../forloop/ForLoopToFunctionalTest.rsc | 19 +++++++++++++++++++ .../forloop/ProspectiveOperationTest.rsc | 13 +++++++++++++ .../ProspectiveOperationTestResources.rsc | 12 ++++++++++++ .../MethodBodyReduceWithPostIncrement | 18 ++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 testes/localVariables/MethodBodyReduceWithPostIncrement diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 440cee6..ddbe415 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -129,6 +129,25 @@ public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEf VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); Expression collectionId = parse(#Expression, "entries"); + try { + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + } catch: + return true; + + return false; +} + +public test bool shouldRefactorToReduceWithPostIncrement() { + throw "Not yet implemented"; + + methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); + methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodVars = findLocalVariables(methodHeader, methodBody); + forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); + Expression collectionId = parse(#Expression, "entries"); + try { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); } catch: diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index 5f5570e..7b496eb 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -127,4 +127,17 @@ public test bool shouldThrowExceptionWhenLoopWithInnerWhileIsFound() { return true; return false; +} + +public test bool shouldIdentifyPostIncrementAsReduce() { + throw "Not yet implemented"; + + tuple [set[MethodVar] vars, EnhancedForStatement loop] loopReduceWithPostIncrement = loopReduceWithPostIncrement(); + + prospectiveOperations = retrieveProspectiveOperations(loopReduceWithPostIncrement.vars, loopReduceWithPostIncrement.loop); + + println(prospectiveOperations); + + return false; + } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc index 3eb96b9..4a2fe29 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -98,4 +98,16 @@ private set[MethodVar] loopWithInnerWhileVars() { methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "ImmutableList\ getAnnotatedMethodsNotCached(Class\ clazz)"); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopReduceWithPostIncrement() { + forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + return ; +} + +private set[MethodVar] loopReduceWithPostIncrementVars() { + methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); + methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file diff --git a/testes/localVariables/MethodBodyReduceWithPostIncrement b/testes/localVariables/MethodBodyReduceWithPostIncrement new file mode 100644 index 0000000..f200967 --- /dev/null +++ b/testes/localVariables/MethodBodyReduceWithPostIncrement @@ -0,0 +1,18 @@ +{ + if (entries.isEmpty()) { + return emptyMultiset(comparator); + } + ImmutableList.Builder elementsBuilder = new ImmutableList.Builder(entries.size()); + long[] cumulativeCounts = new long[entries.size() + 1]; + int i = 0; + for (Entry entry : entries) { + elementsBuilder.add(entry.getElement()); + // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount(); + i++; + } + return new RegularImmutableSortedMultiset( + new RegularImmutableSortedSet(elementsBuilder.build(), comparator), + cumulativeCounts, + 0, + entries.size()); + } \ No newline at end of file From c6bacc4ad503e7079bcc450d651f44a083eb61a1 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 114/156] Keeping one single statement block as blocks when breaking operations. - As we were breaking operations, the single statement block was broken as an operation, and the block was dismissed. - Workaroundish solution for now. Not breaking regression and passing new one. --- src/refactor/forloop/ProspectiveOperation.rsc | 22 ++++++++++++++++++- .../forloop/ProspectiveOperationTest.rsc | 15 +++++++++++++ .../ProspectiveOperationTestResources.rsc | 12 ++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 424c120..3e37aca 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -95,7 +95,10 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem if (!foundReturn) { prOps += prospectiveOperation(unparse(exp), FILTER); - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + if (isSingleStatementBlock(thenStmt)) + prOps += retrieveProspectiveOperationFromSingleStatement(thenStmt); + else + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); } } } @@ -133,6 +136,23 @@ private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { return !isEffectiveFinal(var); } +// XXX Does this really work? +private bool isSingleStatementBlock(Statement thenStmt) { + if (isBlock("")) { + semiCollonOccurrences = findAll("", ";"); + return size(semiCollonOccurrences) == 1; + } + + return false; +} + +private bool isBlock(str stmt) { + try { + parse(#Block, stmt); + return true; + } catch: return false; +} + private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation] prOps) { lastPrOp = prOps[-1]; if(lastPrOp.operation == MAP) diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index 7b496eb..bffe3dd 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -139,5 +139,20 @@ public test bool shouldIdentifyPostIncrementAsReduce() { println(prospectiveOperations); return false; +} + +public test bool shouldKeepBlockAfterAnIf() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowStatement = loopWithThrowStatement(); + prospectiveOperations = retrieveProspectiveOperations(loopWithThrowStatement.vars, loopWithThrowStatement.loop); + + return size(prospectiveOperations) == 4 && + prospectiveOperations[0].stmt == "V value = newEntries.get(key);" && + prospectiveOperations[0].operation == MAP && + prospectiveOperations[1].stmt == "value == null" && + prospectiveOperations[1].operation == FILTER && + prospectiveOperations[2].stmt == "{\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }" && + prospectiveOperations[2].operation == MAP && + prospectiveOperations[3].stmt == "result.put(key, value);" && + prospectiveOperations[3].operation == FOR_EACH; } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc index 4a2fe29..75c3d51 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -110,4 +110,16 @@ private set[MethodVar] loopReduceWithPostIncrementVars() { methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowStatement() { + forStmt = parse(#EnhancedForStatement, "for (K key : keysToLoad) {\n V value = newEntries.get(key);\n if (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }\n result.put(key, value);\n }"); + return ; +} + +private set[MethodVar] loopWithThrowStatementVars() { + methodHeader = parse(#MethodHeader, "ImmutableMap\ getAll(Iterable\ keys) throws ExecutionException"); + methodBodyLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file From cfc29870450412a69d0e1d07df1cb44925b1f51c Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 4 May 2017 18:38:40 -0300 Subject: [PATCH 115/156] Fixing some tests because our output changed when we kept blocks. - As we kept single stmt blocks intact, we might have preserved some identation. --- src/refactor/forloop/ForLoopToFunctionalTest.rsc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index ddbe415..9886e3d 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -8,7 +8,6 @@ import refactor::forloop::ForLoopToFunctional; import MethodVar; import LocalVariablesFinder; import LocalVariablesFinderTestResources; -import ParseTreeVisualization; public test bool ex1() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T1.java|; @@ -21,7 +20,7 @@ public test bool ex1() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - return unparse(refactoredStatement) == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\nsuite.addTest(testerSuite);\n});"; + return "" == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\n suite.addTest(testerSuite);\n });"; } public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { @@ -86,7 +85,7 @@ public test bool shouldAddReturnToMapWithMoreThanOneStatement() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - return unparse(refactoredStatement) == "values.stream().map(v -\> {\nString key = keysIt.next();\nMetric\ value = deserialize(key, v, this.zSetOperations.score(key));\nreturn value;\n}).filter(value -\> value != null).forEach(value -\> {\nresult.add(value);\n});"; + return "" == "values.stream().map(v -\> {\nString key = keysIt.next();\nMetric\ value = deserialize(key, v, this.zSetOperations.score(key));\nreturn value;\n}).filter(value -\> value != null).forEach(value -\> {\r\n\t\t\t\tresult.add(value);\r\n\t\t\t});"; } public test bool shouldAddCorrectReturnTo3StmtsMapBody() { @@ -101,7 +100,7 @@ public test bool shouldAddCorrectReturnTo3StmtsMapBody() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - return unparse(refactoredStatement) == "snapshots.stream().map(snapshot -\> {\nFolderSnapshot previous = this.folders.get(snapshot.getFolder());\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\nreturn changedFiles;\n}).filter(changedFiles -\> !changedFiles.getFiles().isEmpty()).forEach(changedFiles -\> {\nchangeSet.add(changedFiles);\n});"; + return "" == "snapshots.stream().map(snapshot -\> {\nFolderSnapshot previous = this.folders.get(snapshot.getFolder());\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\nreturn changedFiles;\n}).filter(changedFiles -\> !changedFiles.getFiles().isEmpty()).forEach(changedFiles -\> {\r\n changeSet.add(changedFiles);\r\n });"; } public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEffectiveFinalVarIsNotAReducer() { From 62aff87304660c4798c13e93d0868f7da3d9aca2 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Wed, 10 May 2017 00:23:29 -0300 Subject: [PATCH 116/156] Trying to break the loop body in statements. - Main reason for now is to know if an if statement is the last statement. - Still need to figure out block inside blocks. -- The logic is probably the same, but we need to identify when there is an inner block, and then call this method. - If this works well enough, the whole ProspectiveOperation visit logic can be refactored. --- src/refactor/forloop/BreakIntoStatements.rsc | 37 ++++++++ .../forloop/test/BreakIntoStatementsTest.rsc | 88 +++++++++++++++++++ ...IfWithTwoStmtsInsideAndStmtAfterBlock.java | 12 +++ ...IfWithTwoStmtsInsideAndStmtAfterBlock.java | 20 +++++ 4 files changed, 157 insertions(+) create mode 100644 src/refactor/forloop/BreakIntoStatements.rsc create mode 100644 src/refactor/forloop/test/BreakIntoStatementsTest.rsc create mode 100644 testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java create mode 100644 testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java diff --git a/src/refactor/forloop/BreakIntoStatements.rsc b/src/refactor/forloop/BreakIntoStatements.rsc new file mode 100644 index 0000000..289aaa5 --- /dev/null +++ b/src/refactor/forloop/BreakIntoStatements.rsc @@ -0,0 +1,37 @@ +module refactor::forloop::BreakIntoStatements + +import IO; +import List; +import String; +import lang::java::\syntax::Java18; +import ParseTree; + +data Stmt = stmt(Tree statement, str stmtType); + +public list[Stmt] breakIntoStatements(Statement statement) { + list[Stmt] stmts = []; + top-down-break visit(statement) { + case IfThenStatement ifStmt: { + stmts += stmt(ifStmt, "IfThenStatement"); + } + case ExpressionStatement expStmt: { + stmts += stmt(expStmt, "ExpressionStatement"); + } + case LocalVariableDeclarationStatement lvdlStmt: { + stmts += stmt(lvdlStmt, "LocalVariableDeclarationStatement"); + } + + case IfThenElseStatement ifElseStmt: throw "Not Refactoring If/Else for now"; + case ForStatement _: throw "Not Refactoring Inner Loops for now"; + case WhileStatement _: throw "Not Refactoring While Loops inside ForStatement for now"; + } + return stmts; +} + +public void printStmtsBrokenInto(list[Stmt] stmts) { + for (stmt <- stmts) { + println("type: "); + println("stmt: "); + println(); + } +} \ No newline at end of file diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc new file mode 100644 index 0000000..51aa688 --- /dev/null +++ b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc @@ -0,0 +1,88 @@ +module refactor::forloop::\test::BreakIntoStatementsTest + +import IO; +import refactor::forloop::BreakIntoStatements; +import lang::java::\syntax::Java18; +import refactor::forloop::ProspectiveOperationTestResources; +import refactor::forloop::ForLoopBodyReferences; +import ParseTree; +import ParseTreeVisualization; + +public test bool ex1() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/SimpleShortEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + + Stmt stmt = stmts[0]; + return size(stmts) == 1 && + "" == "writer.write(thing);" && + stmt.stmtType == "ExpressionStatement"; +} + +public test bool ex2() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + + return size(stmts) == 2 && + "" == "if(e.getGrammarName() == null) continue;" && + stmts[1].stmtType == "IfThenStatement" && + "" == "if(e.getGrammarName().equals(grammarName))\r\n return true;" && + stmts[1].stmtType == "IfThenStatement"; +} + +public test bool ex3() { + fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterMapReduceEnhancedLoop|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + + Stmt stmt = stmts[0]; + return size(stmts) == 1 && + "" == "if(rule.hasErrors())\r\n count += rule.getErrors().size();" && + stmt.stmtType == "IfThenStatement"; +} + +public test bool ex4() { + enhancedForLoop = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + + return size(stmts) == 2 && + "" == "elementsBuilder.add(entry.getElement());" && + stmts[0].stmtType == "ExpressionStatement" && + "" == "i++;" && + stmts[1].stmtType == "ExpressionStatement"; +} + +public test bool ex5() { + enhancedForLoop = parse(#EnhancedForStatement, "for (K key : keysToLoad) {\n V value = newEntries.get(key);\n if (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }\n result.put(key, value);\n }"); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + + return size(stmts) == 3 && + "" == "V value = newEntries.get(key);" && + stmts[0].stmtType == "LocalVariableDeclarationStatement" && + "" == "if (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }" && + stmts[1].stmtType == "IfThenStatement" && + "" == "result.put(key, value);" && + stmts[2].stmtType == "ExpressionStatement"; +} + +public test bool ex6() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileForLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + + stmts = breakIntoStatements(loopBody); + printStmtsBrokenInto(stmts); + + return false; +} \ No newline at end of file diff --git a/testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java b/testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java new file mode 100644 index 0000000..6022143 --- /dev/null +++ b/testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java @@ -0,0 +1,12 @@ +for (MvcEndpoint endpoint : endpoints) { + if (isIncluded(endpoint)) { + String path = endpointHandlerMapping.getPath(endpoint.getPath()); + paths.add(path); + if (!path.equals("")) { + paths.add(path + "/**"); + // Add Spring MVC-generated additional paths + paths.add(path + ".*"); + } + paths.add(path + "/"); + } + } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java b/testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java new file mode 100644 index 0000000..653303e --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java @@ -0,0 +1,20 @@ +{ + if (endpointHandlerMapping == null) { + return NO_PATHS; + } + Set endpoints = endpointHandlerMapping.getEndpoints(); + Set paths = new LinkedHashSet<>(endpoints.size()); + for (MvcEndpoint endpoint : endpoints) { + if (isIncluded(endpoint)) { + String path = endpointHandlerMapping.getPath(endpoint.getPath()); + paths.add(path); + if (!path.equals("")) { + paths.add(path + "/**"); + // Add Spring MVC-generated additional paths + paths.add(path + ".*"); + } + paths.add(path + "/"); + } + } + return paths.toArray(new String[paths.size()]); + } \ No newline at end of file From 07ed19150728717cc2ed025526255f2fe6257f1e Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 15:52:56 -0300 Subject: [PATCH 117/156] Testing breaking statements from a Then Statement. --- .../forloop/test/BreakIntoStatementsTest.rsc | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc index 51aa688..a7d6e3a 100644 --- a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc @@ -82,7 +82,30 @@ public test bool ex6() { loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); stmts = breakIntoStatements(loopBody); - printStmtsBrokenInto(stmts); - return false; + return size(stmts) == 1 && + "" == "if (isIncluded(endpoint)) {\r\n\t\t\t\t\tString path = endpointHandlerMapping.getPath(endpoint.getPath());\r\n\t\t\t\t\tpaths.add(path);\r\n\t\t\t\t\tif (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpaths.add(path + \"/\");\r\n\t\t\t\t}" && + stmts[0].stmtType == "IfThenStatement"; +} + +// inside the if after the loop from previous example +public test bool ex7() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + enhancedForLoop = parse(#EnhancedForStatement, readFile(fileForLoc)); + loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); + list[Stmt] stmts = []; + top-down-break visit(loopBody) { + case (IfThenStatement) `if ( ) `: + stmts = breakIntoStatements(thenStmt); + } + + return size(stmts) == 4 && + "" == "String path = endpointHandlerMapping.getPath(endpoint.getPath());" && + stmts[0].stmtType == "LocalVariableDeclarationStatement" && + "" == "paths.add(path);" && + stmts[1].stmtType == "ExpressionStatement" && + "" == "if (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}" && + stmts[2].stmtType == "IfThenStatement" && + "" == "paths.add(path + \"/\");" && + stmts[3].stmtType == "ExpressionStatement"; } \ No newline at end of file From a3d3550a3f4bdc4f5d5741b12d5ebef6668402e8 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 16:38:21 -0300 Subject: [PATCH 118/156] Identifying when an If it's not the last statement within it's block. - In this case the prospective operation is a MAP. --- src/refactor/forloop/BreakIntoStatements.rsc | 9 ++ src/refactor/forloop/ProspectiveOperation.rsc | 30 +++-- .../forloop/ProspectiveOperationTest.rsc | 105 +++++++++++------- .../ProspectiveOperationTestResources.rsc | 13 +++ 4 files changed, 106 insertions(+), 51 deletions(-) diff --git a/src/refactor/forloop/BreakIntoStatements.rsc b/src/refactor/forloop/BreakIntoStatements.rsc index 289aaa5..7474ef1 100644 --- a/src/refactor/forloop/BreakIntoStatements.rsc +++ b/src/refactor/forloop/BreakIntoStatements.rsc @@ -8,6 +8,15 @@ import ParseTree; data Stmt = stmt(Tree statement, str stmtType); +public list[Stmt] breakIntoStatements(Block block) { + list [Stmt] stmts = []; + top-down-break visit(block) { + case Statement stmt: + stmts += breakIntoStatements(stmt); + } + return stmts; +} + public list[Stmt] breakIntoStatements(Statement statement) { list[Stmt] stmts = []; top-down-break visit(statement) { diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 3e37aca..4954036 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -8,6 +8,7 @@ import ParseTree; import MethodVar; import refactor::forloop::OperationType; import ParseTreeVisualization; +import refactor::forloop::BreakIntoStatements; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); @@ -32,7 +33,8 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromStatement(St prOps += retrieveProspectiveOperationsFromBlock(block); } case IfThenStatement ifStmt: { - prOps += retrieveProspectiveOperationsFromIfThenStatement(ifStmt); + stmtsBrokenInto = breakIntoStatements(stmt); + prOps += retrieveProspectiveOperationsFromIfThenStatement(ifStmt, stmtsBrokenInto); } case ExpressionStatement expStmt: { statement = parse(#Statement, unparse(expStmt)); @@ -53,7 +55,8 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block top-down-break visit(blockStatement) { case (IfThenStatement) `if ( ) `: { ifThenStmt = [IfThenStatement] "if () "; - prOps += retrieveProspectiveOperationsFromIfThenStatement(ifThenStmt); + stmtsBrokenInto = breakIntoStatements(block); + prOps += retrieveProspectiveOperationsFromIfThenStatement(ifThenStmt, stmtsBrokenInto); } case (IfThenElseStatement) `if ( ) else `: { throw "Not Refactoring If/Else for now"; @@ -76,7 +79,7 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromBlock(Block return prOps; } -private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatement(IfThenStatement ifStmt) { +private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatement(IfThenStatement ifStmt, list[Stmt] currBlockStmts) { list[ProspectiveOperation] prOps = []; foundReturn = false; top-down-break visit (ifStmt) { @@ -94,11 +97,17 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem } if (!foundReturn) { - prOps += prospectiveOperation(unparse(exp), FILTER); - if (isSingleStatementBlock(thenStmt)) - prOps += retrieveProspectiveOperationFromSingleStatement(thenStmt); - else - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + if (!ifStatementHasNoStatementAfter(ifStmt, currBlockStmts)) { + prOps += prospectiveOperation(unparse(ifStmt), MAP); + } + else { + prOps += prospectiveOperation(unparse(exp), FILTER); + + if (isSingleStatementBlock(thenStmt)) + prOps += retrieveProspectiveOperationFromSingleStatement(thenStmt); + else + prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + } } } } @@ -107,6 +116,11 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem return prOps; } +private bool ifStatementHasNoStatementAfter(IfThenStatement ifStmt, list[Stmt] currBlockStmts) { + lastStmt = last(currBlockStmts); + return lastStmt.stmtType == "IfThenStatement" && lastStmt.statement == ifStmt; +} + private ProspectiveOperation retrieveProspectiveOperationFromSingleStatement(Statement statement) { if (isReducer(statement)) return prospectiveOperation(unparse(statement), REDUCE); diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/refactor/forloop/ProspectiveOperationTest.rsc index bffe3dd..8b25973 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/refactor/forloop/ProspectiveOperationTest.rsc @@ -30,29 +30,6 @@ public test bool shouldHandleReduce() { prospectiveOperations[1].operation == REDUCE; } -//public test bool shouldHandleAnyMatchAndIfWithContinue() { -// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); -// -// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); -// println(prospectiveOperations); -// -// return size(prospectiveOperations) == 2 && -// prospectiveOperations[0].stmt == "e.getGrammarName() != null" && -// prospectiveOperations[0].operation == FILTER && -// prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && -// prospectiveOperations[1].operation == ANY_MATCH; -//} -// -//public test bool shouldHandleIfWithContinue() { -// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); -// -// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); -// println(prospectiveOperations); -// -// return prospectiveOperations[0].stmt == "e.getGrammarName() != null" && -// prospectiveOperations[0].operation == FILTER; -//} - public test bool shouldHandleAnyMatch() { tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); @@ -129,30 +106,72 @@ public test bool shouldThrowExceptionWhenLoopWithInnerWhileIsFound() { return false; } -public test bool shouldIdentifyPostIncrementAsReduce() { - throw "Not yet implemented"; - - tuple [set[MethodVar] vars, EnhancedForStatement loop] loopReduceWithPostIncrement = loopReduceWithPostIncrement(); - - prospectiveOperations = retrieveProspectiveOperations(loopReduceWithPostIncrement.vars, loopReduceWithPostIncrement.loop); - - println(prospectiveOperations); - - return false; -} - -public test bool shouldKeepBlockAfterAnIf() { +public test bool ifAsNotTheLastStatementShouldBeAMap() { tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowStatement = loopWithThrowStatement(); prospectiveOperations = retrieveProspectiveOperations(loopWithThrowStatement.vars, loopWithThrowStatement.loop); - return size(prospectiveOperations) == 4 && + return size(prospectiveOperations) == 3 && prospectiveOperations[0].stmt == "V value = newEntries.get(key);" && prospectiveOperations[0].operation == MAP && - prospectiveOperations[1].stmt == "value == null" && - prospectiveOperations[1].operation == FILTER && - prospectiveOperations[2].stmt == "{\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }" && + prospectiveOperations[1].stmt == "if (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }" && + prospectiveOperations[1].operation == MAP && + prospectiveOperations[2].stmt == "result.put(key, value);" && + prospectiveOperations[2].operation == FOR_EACH; +} + +// This is actually a really nice example. +// The first if is a filter because it is the last statement from the outer block +// The inner if is not the last statement within the first if block, so it's a map +public test bool innerIfAsNotTheLastStatementShouldBeAMap() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = loopWithIfWithTwoStatementsInsideBlock(); + + prospectiveOperations = retrieveProspectiveOperations(loop.vars, loop.loop); + + return size(prospectiveOperations) == 5 && + prospectiveOperations[0].stmt == "isIncluded(endpoint)" && + prospectiveOperations[0].operation == FILTER && + prospectiveOperations[1].stmt == "String path = endpointHandlerMapping.getPath(endpoint.getPath());" && + prospectiveOperations[1].operation == MAP && + prospectiveOperations[2].stmt == "paths.add(path);" && prospectiveOperations[2].operation == MAP && - prospectiveOperations[3].stmt == "result.put(key, value);" && - prospectiveOperations[3].operation == FOR_EACH; -} \ No newline at end of file + prospectiveOperations[3].stmt == "if (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}" && + prospectiveOperations[3].operation == MAP && + prospectiveOperations[4].stmt == "paths.add(path + \"/\");" && + prospectiveOperations[4].operation == FOR_EACH; +} + +//public test bool shouldIdentifyPostIncrementAsReduce() { +// throw "Not yet implemented"; +// +// tuple [set[MethodVar] vars, EnhancedForStatement loop] loopReduceWithPostIncrement = loopReduceWithPostIncrement(); +// +// prospectiveOperations = retrieveProspectiveOperations(loopReduceWithPostIncrement.vars, loopReduceWithPostIncrement.loop); +// +// println(prospectiveOperations); +// +// return false; +//} + +//public test bool shouldHandleAnyMatchAndIfWithContinue() { +// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); +// +// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); +// println(prospectiveOperations); +// +// return size(prospectiveOperations) == 2 && +// prospectiveOperations[0].stmt == "e.getGrammarName() != null" && +// prospectiveOperations[0].operation == FILTER && +// prospectiveOperations[1].stmt == "e.getGrammarName().equals(grammarName)" && +// prospectiveOperations[1].operation == ANY_MATCH; +//} +// +//public test bool shouldHandleIfWithContinue() { +// tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn = continueAndReturn(); +// +// prospectiveOperations = retrieveProspectiveOperations(continueAndReturn.vars, continueAndReturn.loop); +// println(prospectiveOperations); +// +// return prospectiveOperations[0].stmt == "e.getGrammarName() != null" && +// prospectiveOperations[0].operation == FILTER; +//} \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/refactor/forloop/ProspectiveOperationTestResources.rsc index 75c3d51..e4f50f0 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/refactor/forloop/ProspectiveOperationTestResources.rsc @@ -122,4 +122,17 @@ private set[MethodVar] loopWithThrowStatementVars() { methodBodyLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithIfWithTwoStatementsInsideBlock() { + fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + return ; +} + +private set[MethodVar] loopWithIfWithTwoStatementsInsideBlockVars() { + methodHeader = parse(#MethodHeader, "String[] getPaths(EndpointHandlerMapping endpointHandlerMapping)"); + methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file From 5aa58af0c27cca9d9faff85c370b2f793b964b46 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 16:50:37 -0300 Subject: [PATCH 119/156] Extracting methods on ProspectiveOperation --- src/refactor/forloop/ProspectiveOperation.rsc | 52 +++++++++++-------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 4954036..df31ac5 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -83,30 +83,22 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem list[ProspectiveOperation] prOps = []; foundReturn = false; top-down-break visit (ifStmt) { - case (IfThenStatement) `if ( ) `: { + case (IfThenStatement) `if ( ) `: { top-down-break visit (thenStmt) { case Statement stmt: { visit(stmt) { case (ReturnStatement) `return ;`: { foundReturn = true; - if ("" == "true") - prOps += prospectiveOperation(unparse(exp), ANY_MATCH); - else if ("" == "false") - prOps += prospectiveOperation(unparse(exp), NONE_MATCH); + prOps += createAnyMatchOrNoneMatchPrOp("", ""); } } if (!foundReturn) { - if (!ifStatementHasNoStatementAfter(ifStmt, currBlockStmts)) { + if (!ifStatementHasNoStatementAfter(ifStmt, currBlockStmts)) prOps += prospectiveOperation(unparse(ifStmt), MAP); - } else { - prOps += prospectiveOperation(unparse(exp), FILTER); - - if (isSingleStatementBlock(thenStmt)) - prOps += retrieveProspectiveOperationFromSingleStatement(thenStmt); - else - prOps += retrieveProspectiveOperationsFromStatement(thenStmt); + prOps += prospectiveOperation(unparse(ifExp), FILTER); + prOps += retrieveProspectiveOperationsFromThenStatement(thenStmt); } } } @@ -116,11 +108,35 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem return prOps; } +private ProspectiveOperation createAnyMatchOrNoneMatchPrOp(str returnExp, str ifExp) { + if (returnExp == "true") + return prospectiveOperation(ifExp, ANY_MATCH); + else // (returnExp == "false") + return prospectiveOperation(ifExp, NONE_MATCH); +} + private bool ifStatementHasNoStatementAfter(IfThenStatement ifStmt, list[Stmt] currBlockStmts) { lastStmt = last(currBlockStmts); return lastStmt.stmtType == "IfThenStatement" && lastStmt.statement == ifStmt; } +private list[ProspectiveOperation] retrieveProspectiveOperationsFromThenStatement(Statement thenStmt) { + if (isSingleStatementBlock(thenStmt)) + return retrieveProspectiveOperationFromSingleStatement(thenStmt); + else + return retrieveProspectiveOperationsFromStatement(thenStmt); +} + +// XXX Does this really work? +private bool isSingleStatementBlock(Statement thenStmt) { + if (isBlock("")) { + semiCollonOccurrences = findAll("", ";"); + return size(semiCollonOccurrences) == 1; + } + + return false; +} + private ProspectiveOperation retrieveProspectiveOperationFromSingleStatement(Statement statement) { if (isReducer(statement)) return prospectiveOperation(unparse(statement), REDUCE); @@ -150,16 +166,6 @@ private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { return !isEffectiveFinal(var); } -// XXX Does this really work? -private bool isSingleStatementBlock(Statement thenStmt) { - if (isBlock("")) { - semiCollonOccurrences = findAll("", ";"); - return size(semiCollonOccurrences) == 1; - } - - return false; -} - private bool isBlock(str stmt) { try { parse(#Block, stmt); From cdf180e3eaba7085aa3798b4404465f48ce5a58c Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 17:44:07 -0300 Subject: [PATCH 120/156] Fixed mistake in returning from method. - Surprisingly the ProspectiveOperationsTest didn't catch it. - But more functional tests from ForLoopToFunctional did. --- src/refactor/forloop/ProspectiveOperation.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index df31ac5..55e8b3c 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -122,7 +122,7 @@ private bool ifStatementHasNoStatementAfter(IfThenStatement ifStmt, list[Stmt] c private list[ProspectiveOperation] retrieveProspectiveOperationsFromThenStatement(Statement thenStmt) { if (isSingleStatementBlock(thenStmt)) - return retrieveProspectiveOperationFromSingleStatement(thenStmt); + return [retrieveProspectiveOperationFromSingleStatement(thenStmt)]; else return retrieveProspectiveOperationsFromStatement(thenStmt); } From 383ba40621c0b5ad389930ca6d30dd01b601ff4a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 19:49:08 -0300 Subject: [PATCH 121/156] BreakIntoStatements retrieving LocalVariableDeclarations from blocks --- src/refactor/forloop/BreakIntoStatements.rsc | 33 ++++++++++++++++--- src/refactor/forloop/ProspectiveOperation.rsc | 7 ---- .../forloop/test/BreakIntoStatementsTest.rsc | 13 ++++++++ 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/src/refactor/forloop/BreakIntoStatements.rsc b/src/refactor/forloop/BreakIntoStatements.rsc index 7474ef1..949dceb 100644 --- a/src/refactor/forloop/BreakIntoStatements.rsc +++ b/src/refactor/forloop/BreakIntoStatements.rsc @@ -6,13 +6,38 @@ import String; import lang::java::\syntax::Java18; import ParseTree; -data Stmt = stmt(Tree statement, str stmtType); +data Stmt = stmtBrokenInto(Tree statement, str stmtType); + +public list[str] breakIntoStatementsAsStringList(str stmt) { + stmts = breakIntoStatements(stmt); + return [ "" | Stmt stmt <- stmts ]; +} + +public list[str] breakIntoStatementsAsStringList(Block block) { + stmts = breakIntoStatements(block); + return [ "" | Stmt stmt <- stmts ]; +} + +public list[Stmt] breakIntoStatements(str stmt) { + if(isBlock(stmt)) + return breakIntoStatements(parse(#Block, stmt)); + return breakIntoStatements(parse(#Statement, stmt)); +} + +public bool isBlock(str stmt) { + try { + parse(#Block, stmt); + return true; + } catch: return false; +} public list[Stmt] breakIntoStatements(Block block) { list [Stmt] stmts = []; top-down-break visit(block) { case Statement stmt: stmts += breakIntoStatements(stmt); + case LocalVariableDeclaration lvdlStmt: + stmts += stmtBrokenInto(lvdlStmt, "LocalVariableDeclarationStatement"); } return stmts; } @@ -21,13 +46,13 @@ public list[Stmt] breakIntoStatements(Statement statement) { list[Stmt] stmts = []; top-down-break visit(statement) { case IfThenStatement ifStmt: { - stmts += stmt(ifStmt, "IfThenStatement"); + stmts += stmtBrokenInto(ifStmt, "IfThenStatement"); } case ExpressionStatement expStmt: { - stmts += stmt(expStmt, "ExpressionStatement"); + stmts += stmtBrokenInto(expStmt, "ExpressionStatement"); } case LocalVariableDeclarationStatement lvdlStmt: { - stmts += stmt(lvdlStmt, "LocalVariableDeclarationStatement"); + stmts += stmtBrokenInto(lvdlStmt, "LocalVariableDeclarationStatement"); } case IfThenElseStatement ifElseStmt: throw "Not Refactoring If/Else for now"; diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/refactor/forloop/ProspectiveOperation.rsc index 55e8b3c..6b77f38 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/refactor/forloop/ProspectiveOperation.rsc @@ -166,13 +166,6 @@ private bool isReferenceToNonFinalLocalVar(LeftHandSide lhs) { return !isEffectiveFinal(var); } -private bool isBlock(str stmt) { - try { - parse(#Block, stmt); - return true; - } catch: return false; -} - private list[ProspectiveOperation] markLastStmtAsEager(list[ProspectiveOperation] prOps) { lastPrOp = prOps[-1]; if(lastPrOp.operation == MAP) diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc index a7d6e3a..633968c 100644 --- a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc @@ -108,4 +108,17 @@ public test bool ex7() { stmts[2].stmtType == "IfThenStatement" && "" == "paths.add(path + \"/\");" && stmts[3].stmtType == "ExpressionStatement"; +} + +// Sometimes LocalVariableDeclaration does not end with a semi collon. +public test bool shouldIncludeLocalVariableDeclarationInsideBlock() { + block = "{\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\n}"; + + stmts = breakIntoStatements(block); + + return size(stmts) == 2 && + "" == "updated.put(snapshot.getFolder(), snapshot);" && + stmts[0].stmtType == "ExpressionStatement" && + "" == "ChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter)" && + stmts[1].stmtType == "LocalVariableDeclarationStatement"; } \ No newline at end of file From 95e43e69941bfc5660f6b888ad0dffef2dc2ee7d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 20:08:49 -0300 Subject: [PATCH 122/156] LocalVariableDeclaration != LocalVariableDeclarationStatement. - The first does not end the statement with a ';' --- src/refactor/forloop/BreakIntoStatements.rsc | 2 +- src/refactor/forloop/test/BreakIntoStatementsTest.rsc | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/refactor/forloop/BreakIntoStatements.rsc b/src/refactor/forloop/BreakIntoStatements.rsc index 949dceb..61a6c12 100644 --- a/src/refactor/forloop/BreakIntoStatements.rsc +++ b/src/refactor/forloop/BreakIntoStatements.rsc @@ -36,7 +36,7 @@ public list[Stmt] breakIntoStatements(Block block) { top-down-break visit(block) { case Statement stmt: stmts += breakIntoStatements(stmt); - case LocalVariableDeclaration lvdlStmt: + case LocalVariableDeclarationStatement lvdlStmt: stmts += stmtBrokenInto(lvdlStmt, "LocalVariableDeclarationStatement"); } return stmts; diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc index 633968c..8cb746c 100644 --- a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc @@ -110,15 +110,14 @@ public test bool ex7() { stmts[3].stmtType == "ExpressionStatement"; } -// Sometimes LocalVariableDeclaration does not end with a semi collon. public test bool shouldIncludeLocalVariableDeclarationInsideBlock() { block = "{\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\n}"; stmts = breakIntoStatements(block); - + printStmtsBrokenInto(stmts); return size(stmts) == 2 && "" == "updated.put(snapshot.getFolder(), snapshot);" && stmts[0].stmtType == "ExpressionStatement" && - "" == "ChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter)" && + "" == "ChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);" && stmts[1].stmtType == "LocalVariableDeclarationStatement"; } \ No newline at end of file From d9df57269d6d2f98b3a9797bf3236c3acb635e50 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 20:21:39 -0300 Subject: [PATCH 123/156] Example with throw statement working. - In the end it is working with an if that is not the last statement. - It is keeping the block - It is not disregarding the throw statement that was previously ignored. --- src/refactor/forloop/ForLoopToFunctional.rsc | 52 +++---------- .../forloop/ForLoopToFunctionalTest.rsc | 78 +++++++++++-------- 2 files changed, 58 insertions(+), 72 deletions(-) diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/refactor/forloop/ForLoopToFunctional.rsc index 659305c..4c93d68 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/refactor/forloop/ForLoopToFunctional.rsc @@ -12,6 +12,7 @@ import refactor::forloop::UsedVariables; import refactor::forloop::AvailableVariables; import refactor::forloop::OperationType; import refactor::forloop::ForLoopBodyReferences; +import refactor::forloop::BreakIntoStatements; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); @@ -150,49 +151,18 @@ private set[str] mergeNeededVars(set[str] currNeededVars, set[str] prevNeededVar } private ComposableProspectiveOperation mergeIntoABlock(ComposableProspectiveOperation prev, ComposableProspectiveOperation curr) { - list[str] statements = retrieveAllStatements(prev.prOp) + retrieveAllStatements(curr.prOp); + prevStatements = retrieveAllStatements(prev.prOp); + currStatements = retrieveAllStatements(curr.prOp); + list[str] statements = prevStatements + currStatements ; Block statementsAsOneBlock = transformStatementsInBlock(statements); prOp = prospectiveOperation(unparse(statementsAsOneBlock), curr.prOp.operation); return mergeComposableProspectiveOperations(prOp, prev, curr); } private list[str] retrieveAllStatements(ProspectiveOperation prOp) { - list[str] allStatements = []; - if (isBlock(prOp.stmt)) - return retrieveAllStatementsFromBlock(prOp.stmt); - else if(isLocalVariableDeclarationStatement(prOp.stmt)) + if(isLocalVariableDeclarationStatement(prOp.stmt)) return [prOp.stmt]; - else - return retrieveAllExpressionStatementsFromStatement(prOp.stmt); -} - -private bool isBlock(str stmt) { - try { - parse(#Block, stmt); - return true; - } catch: return false; -} - -private list[str] retrieveAllStatementsFromBlock(str blockStr) { - list[str] blockStatements = []; - block = parse(#Block, blockStr); - top-down visit(block) { - case BlockStatement blockStmt: - blockStatements += unparse(blockStmt); - } - return blockStatements; -} - -private list[str] retrieveAllExpressionStatementsFromStatement(str statement) { - list[str] stmts = []; - Statement stmt = parse(#Statement, statement); - top-down visit(stmt) { - case ExpressionStatement expStmt: - stmts += unparse(expStmt); - case (IfThenStatement) `if () `: - stmts += "if ()"; - } - return stmts; + return breakIntoStatementsAsStringList(prOp.stmt); } private Block transformStatementsInBlock(list[str] stmts) { @@ -246,10 +216,11 @@ private bool isNumericLiteral(str stmt) { private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveOperation curr, set[str] nextNeededVars) { list[str] stmts = []; - if (isBlock(curr.prOp.stmt)) - stmts += retrieveAllStatementsFromBlock(curr.prOp.stmt); + stmt = curr.prOp.stmt; + if (isBlock(stmt)) + stmts += breakIntoStatementsAsStringList(parse(#Block, stmt)); else - stmts += curr.prOp.stmt; + stmts += stmt; varName = isEmpty(nextNeededVars) ? "_item" : getOneFrom(nextNeededVars); stmts += "return ;"; @@ -285,7 +256,8 @@ private Statement chainOperationsIntoStatement(set[MethodVar] methodVars, list[C str chainStr = ".stream()"; for(composablePrOp <- composablePrOps) { - chainStr = "." + buildChainableOperation(methodVars, composablePrOp); + chainableOperation = buildChainableOperation(methodVars, composablePrOp); + chainStr = "." + chainableOperation; } return parse(#Statement, ";"); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 9886e3d..ab0183a 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -8,6 +8,8 @@ import refactor::forloop::ForLoopToFunctional; import MethodVar; import LocalVariablesFinder; import LocalVariablesFinderTestResources; +import refactor::forloop::ProspectiveOperationTestResources; +import ParseTreeVisualization; public test bool ex1() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T1.java|; @@ -42,22 +44,6 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { return false; } -// TODO nested loops needed to be changed in ProspectiveOperation -//public test bool nestedLoops() { -// fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; -// methodBody = parse(#MethodBody, readFile(fileLoc)); -// methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); -// set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); -// fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; -// EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); -// VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); -// Expression collectionId = parse(#Expression, "colorElem"); -// -// refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); -// -// return false; -//} - public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); @@ -136,21 +122,49 @@ public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEf return false; } -public test bool shouldRefactorToReduceWithPostIncrement() { - throw "Not yet implemented"; - - methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); - methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; +public test bool shouldWorkWithThrowStatementInsideAnIfThatIsNotTheLastStatement() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowStatement = loopWithThrowStatement(); + methodBodyLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); - methodVars = findLocalVariables(methodHeader, methodBody); - forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); - VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); - Expression collectionId = parse(#Expression, "entries"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "key"); + Expression collectionId = parse(#Expression, "keysToLoad"); - try { - refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - } catch: - return true; - - return false; -} \ No newline at end of file + refactoredStatement = buildRefactoredEnhancedFor(loopWithThrowStatement.vars, loopWithThrowStatement.loop, methodBody, iteratedVarName, collectionId); + + return "" == "keysToLoad.forEach(key -\> {\nV value = newEntries.get(key);\nif (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }\nresult.put(key, value);\n});"; +} + +//public test bool shouldRefactorToReduceWithPostIncrement() { +// throw "Not yet implemented"; +// +// methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); +// methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; +// methodBody = parse(#MethodBody, readFile(methodBodyLoc)); +// methodVars = findLocalVariables(methodHeader, methodBody); +// forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); +// VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); +// Expression collectionId = parse(#Expression, "entries"); +// +// try { +// refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); +// } catch: +// return true; +// +// return false; +//} + +// TODO nested loops needed to be changed in ProspectiveOperation +//public test bool nestedLoops() { +// fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; +// methodBody = parse(#MethodBody, readFile(fileLoc)); +// methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); +// set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); +// fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; +// EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); +// VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); +// Expression collectionId = parse(#Expression, "colorElem"); +// +// refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); +// +// return false; +//} \ No newline at end of file From 15cfb511ad57d7ffe6b408d5bb17d8919c58f48b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 20:57:33 -0300 Subject: [PATCH 124/156] Getting right another 2 examples that weren't working before! --- .../forloop/ForLoopToFunctionalTest.rsc | 28 +++++++++++++++++++ .../MethodBodyIfAsNotAFilter | 22 +++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index ab0183a..5918200 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -134,6 +134,34 @@ public test bool shouldWorkWithThrowStatementInsideAnIfThatIsNotTheLastStatement return "" == "keysToLoad.forEach(key -\> {\nV value = newEntries.get(key);\nif (value == null) {\n throw new InvalidCacheLoadException(\"loadAll failed to return a value for \" + key);\n }\nresult.put(key, value);\n});"; } +public test bool loopWithIfWithTwoStatementsInsideBlockShouldRefactorInnerIfAsMap() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = loopWithIfWithTwoStatementsInsideBlock(); + methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "endpoint"); + Expression collectionId = parse(#Expression, "endpoints"); + + refactoredStatement = buildRefactoredEnhancedFor(loop.vars, loop.loop, methodBody, iteratedVarName, collectionId); + + return "" == "endpoints.stream().filter(endpoint -\> isIncluded(endpoint)).map(endpoint -\> endpointHandlerMapping.getPath(endpoint.getPath())).map(path -\> {\npaths.add(path);\nreturn path;\n}).map(path -\> {\nif (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}\nreturn path;\n}).forEach(path -\> {\npaths.add(path + \"/\");\n});"; +} + +public test bool anotherIfThatIsMap() { + methodHeader = parse(#MethodHeader, "void afterPropertiesSet() throws Exception"); + methodBodyLoc = |project://rascal-Java8/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodVars = findLocalVariables(methodHeader, methodBody); + forStmt = parse(#EnhancedForStatement, "for (Endpoint\ endpoint : delegates) {if (isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()) {EndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);String path = determinePath(endpoint,this.applicationContext.getEnvironment());if (path != null) {adapter.setPath(path);}this.endpoints.add(adapter);}}"); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "endpoint"); + Expression collectionId = parse(#Expression, "delegates"); + + refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); + + println(refactoredStatement); + + return "" == "delegates.stream().filter(endpoint -\> isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()).map(endpoint -\> {\nEndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);\nString path = determinePath(endpoint,this.applicationContext.getEnvironment());\nif (path != null) {adapter.setPath(path);}\nreturn adapter;\n}).forEach(adapter -\> {\nthis.endpoints.add(adapter);\n});"; +} + //public test bool shouldRefactorToReduceWithPostIncrement() { // throw "Not yet implemented"; // diff --git a/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter b/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter new file mode 100644 index 0000000..d292517 --- /dev/null +++ b/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter @@ -0,0 +1,22 @@ +{ + Collection existing = BeanFactoryUtils + .beansOfTypeIncludingAncestors(this.applicationContext, MvcEndpoint.class) + .values(); + this.endpoints.addAll(existing); + this.customTypes = findEndpointClasses(existing); + @SuppressWarnings("rawtypes") + Collection delegates = BeanFactoryUtils + .beansOfTypeIncludingAncestors(this.applicationContext, Endpoint.class) + .values(); + for (Endpoint endpoint : delegates) { + if (isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()) { + EndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint); + String path = determinePath(endpoint, + this.applicationContext.getEnvironment()); + if (path != null) { + adapter.setPath(path); + } + this.endpoints.add(adapter); + } + } + } \ No newline at end of file From 826c267aec11d091e7b1e59ea622b85ef686e6b2 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 11 May 2017 21:52:17 -0300 Subject: [PATCH 125/156] Changing variable's name that was forgotten. --- src/ForLoop.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index c4bfe3f..b8ad2fd 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -105,7 +105,7 @@ private bool isLoopRefactorable(set[MethodVar] methodLocalVariables, Expression // TODO extract module and test it private bool loopBodyPassConditions(Statement loopBody) { returnCount = 0; - visit(stmt) { + visit(loopBody) { case (ThrowStatement) `throw new ( );`: { if ("" in checkedExceptionClasses) return false; } From fc8379b90c2704bf6d05e5e02298df3d1f68e5b7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sat, 13 May 2017 23:27:05 -0300 Subject: [PATCH 126/156] ForLoopToFunctional refactors loops iterating on 'this.field'. - We actually don't have complete functional tests. -- We don't exercise the entire refactor stack. --- No tests starting from ForLoop. --- No tests for the entire preconditions checks too. - An "overly strong precondition" is what prevents the refactor. -- We are ignoring loops iterating on 'this.field' --- It's actually considered a method call right now. --- .../forloop/ForLoopToFunctionalTest.rsc | 39 +- testes/classFields/ForIteratingOnThisField | 3 + testes/classFields/ForIteratingOnThisField2 | 3 + .../MethodBodyIteratingOnThisField | 17 + .../MethodBodyIteratingOnThisField2 | 6 + .../TomcatServletWebServerFactory.java | 872 ++++++++++++++++++ 6 files changed, 938 insertions(+), 2 deletions(-) create mode 100644 testes/classFields/ForIteratingOnThisField create mode 100644 testes/classFields/ForIteratingOnThisField2 create mode 100644 testes/classFields/MethodBodyIteratingOnThisField create mode 100644 testes/classFields/MethodBodyIteratingOnThisField2 create mode 100644 testes/classFields/TomcatServletWebServerFactory.java diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/refactor/forloop/ForLoopToFunctionalTest.rsc index 5918200..a941dd8 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/refactor/forloop/ForLoopToFunctionalTest.rsc @@ -9,6 +9,7 @@ import MethodVar; import LocalVariablesFinder; import LocalVariablesFinderTestResources; import refactor::forloop::ProspectiveOperationTestResources; +import refactor::forloop::ClassFieldsFinder; import ParseTreeVisualization; public test bool ex1() { @@ -157,11 +158,45 @@ public test bool anotherIfThatIsMap() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - println(refactoredStatement); - return "" == "delegates.stream().filter(endpoint -\> isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()).map(endpoint -\> {\nEndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);\nString path = determinePath(endpoint,this.applicationContext.getEnvironment());\nif (path != null) {adapter.setPath(path);}\nreturn adapter;\n}).forEach(adapter -\> {\nthis.endpoints.add(adapter);\n});"; } +public test bool shouldRefactorLoopIteratingOnThisField() { + methodHeader = parse(#MethodHeader, "WebServer getWebServer(ServletContextInitializer... initializers)"); + methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8/testes/classFields/ForIteratingOnThisField|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "additionalConnector"); + Expression collectionId = parse(#Expression, "this.additionalTomcatConnectors"); + + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + vars = methodVars + classFields; + + refactoredStatement = buildRefactoredEnhancedFor(vars, forStmt, methodBody, iteratedVarName, collectionId); + + return "" == "this.additionalTomcatConnectors.forEach(additionalConnector -\> {\ntomcat.getService().addConnector(additionalConnector);\n});"; +} + +public test bool shouldRefactorLoopIteratingOnThisField2() { + methodHeader = parse(#MethodHeader, "void configureEngine(Engine engine)"); + methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField2|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + methodVars = findLocalVariables(methodHeader, methodBody); + fileForLoc = |project://rascal-Java8/testes/classFields/ForIteratingOnThisField2|; + EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); + VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "valve"); + Expression collectionId = parse(#Expression, "this.engineValves"); + + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + vars = methodVars + classFields; + + refactoredStatement = buildRefactoredEnhancedFor(vars, forStmt, methodBody, iteratedVarName, collectionId); + + return "" == "this.engineValves.forEach(valve -\> {\nengine.getPipeline().addValve(valve);\n});"; +} + //public test bool shouldRefactorToReduceWithPostIncrement() { // throw "Not yet implemented"; // diff --git a/testes/classFields/ForIteratingOnThisField b/testes/classFields/ForIteratingOnThisField new file mode 100644 index 0000000..6fff176 --- /dev/null +++ b/testes/classFields/ForIteratingOnThisField @@ -0,0 +1,3 @@ +for (Connector additionalConnector : this.additionalTomcatConnectors) { + tomcat.getService().addConnector(additionalConnector); + } \ No newline at end of file diff --git a/testes/classFields/ForIteratingOnThisField2 b/testes/classFields/ForIteratingOnThisField2 new file mode 100644 index 0000000..fadf1e2 --- /dev/null +++ b/testes/classFields/ForIteratingOnThisField2 @@ -0,0 +1,3 @@ +for (Valve valve : this.engineValves) { + engine.getPipeline().addValve(valve); + } \ No newline at end of file diff --git a/testes/classFields/MethodBodyIteratingOnThisField b/testes/classFields/MethodBodyIteratingOnThisField new file mode 100644 index 0000000..a5848b6 --- /dev/null +++ b/testes/classFields/MethodBodyIteratingOnThisField @@ -0,0 +1,17 @@ +{ + Tomcat tomcat = new Tomcat(); + File baseDir = (this.baseDirectory != null ? this.baseDirectory + : createTempDir("tomcat")); + tomcat.setBaseDir(baseDir.getAbsolutePath()); + Connector connector = new Connector(this.protocol); + tomcat.getService().addConnector(connector); + customizeConnector(connector); + tomcat.setConnector(connector); + tomcat.getHost().setAutoDeploy(false); + configureEngine(tomcat.getEngine()); + for (Connector additionalConnector : this.additionalTomcatConnectors) { + tomcat.getService().addConnector(additionalConnector); + } + prepareContext(tomcat.getHost(), initializers); + return getTomcatWebServer(tomcat); + } \ No newline at end of file diff --git a/testes/classFields/MethodBodyIteratingOnThisField2 b/testes/classFields/MethodBodyIteratingOnThisField2 new file mode 100644 index 0000000..11d16c0 --- /dev/null +++ b/testes/classFields/MethodBodyIteratingOnThisField2 @@ -0,0 +1,6 @@ +{ + engine.setBackgroundProcessorDelay(this.backgroundProcessorDelay); + for (Valve valve : this.engineValves) { + engine.getPipeline().addValve(valve); + } + } \ No newline at end of file diff --git a/testes/classFields/TomcatServletWebServerFactory.java b/testes/classFields/TomcatServletWebServerFactory.java new file mode 100644 index 0000000..d57b959 --- /dev/null +++ b/testes/classFields/TomcatServletWebServerFactory.java @@ -0,0 +1,872 @@ +/* + * Copyright 2012-2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.web.embedded.tomcat; + +import java.io.File; +import java.io.FileNotFoundException; +import java.net.URL; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletContainerInitializer; + +import org.apache.catalina.Context; +import org.apache.catalina.Engine; +import org.apache.catalina.Host; +import org.apache.catalina.Lifecycle; +import org.apache.catalina.LifecycleEvent; +import org.apache.catalina.LifecycleListener; +import org.apache.catalina.Manager; +import org.apache.catalina.Valve; +import org.apache.catalina.WebResourceRoot.ResourceSetType; +import org.apache.catalina.Wrapper; +import org.apache.catalina.connector.Connector; +import org.apache.catalina.loader.WebappLoader; +import org.apache.catalina.session.StandardManager; +import org.apache.catalina.startup.Tomcat; +import org.apache.catalina.startup.Tomcat.FixContextListener; +import org.apache.catalina.webresources.TomcatURLStreamHandlerFactory; +import org.apache.coyote.AbstractProtocol; +import org.apache.coyote.ProtocolHandler; +import org.apache.coyote.http11.AbstractHttp11JsseProtocol; +import org.apache.coyote.http11.AbstractHttp11Protocol; +import org.apache.coyote.http11.Http11NioProtocol; +import org.apache.tomcat.util.net.SSLHostConfig; + +import org.springframework.boot.web.server.Compression; +import org.springframework.boot.web.server.ErrorPage; +import org.springframework.boot.web.server.MimeMappings; +import org.springframework.boot.web.server.Ssl; +import org.springframework.boot.web.server.Ssl.ClientAuth; +import org.springframework.boot.web.server.SslStoreProvider; +import org.springframework.boot.web.server.WebServer; +import org.springframework.boot.web.server.WebServerException; +import org.springframework.boot.web.servlet.ServletContextInitializer; +import org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory; +import org.springframework.context.ResourceLoaderAware; +import org.springframework.core.io.ResourceLoader; +import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; +import org.springframework.util.ResourceUtils; +import org.springframework.util.StringUtils; + +/** + * {@link AbstractServletWebServerFactory} that can be used to create + * {@link TomcatWebServer}s. Can be initialized using Spring's + * {@link ServletContextInitializer}s or Tomcat {@link LifecycleListener}s. + *

+ * Unless explicitly configured otherwise this factory will created containers that + * listens for HTTP requests on port 8080. + * + * @author Phillip Webb + * @author Dave Syer + * @author Brock Mills + * @author Stephane Nicoll + * @author Andy Wilkinson + * @author Eddú Meléndez + * @author Christoffer Sawicki + * @since 2.0.0 + * @see #setPort(int) + * @see #setContextLifecycleListeners(Collection) + * @see TomcatWebServer + */ +public class TomcatServletWebServerFactory extends AbstractServletWebServerFactory + implements ResourceLoaderAware { + + private static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8"); + + private static final Set> NO_CLASSES = Collections.emptySet(); + + /** + * The class name of default protocol used. + */ + public static final String DEFAULT_PROTOCOL = "org.apache.coyote.http11.Http11NioProtocol"; + + private File baseDirectory; + + private List engineValves = new ArrayList<>(); + + private List contextValves = new ArrayList<>(); + + private List contextLifecycleListeners = new ArrayList<>(); + + private List tomcatContextCustomizers = new ArrayList<>(); + + private List tomcatConnectorCustomizers = new ArrayList<>(); + + private List additionalTomcatConnectors = new ArrayList<>(); + + private ResourceLoader resourceLoader; + + private String protocol = DEFAULT_PROTOCOL; + + private Set tldSkipPatterns = new LinkedHashSet<>(TldSkipPatterns.DEFAULT); + + private Charset uriEncoding = DEFAULT_CHARSET; + + private int backgroundProcessorDelay; + + /** + * Create a new {@link TomcatServletWebServerFactory} instance. + */ + public TomcatServletWebServerFactory() { + super(); + } + + /** + * Create a new {@link TomcatServletWebServerFactory} that listens for requests using + * the specified port. + * @param port the port to listen on + */ + public TomcatServletWebServerFactory(int port) { + super(port); + } + + /** + * Create a new {@link TomcatServletWebServerFactory} with the specified context path + * and port. + * @param contextPath the root context path + * @param port the port to listen on + */ + public TomcatServletWebServerFactory(String contextPath, int port) { + super(contextPath, port); + } + + @Override + public WebServer getWebServer(ServletContextInitializer... initializers) { + Tomcat tomcat = new Tomcat(); + File baseDir = (this.baseDirectory != null ? this.baseDirectory + : createTempDir("tomcat")); + tomcat.setBaseDir(baseDir.getAbsolutePath()); + Connector connector = new Connector(this.protocol); + tomcat.getService().addConnector(connector); + customizeConnector(connector); + tomcat.setConnector(connector); + tomcat.getHost().setAutoDeploy(false); + configureEngine(tomcat.getEngine()); + for (Connector additionalConnector : this.additionalTomcatConnectors) { + tomcat.getService().addConnector(additionalConnector); + } + prepareContext(tomcat.getHost(), initializers); + return getTomcatWebServer(tomcat); + } + + private void configureEngine(Engine engine) { + engine.setBackgroundProcessorDelay(this.backgroundProcessorDelay); + for (Valve valve : this.engineValves) { + engine.getPipeline().addValve(valve); + } + } + + protected void prepareContext(Host host, ServletContextInitializer[] initializers) { + File docBase = getValidDocumentRoot(); + docBase = (docBase != null ? docBase : createTempDir("tomcat-docbase")); + final TomcatEmbeddedContext context = new TomcatEmbeddedContext(); + context.setName(getContextPath()); + context.setDisplayName(getDisplayName()); + context.setPath(getContextPath()); + context.setDocBase(docBase.getAbsolutePath()); + context.addLifecycleListener(new FixContextListener()); + context.setParentClassLoader( + this.resourceLoader != null ? this.resourceLoader.getClassLoader() + : ClassUtils.getDefaultClassLoader()); + resetDefaultLocaleMapping(context); + addLocaleMappings(context); + try { + context.setUseRelativeRedirects(false); + } + catch (NoSuchMethodError ex) { + // Tomcat is < 8.0.30. Continue + } + SkipPatternJarScanner.apply(context, this.tldSkipPatterns); + WebappLoader loader = new WebappLoader(context.getParentClassLoader()); + loader.setLoaderClass(TomcatEmbeddedWebappClassLoader.class.getName()); + loader.setDelegate(true); + context.setLoader(loader); + if (isRegisterDefaultServlet()) { + addDefaultServlet(context); + } + if (shouldRegisterJspServlet()) { + addJspServlet(context); + addJasperInitializer(context); + } + context.addLifecycleListener(new StaticResourceConfigurer(context)); + ServletContextInitializer[] initializersToUse = mergeInitializers(initializers); + configureContext(context, initializersToUse); + host.addChild(context); + postProcessContext(context); + } + + /** + * Override Tomcat's default locale mappings to align with other servers. See + * {@code org.apache.catalina.util.CharsetMapperDefault.properties}. + * @param context the context to reset + */ + private void resetDefaultLocaleMapping(TomcatEmbeddedContext context) { + context.addLocaleEncodingMappingParameter(Locale.ENGLISH.toString(), + DEFAULT_CHARSET.displayName()); + context.addLocaleEncodingMappingParameter(Locale.FRENCH.toString(), + DEFAULT_CHARSET.displayName()); + } + + private void addLocaleMappings(TomcatEmbeddedContext context) { + for (Map.Entry entry : getLocaleCharsetMappings().entrySet()) { + Locale locale = entry.getKey(); + Charset charset = entry.getValue(); + context.addLocaleEncodingMappingParameter(locale.toString(), + charset.toString()); + } + } + + private void addDefaultServlet(Context context) { + Wrapper defaultServlet = context.createWrapper(); + defaultServlet.setName("default"); + defaultServlet.setServletClass("org.apache.catalina.servlets.DefaultServlet"); + defaultServlet.addInitParameter("debug", "0"); + defaultServlet.addInitParameter("listings", "false"); + defaultServlet.setLoadOnStartup(1); + // Otherwise the default location of a Spring DispatcherServlet cannot be set + defaultServlet.setOverridable(true); + context.addChild(defaultServlet); + addServletMapping(context, "/", "default"); + } + + private void addJspServlet(Context context) { + Wrapper jspServlet = context.createWrapper(); + jspServlet.setName("jsp"); + jspServlet.setServletClass(getJsp().getClassName()); + jspServlet.addInitParameter("fork", "false"); + for (Entry initParameter : getJsp().getInitParameters() + .entrySet()) { + jspServlet.addInitParameter(initParameter.getKey(), initParameter.getValue()); + } + jspServlet.setLoadOnStartup(3); + context.addChild(jspServlet); + addServletMapping(context, "*.jsp", "jsp"); + addServletMapping(context, "*.jspx", "jsp"); + } + + @SuppressWarnings("deprecation") + private void addServletMapping(Context context, String pattern, String name) { + context.addServletMapping(pattern, name); + } + + private void addJasperInitializer(TomcatEmbeddedContext context) { + try { + ServletContainerInitializer initializer = (ServletContainerInitializer) ClassUtils + .forName("org.apache.jasper.servlet.JasperInitializer", null) + .newInstance(); + context.addServletContainerInitializer(initializer, null); + } + catch (Exception ex) { + // Probably not Tomcat 8 + } + } + + // Needs to be protected so it can be used by subclasses + protected void customizeConnector(Connector connector) { + int port = (getPort() >= 0 ? getPort() : 0); + connector.setPort(port); + if (StringUtils.hasText(this.getServerHeader())) { + connector.setAttribute("server", this.getServerHeader()); + } + if (connector.getProtocolHandler() instanceof AbstractProtocol) { + customizeProtocol((AbstractProtocol) connector.getProtocolHandler()); + } + if (getUriEncoding() != null) { + connector.setURIEncoding(getUriEncoding().name()); + } + + // If ApplicationContext is slow to start we want Tomcat not to bind to the socket + // prematurely... + connector.setProperty("bindOnInit", "false"); + + if (getSsl() != null && getSsl().isEnabled()) { + customizeSsl(connector); + } + if (getCompression() != null && getCompression().getEnabled()) { + customizeCompression(connector); + } + for (TomcatConnectorCustomizer customizer : this.tomcatConnectorCustomizers) { + customizer.customize(connector); + } + } + + private void customizeProtocol(AbstractProtocol protocol) { + if (getAddress() != null) { + protocol.setAddress(getAddress()); + } + } + + private void customizeSsl(Connector connector) { + ProtocolHandler handler = connector.getProtocolHandler(); + Assert.state(handler instanceof AbstractHttp11JsseProtocol, + "To use SSL, the connector's protocol handler must be an " + + "AbstractHttp11JsseProtocol subclass"); + configureSsl((AbstractHttp11JsseProtocol) handler, getSsl()); + connector.setScheme("https"); + connector.setSecure(true); + } + + private void customizeCompression(Connector connector) { + ProtocolHandler handler = connector.getProtocolHandler(); + if (handler instanceof AbstractHttp11Protocol) { + AbstractHttp11Protocol protocol = (AbstractHttp11Protocol) handler; + Compression compression = getCompression(); + protocol.setCompression("on"); + protocol.setCompressionMinSize(compression.getMinResponseSize()); + protocol.setCompressibleMimeType( + StringUtils.arrayToCommaDelimitedString(compression.getMimeTypes())); + if (getCompression().getExcludedUserAgents() != null) { + protocol.setNoCompressionUserAgents( + StringUtils.arrayToCommaDelimitedString( + getCompression().getExcludedUserAgents())); + } + } + } + + /** + * Configure Tomcat's {@link AbstractHttp11JsseProtocol} for SSL. + * @param protocol the protocol + * @param ssl the ssl details + */ + protected void configureSsl(AbstractHttp11JsseProtocol protocol, Ssl ssl) { + protocol.setSSLEnabled(true); + protocol.setSslProtocol(ssl.getProtocol()); + configureSslClientAuth(protocol, ssl); + protocol.setKeystorePass(ssl.getKeyStorePassword()); + protocol.setKeyPass(ssl.getKeyPassword()); + protocol.setKeyAlias(ssl.getKeyAlias()); + String ciphers = StringUtils.arrayToCommaDelimitedString(ssl.getCiphers()); + protocol.setCiphers(StringUtils.hasText(ciphers) ? ciphers : null); + if (ssl.getEnabledProtocols() != null) { + try { + for (SSLHostConfig sslHostConfig : protocol.findSslHostConfigs()) { + sslHostConfig.setProtocols(StringUtils + .arrayToCommaDelimitedString(ssl.getEnabledProtocols())); + } + } + catch (NoSuchMethodError ex) { + // Tomcat 8.0.x or earlier + Assert.isTrue( + protocol.setProperty("sslEnabledProtocols", + StringUtils.arrayToCommaDelimitedString( + ssl.getEnabledProtocols())), + "Failed to set sslEnabledProtocols"); + } + } + if (getSslStoreProvider() != null) { + TomcatURLStreamHandlerFactory instance = TomcatURLStreamHandlerFactory + .getInstance(); + instance.addUserFactory( + new SslStoreProviderUrlStreamHandlerFactory(getSslStoreProvider())); + protocol.setKeystoreFile( + SslStoreProviderUrlStreamHandlerFactory.KEY_STORE_URL); + protocol.setTruststoreFile( + SslStoreProviderUrlStreamHandlerFactory.TRUST_STORE_URL); + } + else { + configureSslKeyStore(protocol, ssl); + configureSslTrustStore(protocol, ssl); + } + } + + private void configureSslClientAuth(AbstractHttp11JsseProtocol protocol, Ssl ssl) { + if (ssl.getClientAuth() == ClientAuth.NEED) { + protocol.setClientAuth(Boolean.TRUE.toString()); + } + else if (ssl.getClientAuth() == ClientAuth.WANT) { + protocol.setClientAuth("want"); + } + } + + protected void configureSslStoreProvider(AbstractHttp11JsseProtocol protocol, + SslStoreProvider sslStoreProvider) { + Assert.isInstanceOf(Http11NioProtocol.class, protocol, + "SslStoreProvider can only be used with Http11NioProtocol"); + } + + private void configureSslKeyStore(AbstractHttp11JsseProtocol protocol, Ssl ssl) { + try { + protocol.setKeystoreFile(ResourceUtils.getURL(ssl.getKeyStore()).toString()); + } + catch (FileNotFoundException ex) { + throw new WebServerException("Could not load key store: " + ex.getMessage(), + ex); + } + if (ssl.getKeyStoreType() != null) { + protocol.setKeystoreType(ssl.getKeyStoreType()); + } + if (ssl.getKeyStoreProvider() != null) { + protocol.setKeystoreProvider(ssl.getKeyStoreProvider()); + } + } + + private void configureSslTrustStore(AbstractHttp11JsseProtocol protocol, Ssl ssl) { + + if (ssl.getTrustStore() != null) { + try { + protocol.setTruststoreFile( + ResourceUtils.getURL(ssl.getTrustStore()).toString()); + } + catch (FileNotFoundException ex) { + throw new WebServerException( + "Could not load trust store: " + ex.getMessage(), ex); + } + } + protocol.setTruststorePass(ssl.getTrustStorePassword()); + if (ssl.getTrustStoreType() != null) { + protocol.setTruststoreType(ssl.getTrustStoreType()); + } + if (ssl.getTrustStoreProvider() != null) { + protocol.setTruststoreProvider(ssl.getTrustStoreProvider()); + } + } + + /** + * Configure the Tomcat {@link Context}. + * @param context the Tomcat context + * @param initializers initializers to apply + */ + protected void configureContext(Context context, + ServletContextInitializer[] initializers) { + TomcatStarter starter = new TomcatStarter(initializers); + if (context instanceof TomcatEmbeddedContext) { + // Should be true + ((TomcatEmbeddedContext) context).setStarter(starter); + } + context.addServletContainerInitializer(starter, NO_CLASSES); + for (LifecycleListener lifecycleListener : this.contextLifecycleListeners) { + context.addLifecycleListener(lifecycleListener); + } + for (Valve valve : this.contextValves) { + context.getPipeline().addValve(valve); + } + for (ErrorPage errorPage : getErrorPages()) { + new TomcatErrorPage(errorPage).addToContext(context); + } + for (MimeMappings.Mapping mapping : getMimeMappings()) { + context.addMimeMapping(mapping.getExtension(), mapping.getMimeType()); + } + configureSession(context); + for (TomcatContextCustomizer customizer : this.tomcatContextCustomizers) { + customizer.customize(context); + } + } + + private void configureSession(Context context) { + long sessionTimeout = getSessionTimeoutInMinutes(); + context.setSessionTimeout((int) sessionTimeout); + if (isPersistSession()) { + Manager manager = context.getManager(); + if (manager == null) { + manager = new StandardManager(); + context.setManager(manager); + } + configurePersistSession(manager); + } + else { + context.addLifecycleListener(new DisablePersistSessionListener()); + } + } + + private void configurePersistSession(Manager manager) { + Assert.state(manager instanceof StandardManager, + "Unable to persist HTTP session state using manager type " + + manager.getClass().getName()); + File dir = getValidSessionStoreDir(); + File file = new File(dir, "SESSIONS.ser"); + ((StandardManager) manager).setPathname(file.getAbsolutePath()); + } + + private long getSessionTimeoutInMinutes() { + long sessionTimeout = getSessionTimeout(); + if (sessionTimeout > 0) { + sessionTimeout = Math.max(TimeUnit.SECONDS.toMinutes(sessionTimeout), 1L); + } + return sessionTimeout; + } + + /** + * Post process the Tomcat {@link Context} before it used with the Tomcat Server. + * Subclasses can override this method to apply additional processing to the + * {@link Context}. + * @param context the Tomcat {@link Context} + */ + protected void postProcessContext(Context context) { + } + + /** + * Factory method called to create the {@link TomcatWebServer}. Subclasses can + * override this method to return a different {@link TomcatWebServer} or apply + * additional processing to the Tomcat server. + * @param tomcat the Tomcat server. + * @return a new {@link TomcatWebServer} instance + */ + protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) { + return new TomcatWebServer(tomcat, getPort() >= 0); + } + + @Override + public void setResourceLoader(ResourceLoader resourceLoader) { + this.resourceLoader = resourceLoader; + } + + /** + * Set the Tomcat base directory. If not specified a temporary directory will be used. + * @param baseDirectory the tomcat base directory + */ + public void setBaseDirectory(File baseDirectory) { + this.baseDirectory = baseDirectory; + } + + /** + * A comma-separated list of jars to ignore for TLD scanning. See Tomcat's + * catalina.properties for typical values. Defaults to a list drawn from that source. + * @param tldSkip the jars to skip when scanning for TLDs etc + * @deprecated as of 1.5 in favor of {@link #setTldSkipPatterns(Collection)} + */ + @Deprecated + public void setTldSkip(String tldSkip) { + Assert.notNull(tldSkip, "TldSkip must not be null"); + setTldSkipPatterns(StringUtils.commaDelimitedListToSet(tldSkip)); + } + + /** + * Returns a mutable set of the patterns that match jars to ignore for TLD scanning. + * @return the list of jars to ignore for TLD scanning + */ + public Set getTldSkipPatterns() { + return this.tldSkipPatterns; + } + + /** + * Set the patterns that match jars to ignore for TLD scanning. See Tomcat's + * catalina.properties for typical values. Defaults to a list drawn from that source. + * @param patterns the jar patterns to skip when scanning for TLDs etc + */ + public void setTldSkipPatterns(Collection patterns) { + Assert.notNull(patterns, "Patterns must not be null"); + this.tldSkipPatterns = new LinkedHashSet<>(patterns); + } + + /** + * Add patterns that match jars to ignore for TLD scanning. See Tomcat's + * catalina.properties for typical values. + * @param patterns the additional jar patterns to skip when scanning for TLDs etc + */ + public void addTldSkipPatterns(String... patterns) { + Assert.notNull(patterns, "Patterns must not be null"); + this.tldSkipPatterns.addAll(Arrays.asList(patterns)); + } + + /** + * The Tomcat protocol to use when create the {@link Connector}. + * @param protocol the protocol + * @see Connector#Connector(String) + */ + public void setProtocol(String protocol) { + Assert.hasLength(protocol, "Protocol must not be empty"); + this.protocol = protocol; + } + + /** + * Set {@link Valve}s that should be applied to the Tomcat {@link Engine}. Calling + * this method will replace any existing valves. + * @param engineValves the valves to set + */ + public void setEngineValves(Collection engineValves) { + Assert.notNull(engineValves, "Valves must not be null"); + this.engineValves = new ArrayList<>(engineValves); + } + + /** + * Returns a mutable collection of the {@link Valve}s that will be applied to the + * Tomcat {@link Engine}. + * @return the engineValves the valves that will be applied + */ + public Collection getEngineValves() { + return this.engineValves; + } + + /** + * Add {@link Valve}s that should be applied to the Tomcat {@link Engine}. + * @param engineValves the valves to add + */ + public void addEngineValves(Valve... engineValves) { + Assert.notNull(engineValves, "Valves must not be null"); + this.engineValves.addAll(Arrays.asList(engineValves)); + } + + /** + * Set {@link Valve}s that should be applied to the Tomcat {@link Context}. Calling + * this method will replace any existing valves. + * @param contextValves the valves to set + */ + public void setContextValves(Collection contextValves) { + Assert.notNull(contextValves, "Valves must not be null"); + this.contextValves = new ArrayList<>(contextValves); + } + + /** + * Returns a mutable collection of the {@link Valve}s that will be applied to the + * Tomcat {@link Context}. + * @return the contextValves the valves that will be applied + * @see #getEngineValves() + */ + public Collection getContextValves() { + return this.contextValves; + } + + /** + * Add {@link Valve}s that should be applied to the Tomcat {@link Context}. + * @param contextValves the valves to add + */ + public void addContextValves(Valve... contextValves) { + Assert.notNull(contextValves, "Valves must not be null"); + this.contextValves.addAll(Arrays.asList(contextValves)); + } + + /** + * Set {@link LifecycleListener}s that should be applied to the Tomcat {@link Context} + * . Calling this method will replace any existing listeners. + * @param contextLifecycleListeners the listeners to set + */ + public void setContextLifecycleListeners( + Collection contextLifecycleListeners) { + Assert.notNull(contextLifecycleListeners, + "ContextLifecycleListeners must not be null"); + this.contextLifecycleListeners = new ArrayList<>(contextLifecycleListeners); + } + + /** + * Returns a mutable collection of the {@link LifecycleListener}s that will be applied + * to the Tomcat {@link Context} . + * @return the contextLifecycleListeners the listeners that will be applied + */ + public Collection getContextLifecycleListeners() { + return this.contextLifecycleListeners; + } + + /** + * Add {@link LifecycleListener}s that should be added to the Tomcat {@link Context}. + * @param contextLifecycleListeners the listeners to add + */ + public void addContextLifecycleListeners( + LifecycleListener... contextLifecycleListeners) { + Assert.notNull(contextLifecycleListeners, + "ContextLifecycleListeners must not be null"); + this.contextLifecycleListeners.addAll(Arrays.asList(contextLifecycleListeners)); + } + + /** + * Set {@link TomcatContextCustomizer}s that should be applied to the Tomcat + * {@link Context} . Calling this method will replace any existing customizers. + * @param tomcatContextCustomizers the customizers to set + */ + public void setTomcatContextCustomizers( + Collection tomcatContextCustomizers) { + Assert.notNull(tomcatContextCustomizers, + "TomcatContextCustomizers must not be null"); + this.tomcatContextCustomizers = new ArrayList<>(tomcatContextCustomizers); + } + + /** + * Returns a mutable collection of the {@link TomcatContextCustomizer}s that will be + * applied to the Tomcat {@link Context} . + * @return the listeners that will be applied + */ + public Collection getTomcatContextCustomizers() { + return this.tomcatContextCustomizers; + } + + /** + * Add {@link TomcatContextCustomizer}s that should be added to the Tomcat + * {@link Context}. + * @param tomcatContextCustomizers the customizers to add + */ + public void addContextCustomizers( + TomcatContextCustomizer... tomcatContextCustomizers) { + Assert.notNull(tomcatContextCustomizers, + "TomcatContextCustomizers must not be null"); + this.tomcatContextCustomizers.addAll(Arrays.asList(tomcatContextCustomizers)); + } + + /** + * Set {@link TomcatConnectorCustomizer}s that should be applied to the Tomcat + * {@link Connector} . Calling this method will replace any existing customizers. + * @param tomcatConnectorCustomizers the customizers to set + */ + public void setTomcatConnectorCustomizers( + Collection tomcatConnectorCustomizers) { + Assert.notNull(tomcatConnectorCustomizers, + "TomcatConnectorCustomizers must not be null"); + this.tomcatConnectorCustomizers = new ArrayList<>(tomcatConnectorCustomizers); + } + + /** + * Add {@link TomcatContextCustomizer}s that should be added to the Tomcat + * {@link Connector}. + * @param tomcatConnectorCustomizers the customizers to add + */ + public void addConnectorCustomizers( + TomcatConnectorCustomizer... tomcatConnectorCustomizers) { + Assert.notNull(tomcatConnectorCustomizers, + "TomcatConnectorCustomizers must not be null"); + this.tomcatConnectorCustomizers.addAll(Arrays.asList(tomcatConnectorCustomizers)); + } + + /** + * Returns a mutable collection of the {@link TomcatConnectorCustomizer}s that will be + * applied to the Tomcat {@link Context} . + * @return the listeners that will be applied + */ + public Collection getTomcatConnectorCustomizers() { + return this.tomcatConnectorCustomizers; + } + + /** + * Add {@link Connector}s in addition to the default connector, e.g. for SSL or AJP + * @param connectors the connectors to add + */ + public void addAdditionalTomcatConnectors(Connector... connectors) { + Assert.notNull(connectors, "Connectors must not be null"); + this.additionalTomcatConnectors.addAll(Arrays.asList(connectors)); + } + + /** + * Returns a mutable collection of the {@link Connector}s that will be added to the + * Tomcat. + * @return the additionalTomcatConnectors + */ + public List getAdditionalTomcatConnectors() { + return this.additionalTomcatConnectors; + } + + /** + * Set the character encoding to use for URL decoding. If not specified 'UTF-8' will + * be used. + * @param uriEncoding the uri encoding to set + */ + public void setUriEncoding(Charset uriEncoding) { + this.uriEncoding = uriEncoding; + } + + /** + * Returns the character encoding to use for URL decoding. + * @return the URI encoding + */ + public Charset getUriEncoding() { + return this.uriEncoding; + } + + /** + * Sets the background processor delay in seconds. + * @param delay the delay in seconds + * @since 1.4.1 + */ + public void setBackgroundProcessorDelay(int delay) { + this.backgroundProcessorDelay = delay; + } + + /** + * {@link LifecycleListener} to disable persistence in the {@link StandardManager}. A + * {@link LifecycleListener} is used so not to interfere with Tomcat's default manager + * creation logic. + */ + private static class DisablePersistSessionListener implements LifecycleListener { + + @Override + public void lifecycleEvent(LifecycleEvent event) { + if (event.getType().equals(Lifecycle.START_EVENT)) { + Context context = (Context) event.getLifecycle(); + Manager manager = context.getManager(); + if (manager != null && manager instanceof StandardManager) { + ((StandardManager) manager).setPathname(null); + } + } + } + + } + + private final class StaticResourceConfigurer implements LifecycleListener { + + private final Context context; + + private StaticResourceConfigurer(Context context) { + this.context = context; + } + + @Override + public void lifecycleEvent(LifecycleEvent event) { + if (event.getType().equals(Lifecycle.CONFIGURE_START_EVENT)) { + addResourceJars(getUrlsOfJarsWithMetaInfResources()); + } + } + + private void addResourceJars(List resourceJarUrls) { + for (URL url : resourceJarUrls) { + String file = url.getFile(); + if (file.endsWith(".jar") || file.endsWith(".jar!/")) { + String jar = url.toString(); + if (!jar.startsWith("jar:")) { + // A jar file in the file system. Convert to Jar URL. + jar = "jar:" + jar + "!/"; + } + addResourceSet(jar); + } + else { + addResourceSet(url.toString()); + } + } + } + + private void addResourceSet(String resource) { + try { + if (isInsideNestedJar(resource)) { + // It's a nested jar but we now don't want the suffix because Tomcat + // is going to try and locate it as a root URL (not the resource + // inside it) + resource = resource.substring(0, resource.length() - 2); + } + URL url = new URL(resource); + String path = "/META-INF/resources"; + this.context.getResources().createWebResourceSet( + ResourceSetType.RESOURCE_JAR, "/", url, path); + } + catch (Exception ex) { + // Ignore (probably not a directory) + } + } + + private boolean isInsideNestedJar(String dir) { + return dir.indexOf("!/") < dir.lastIndexOf("!/"); + } + + } + +} From dbf00668b91e0f39239396d135468831930e3b85 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 14 May 2017 00:29:10 -0300 Subject: [PATCH 127/156] Successfully checking if a field called by 'this.fieldName' is a Collection. - As long as the field is not inherited. --- src/ForLoop.rsc | 7 +++-- src/MethodVar.rsc | 2 ++ .../forloop/EnhancedLoopExpression.rsc | 30 ++++++++++++++----- .../forloop/EnhancedLoopExpressionTest.rsc | 13 ++++++++ 4 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index b8ad2fd..e733a5b 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -48,6 +48,7 @@ private void lookForEnhancedForStatementsInMethod(CompilationUnit unit, MethodDe } } +// TODO What happens when two for statements are refactored inside the same method? private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { set[MethodVar] availableVars = {}; alreadyComputedCurrentMethodAvailableVars = false; @@ -97,9 +98,9 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth } } -private bool isLoopRefactorable(set[MethodVar] methodLocalVariables, Expression collectionId, Statement loopBody) { - return loopBodyPassConditions(loopBody) && isIteratingOnCollection(collectionId, methodLocalVariables) && - atMostOneReferenceToNonEffectiveFinalVar(methodLocalVariables, loopBody); +private bool isLoopRefactorable(set[MethodVar] availableVariables, Expression collectionId, Statement loopBody) { + return loopBodyPassConditions(loopBody) && isIteratingOnCollection(collectionId, availableVariables) && + atMostOneReferenceToNonEffectiveFinalVar(availableVariables, loopBody); } // TODO extract module and test it diff --git a/src/MethodVar.rsc b/src/MethodVar.rsc index 484760b..a1dd490 100644 --- a/src/MethodVar.rsc +++ b/src/MethodVar.rsc @@ -90,6 +90,8 @@ public bool isEffectiveFinal(MethodVar methodVar) { // FIXME This will break if 'this.varName' is referenced, as we are removing the class field // Would need to treat 'this.*' and change how we find vars by name +// One idea is to keep both localVariables AND classFields as separate lists. +// if both exists, a reference to a field can only be made by 'this.field' public set[MethodVar] retainLocalVariablesIfDuplicates(set[MethodVar] classFields, set[MethodVar] localVars) { duplicatedNames = retrieveAllNames(classFields) & retrieveAllNames(localVars); duplicatedClassFields = { field | MethodVar field <- classFields, field.name in duplicatedNames }; diff --git a/src/refactor/forloop/EnhancedLoopExpression.rsc b/src/refactor/forloop/EnhancedLoopExpression.rsc index 6f2cbbd..41234b2 100644 --- a/src/refactor/forloop/EnhancedLoopExpression.rsc +++ b/src/refactor/forloop/EnhancedLoopExpression.rsc @@ -14,21 +14,35 @@ import IO; // Relying on compiler to help finding if it's an array or not // Compiler gives error if expression is not Array/Collection // Therefore we only check if the expression is an Array -public bool isIteratingOnCollection(Expression exp, set[MethodVar] localVariables) { - if (isExpAnIdentifier(exp)) - return isIdentifierACollection(exp, localVariables); +public bool isIteratingOnCollection(Expression exp, set[MethodVar] availableVariables) { + if (!isMethodInvocation(exp)) + return isIdentifierACollection(exp, availableVariables); else return false; } -private bool isExpAnIdentifier(Expression exp) { - expStr = unparse(exp); - return !contains(expStr, ".") && !contains(expStr, "("); +// XXX Ignoring Casts too. +// Redundant for now, because any method invocation will contain '(' +// But not everything that have '(' will be a method invocation. (Casts for instance) +private bool isMethodInvocation(Expression exp) { + expStr = ""; + return contains(expStr, "(") && parsesAsMethodInvocation(exp); } -private bool isIdentifierACollection(Expression exp, set[MethodVar] localVariables) { +private bool parsesAsMethodInvocation(str expStr) { + try { + parse(#MethodInvocation, expStr); + return true; + } catch: + return false; +} + +private bool isIdentifierACollection(Expression exp, set[MethodVar] availableVariables) { varName = trim(unparse(exp)); - var = findByName(localVariables, varName); + // TODO eventually change/remove when dealing correctly with fields + local variables + varName = replaceFirst(varName, "this.", ""); + + var = findByName(availableVariables, varName); return !isTypePlainArray(var) && !isIterable(var); } diff --git a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc index 1dea380..91d4c9c 100644 --- a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc +++ b/src/refactor/forloop/EnhancedLoopExpressionTest.rsc @@ -6,6 +6,7 @@ import ParseTree; import MethodVar; import LocalVariablesFinder; import LocalVariablesFinderTestResources; +import refactor::forloop::ClassFieldsFinder; import refactor::forloop::EnhancedLoopExpression; public test bool iterableShouldReturnFalse() { @@ -39,4 +40,16 @@ public test bool iterableParamShouldReturnFalse() { localVariables = findLocalVariables(methodHeader, methodBody); return isIteratingOnCollection(exp, localVariables) == false; +} + +public test bool thisFieldListShouldReturnTrue() { + exp = parse(#Expression, "this.engineValves"); + methodHeader = parse(#MethodHeader, "void configureEngine(Engine engine)"); + methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField2|; + methodBody = parse(#MethodBody, readFile(methodBodyLoc)); + localVariables = findLocalVariables(methodHeader, methodBody); + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + vars = localVariables + classFields; + + return isIteratingOnCollection(exp, vars) == true; } \ No newline at end of file From 623543aefaff635766d04e006cf7eae44c5e8f47 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 14 May 2017 00:29:46 -0300 Subject: [PATCH 128/156] Removing a forgotten debug println() in a test. --- src/refactor/forloop/test/BreakIntoStatementsTest.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc index 8cb746c..1308691 100644 --- a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/refactor/forloop/test/BreakIntoStatementsTest.rsc @@ -114,7 +114,7 @@ public test bool shouldIncludeLocalVariableDeclarationInsideBlock() { block = "{\nupdated.put(snapshot.getFolder(), snapshot);\nChangedFiles changedFiles = previous.getChangedFiles(snapshot,\r\n this.triggerFilter);\n}"; stmts = breakIntoStatements(block); - printStmtsBrokenInto(stmts); + return size(stmts) == 2 && "" == "updated.put(snapshot.getFolder(), snapshot);" && stmts[0].stmtType == "ExpressionStatement" && From 1f4978cbfa436e84af59e174014a15bb146dae6d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 14 May 2017 00:34:16 -0300 Subject: [PATCH 129/156] Fixing some old tests. --- src/refactor/forloop/AvailableVariablesTest.rsc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/refactor/forloop/AvailableVariablesTest.rsc b/src/refactor/forloop/AvailableVariablesTest.rsc index 1b87fba..34141fb 100644 --- a/src/refactor/forloop/AvailableVariablesTest.rsc +++ b/src/refactor/forloop/AvailableVariablesTest.rsc @@ -9,8 +9,8 @@ import IO; public test bool methodParamShouldBeAvailableVar() { prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); - methodVars = {methodVar(false, "thing", "String", false, true), - methodVar(false, "writer", "PrintWriter", true, false)}; + methodVars = {methodVar(false, "thing", "String", false, true, false), + methodVar(false, "writer", "PrintWriter", true, false, false)}; availableVars = retrieveAvailableVariables(prOp, methodVars); @@ -20,8 +20,8 @@ public test bool methodParamShouldBeAvailableVar() { public test bool varWithinLoopShouldNotBeAvailable() { prOp = prospectiveOperation("rule.hasErrors()", FILTER); - methodVars = {methodVar(false, "count", "int", false, false), - methodVar(false, "rule", "ElementRule", false, true)}; + methodVars = {methodVar(false, "count", "int", false, false, false), + methodVar(false, "rule", "ElementRule", false, true, false)}; availableVars = retrieveAvailableVariables(prOp, methodVars); @@ -30,8 +30,8 @@ public test bool varWithinLoopShouldNotBeAvailable() { public test bool varNotWithinLoopShouldBeAvailable() { prOp = prospectiveOperation("rule.hasErrors()", FILTER); - methodVars = {methodVar(false, "count", "int", false, false), - methodVar(false, "rule", "ElementRule", false, true)}; + methodVars = {methodVar(false, "count", "int", false, false, false), + methodVar(false, "rule", "ElementRule", false, true, false)}; availableVars = retrieveAvailableVariables(prOp, methodVars); @@ -48,9 +48,9 @@ public test bool localVariableDeclarationShouldBeAvailableVar() { "cl" in availableVars; } -public test bool LocalVariableDeclAlongWithVarNotWithinLoopShouldBeAvailableVars() { +public test bool localVariableDeclAlongWithVarNotWithinLoopShouldBeAvailableVars() { prOp = prospectiveOperation("ClassLoader cl = entry.getKey();", MAP); - methodVars = {methodVar(false, "result", "List\", false, false)}; + methodVars = {methodVar(false, "result", "List\", false, false, false)}; availableVars = retrieveAvailableVariables(prOp, methodVars); From d9d009e8e906b2e16d1795453098ce63a0f8c05a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 14 May 2017 00:49:21 -0300 Subject: [PATCH 130/156] Fixing wrong old parameter in method call. --- src/refactor/forloop/EnhancedLoopExpression.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/refactor/forloop/EnhancedLoopExpression.rsc b/src/refactor/forloop/EnhancedLoopExpression.rsc index 41234b2..eb9a32c 100644 --- a/src/refactor/forloop/EnhancedLoopExpression.rsc +++ b/src/refactor/forloop/EnhancedLoopExpression.rsc @@ -26,7 +26,7 @@ public bool isIteratingOnCollection(Expression exp, set[MethodVar] availableVari // But not everything that have '(' will be a method invocation. (Casts for instance) private bool isMethodInvocation(Expression exp) { expStr = ""; - return contains(expStr, "(") && parsesAsMethodInvocation(exp); + return contains(expStr, "(") && parsesAsMethodInvocation(expStr); } private bool parsesAsMethodInvocation(str expStr) { From b0d01f946147b4e7fdf962a3243ecb4eb56f27c7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 14 May 2017 02:05:18 -0300 Subject: [PATCH 131/156] Ignoring loops that contains any type of continue statement. - Lambdaficator refactors some, we are not doing this right now. --- src/ForLoop.rsc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ForLoop.rsc b/src/ForLoop.rsc index e733a5b..50176c4 100644 --- a/src/ForLoop.rsc +++ b/src/ForLoop.rsc @@ -120,7 +120,10 @@ private bool loopBodyPassConditions(Statement loopBody) { returnCount += 1; } - + + // TODO remove in case we refactor loops with if with continue + case ContinueStatement continueStmt: return false; + // labeled continue. case (ContinueStatement) `continue ;`: return false; } From e97c5b535a89e5bab7b5c94b6f6f7426426a4c2b Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 16 May 2017 18:14:16 -0300 Subject: [PATCH 132/156] Changing everything ForLoopToFunctional modules' folders. --- .../java/analysis}/ExceptionFinder.rsc | 0 .../analysis/test}/ExceptionFinderTest.rsc | 0 .../forloop/AvailableVariables.rsc | 6 +- .../forloop/BreakIntoStatements.rsc | 2 +- .../forloop/ClassFieldsFinder.rsc | 4 +- .../forloop/EnhancedLoopExpression.rsc | 4 +- .../java/refactoring/forloop}/ForLoop.rsc | 0 .../forloop/ForLoopBodyReferences.rsc | 4 +- .../forloop/ForLoopToFunctional.rsc | 16 ++--- .../forloop}/LocalVariablesFinder.rsc | 4 +- .../java/refactoring/forloop}/MethodVar.rsc | 2 +- .../refactoring}/forloop/OperationType.rsc | 2 +- .../forloop/ProspectiveOperation.rsc | 8 +-- .../refactoring}/forloop/UsedVariables.rsc | 6 +- .../forloop/test}/AvailableVariablesTest.rsc | 10 ++-- .../forloop/test/BreakIntoStatementsTest.rsc | 18 +++--- .../forloop/test}/ClassFieldsFinderTest.rsc | 8 +-- .../test}/EnhancedLoopExpressionTest.rsc | 18 +++--- .../test/ForLoopBodyReferencesTest.rsc | 16 ++--- .../forloop/test}/ForLoopToFunctionalTest.rsc | 60 ++++++++++--------- .../test}/LocalVariablesFinderTest.rsc | 8 +-- .../test}/ProspectiveOperationTest.rsc | 10 ++-- .../forloop/test}/UsedVariablesTest.rsc | 10 ++-- .../LocalVariablesFinderTestResources.rsc | 30 +++++----- .../ProspectiveOperationTestResources.rsc | 38 ++++++------ .../EnhancedForOnIterable.java | 0 ...IfWithTwoStmtsInsideAndStmtAfterBlock.java | 0 .../ForWith3StatementsMapBody.java | 0 .../ForWithMultiStatementMap.java | 0 .../ForLoopToFunctional/InnerLoop1.java | 0 .../ForLoopToFunctional/InnerLoop2.java | 0 .../LoopWithInnerWhile.java | 0 .../MethodBodyIfAsNotAFilter | 0 ...IfWithTwoStmtsInsideAndStmtAfterBlock.java | 0 .../MethodBodyInnerLoop1.java | 0 .../MethodBodyInnerLoop2.java | 0 .../MethodBodyLoopWithInnerWhile.java | 0 .../MethodBodyWIth3StatementsMapBody.java | 0 .../MethodBodyWithMultiStatementMap.java | 0 .../ForLoopToFunctional/NestedLoops.java | 0 .../ForLoopToFunctional/SimpleForEach.java | 0 .../{ => forloop}/ForLoopToFunctional/T1.java | 0 .../{ => forloop}/ForLoopToFunctional/T2.java | 0 .../ForLoopToFunctional/T2For.java | 0 .../ForLoopToFunctional/T2For2.java | 0 .../ContinueAndReturnEnhancedLoop | 0 .../FilterAndMergedForEach | 0 .../FilterMapReduceEnhancedLoop | 0 .../SimpleShortEnhancedLoop | 0 .../classFields/ForIteratingOnThisField | 0 .../classFields/ForIteratingOnThisField2 | 0 .../MethodBodyIteratingOnThisField | 0 .../MethodBodyIteratingOnThisField2 | 0 .../TomcatServletWebServerFactory.java | 0 .../localVariables/ClassWithFields.java | 0 .../EnhancedForLoopFinalVarDecl | 0 .../EnhancedForLoopVarsWithinLoop | 0 .../EnhancedForLoopWithException | 0 .../IterableParameterMethodBody | 0 .../MethodBodyAssignmentInsideLoop | 0 .../MethodBodyPostDecrementedVar | 0 .../MethodBodyPostIncrementedVar | 0 .../MethodBodyPostIncrementedVar2 | 0 .../MethodBodyPostIncrementedVar3 | 0 .../MethodBodyReduceWithPostIncrement | 0 .../MethodBodyWithAnonnymousInnerClass | 0 ...WithTwoReferencesToOutsideNonEffectiveVars | 0 .../MultiplePlainArrayDeclarations | 0 .../NonEffectiveFinalUsedInEnhancedFor | 0 69 files changed, 143 insertions(+), 141 deletions(-) rename src/{ => lang/java/analysis}/ExceptionFinder.rsc (100%) rename src/{ => lang/java/analysis/test}/ExceptionFinderTest.rsc (100%) rename src/{refactor => lang/java/refactoring}/forloop/AvailableVariables.rsc (87%) rename src/{refactor => lang/java/refactoring}/forloop/BreakIntoStatements.rsc (96%) rename src/{refactor => lang/java/refactoring}/forloop/ClassFieldsFinder.rsc (93%) rename src/{refactor => lang/java/refactoring}/forloop/EnhancedLoopExpression.rsc (93%) rename src/{ => lang/java/refactoring/forloop}/ForLoop.rsc (100%) rename src/{refactor => lang/java/refactoring}/forloop/ForLoopBodyReferences.rsc (93%) rename src/{refactor => lang/java/refactoring}/forloop/ForLoopToFunctional.rsc (96%) rename src/{ => lang/java/refactoring/forloop}/LocalVariablesFinder.rsc (98%) rename src/{ => lang/java/refactoring/forloop}/MethodVar.rsc (98%) rename src/{refactor => lang/java/refactoring}/forloop/OperationType.rsc (77%) rename src/{refactor => lang/java/refactoring}/forloop/ProspectiveOperation.rsc (97%) rename src/{refactor => lang/java/refactoring}/forloop/UsedVariables.rsc (94%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/AvailableVariablesTest.rsc (87%) rename src/{refactor => lang/java/refactoring}/forloop/test/BreakIntoStatementsTest.rsc (86%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/ClassFieldsFinderTest.rsc (71%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/EnhancedLoopExpressionTest.rsc (70%) rename src/{refactor => lang/java/refactoring}/forloop/test/ForLoopBodyReferencesTest.rsc (78%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/ForLoopToFunctionalTest.rsc (83%) rename src/{ => lang/java/refactoring/forloop/test}/LocalVariablesFinderTest.rsc (96%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/ProspectiveOperationTest.rsc (95%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test}/UsedVariablesTest.rsc (87%) rename src/{ => lang/java/refactoring/forloop/test/resources}/LocalVariablesFinderTestResources.rsc (79%) rename src/{refactor/forloop => lang/java/refactoring/forloop/test/resources}/ProspectiveOperationTestResources.rsc (77%) rename testes/{ => forloop}/ForLoopToFunctional/EnhancedForOnIterable.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/ForWith3StatementsMapBody.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/ForWithMultiStatementMap.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/InnerLoop1.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/InnerLoop2.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/LoopWithInnerWhile.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyIfAsNotAFilter (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyInnerLoop1.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyInnerLoop2.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/NestedLoops.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/SimpleForEach.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/T1.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/T2.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/T2For.java (100%) rename testes/{ => forloop}/ForLoopToFunctional/T2For2.java (100%) rename testes/{ => forloop}/ProspectiveOperation/ContinueAndReturnEnhancedLoop (100%) rename testes/{ => forloop}/ProspectiveOperation/FilterAndMergedForEach (100%) rename testes/{ => forloop}/ProspectiveOperation/FilterMapReduceEnhancedLoop (100%) rename testes/{ => forloop}/ProspectiveOperation/SimpleShortEnhancedLoop (100%) rename testes/{ => forloop}/classFields/ForIteratingOnThisField (100%) rename testes/{ => forloop}/classFields/ForIteratingOnThisField2 (100%) rename testes/{ => forloop}/classFields/MethodBodyIteratingOnThisField (100%) rename testes/{ => forloop}/classFields/MethodBodyIteratingOnThisField2 (100%) rename testes/{ => forloop}/classFields/TomcatServletWebServerFactory.java (100%) rename testes/{ => forloop}/localVariables/ClassWithFields.java (100%) rename testes/{ => forloop}/localVariables/EnhancedForLoopFinalVarDecl (100%) rename testes/{ => forloop}/localVariables/EnhancedForLoopVarsWithinLoop (100%) rename testes/{ => forloop}/localVariables/EnhancedForLoopWithException (100%) rename testes/{ => forloop}/localVariables/IterableParameterMethodBody (100%) rename testes/{ => forloop}/localVariables/MethodBodyAssignmentInsideLoop (100%) rename testes/{ => forloop}/localVariables/MethodBodyPostDecrementedVar (100%) rename testes/{ => forloop}/localVariables/MethodBodyPostIncrementedVar (100%) rename testes/{ => forloop}/localVariables/MethodBodyPostIncrementedVar2 (100%) rename testes/{ => forloop}/localVariables/MethodBodyPostIncrementedVar3 (100%) rename testes/{ => forloop}/localVariables/MethodBodyReduceWithPostIncrement (100%) rename testes/{ => forloop}/localVariables/MethodBodyWithAnonnymousInnerClass (100%) rename testes/{ => forloop}/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars (100%) rename testes/{ => forloop}/localVariables/MultiplePlainArrayDeclarations (100%) rename testes/{ => forloop}/localVariables/NonEffectiveFinalUsedInEnhancedFor (100%) diff --git a/src/ExceptionFinder.rsc b/src/lang/java/analysis/ExceptionFinder.rsc similarity index 100% rename from src/ExceptionFinder.rsc rename to src/lang/java/analysis/ExceptionFinder.rsc diff --git a/src/ExceptionFinderTest.rsc b/src/lang/java/analysis/test/ExceptionFinderTest.rsc similarity index 100% rename from src/ExceptionFinderTest.rsc rename to src/lang/java/analysis/test/ExceptionFinderTest.rsc diff --git a/src/refactor/forloop/AvailableVariables.rsc b/src/lang/java/refactoring/forloop/AvailableVariables.rsc similarity index 87% rename from src/refactor/forloop/AvailableVariables.rsc rename to src/lang/java/refactoring/forloop/AvailableVariables.rsc index 6004786..857adcc 100644 --- a/src/refactor/forloop/AvailableVariables.rsc +++ b/src/lang/java/refactoring/forloop/AvailableVariables.rsc @@ -1,10 +1,10 @@ -module refactor::forloop::AvailableVariables +module lang::java::refactoring::forloop::AvailableVariables import Set; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import refactor::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::ProspectiveOperation; // XXX assess the necessity to verify these others conditions: // fields declared in class, inherited and visible from imported classes ?? diff --git a/src/refactor/forloop/BreakIntoStatements.rsc b/src/lang/java/refactoring/forloop/BreakIntoStatements.rsc similarity index 96% rename from src/refactor/forloop/BreakIntoStatements.rsc rename to src/lang/java/refactoring/forloop/BreakIntoStatements.rsc index 61a6c12..710b805 100644 --- a/src/refactor/forloop/BreakIntoStatements.rsc +++ b/src/lang/java/refactoring/forloop/BreakIntoStatements.rsc @@ -1,4 +1,4 @@ -module refactor::forloop::BreakIntoStatements +module lang::java::refactoring::forloop::BreakIntoStatements import IO; import List; diff --git a/src/refactor/forloop/ClassFieldsFinder.rsc b/src/lang/java/refactoring/forloop/ClassFieldsFinder.rsc similarity index 93% rename from src/refactor/forloop/ClassFieldsFinder.rsc rename to src/lang/java/refactoring/forloop/ClassFieldsFinder.rsc index 18956c9..d991895 100644 --- a/src/refactor/forloop/ClassFieldsFinder.rsc +++ b/src/lang/java/refactoring/forloop/ClassFieldsFinder.rsc @@ -1,11 +1,11 @@ -module refactor::forloop::ClassFieldsFinder +module lang::java::refactoring::forloop::ClassFieldsFinder import IO; import lang::java::\syntax::Java18; import ParseTree; import String; import Set; -import MethodVar; +import lang::java::refactoring::forloop::MethodVar; // M3 isn't very helpful here. // We can't really get type + var name diff --git a/src/refactor/forloop/EnhancedLoopExpression.rsc b/src/lang/java/refactoring/forloop/EnhancedLoopExpression.rsc similarity index 93% rename from src/refactor/forloop/EnhancedLoopExpression.rsc rename to src/lang/java/refactoring/forloop/EnhancedLoopExpression.rsc index eb9a32c..b7ceb8c 100644 --- a/src/refactor/forloop/EnhancedLoopExpression.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedLoopExpression.rsc @@ -1,10 +1,10 @@ -module refactor::forloop::EnhancedLoopExpression +module lang::java::refactoring::forloop::EnhancedLoopExpression import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; import String; import IO; +import lang::java::refactoring::forloop::MethodVar; // XXX Only checking iterable variables defined in method (local and parameter) // Need to verify class and instance variables too! diff --git a/src/ForLoop.rsc b/src/lang/java/refactoring/forloop/ForLoop.rsc similarity index 100% rename from src/ForLoop.rsc rename to src/lang/java/refactoring/forloop/ForLoop.rsc diff --git a/src/refactor/forloop/ForLoopBodyReferences.rsc b/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc similarity index 93% rename from src/refactor/forloop/ForLoopBodyReferences.rsc rename to src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc index e16cb40..f932f2f 100644 --- a/src/refactor/forloop/ForLoopBodyReferences.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc @@ -1,11 +1,11 @@ -module refactor::forloop::ForLoopBodyReferences +module lang::java::refactoring::forloop::ForLoopBodyReferences import lang::java::\syntax::Java18; import String; import ParseTree; import IO; import Set; -import MethodVar; +import lang::java::refactoring::forloop::MethodVar; public bool atMostOneReferenceToNonEffectiveFinalVar(set[MethodVar] localVariables, Statement loopBody) { return getTotalOfNonEffectiveFinalVarsReferenced(localVariables, loopBody) <= 1; diff --git a/src/refactor/forloop/ForLoopToFunctional.rsc b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc similarity index 96% rename from src/refactor/forloop/ForLoopToFunctional.rsc rename to src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc index 4c93d68..d5613db 100644 --- a/src/refactor/forloop/ForLoopToFunctional.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc @@ -1,4 +1,4 @@ -module refactor::forloop::ForLoopToFunctional +module lang::java::refactoring::forloop::ForLoopToFunctional import IO; import List; @@ -6,13 +6,13 @@ import Set; import String; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import refactor::forloop::ProspectiveOperation; -import refactor::forloop::UsedVariables; -import refactor::forloop::AvailableVariables; -import refactor::forloop::OperationType; -import refactor::forloop::ForLoopBodyReferences; -import refactor::forloop::BreakIntoStatements; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::UsedVariables; +import lang::java::refactoring::forloop::AvailableVariables; +import lang::java::refactoring::forloop::OperationType; +import lang::java::refactoring::forloop::ForLoopBodyReferences; +import lang::java::refactoring::forloop::BreakIntoStatements; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); diff --git a/src/LocalVariablesFinder.rsc b/src/lang/java/refactoring/forloop/LocalVariablesFinder.rsc similarity index 98% rename from src/LocalVariablesFinder.rsc rename to src/lang/java/refactoring/forloop/LocalVariablesFinder.rsc index e92efd2..0670417 100644 --- a/src/LocalVariablesFinder.rsc +++ b/src/lang/java/refactoring/forloop/LocalVariablesFinder.rsc @@ -1,11 +1,11 @@ -module LocalVariablesFinder +module lang::java::refactoring::forloop::LocalVariablesFinder import IO; import lang::java::\syntax::Java18; import ParseTree; import Set; import String; -import MethodVar; +import lang::java::refactoring::forloop::MethodVar; public set[MethodVar] findLocalVariables(MethodHeader methodHeader, MethodBody methodBody) { return findVariablesAsParameters(methodHeader) + findVariablesInsideBody(methodBody); diff --git a/src/MethodVar.rsc b/src/lang/java/refactoring/forloop/MethodVar.rsc similarity index 98% rename from src/MethodVar.rsc rename to src/lang/java/refactoring/forloop/MethodVar.rsc index a1dd490..ee36a71 100644 --- a/src/MethodVar.rsc +++ b/src/lang/java/refactoring/forloop/MethodVar.rsc @@ -1,4 +1,4 @@ -module MethodVar +module lang::java::refactoring::forloop::MethodVar import Set; import String; diff --git a/src/refactor/forloop/OperationType.rsc b/src/lang/java/refactoring/forloop/OperationType.rsc similarity index 77% rename from src/refactor/forloop/OperationType.rsc rename to src/lang/java/refactoring/forloop/OperationType.rsc index a65568a..9dda9ff 100644 --- a/src/refactor/forloop/OperationType.rsc +++ b/src/lang/java/refactoring/forloop/OperationType.rsc @@ -1,4 +1,4 @@ -module refactor::forloop::OperationType +module lang::java::refactoring::forloop::OperationType public str FILTER = "filter"; public str MAP = "map"; diff --git a/src/refactor/forloop/ProspectiveOperation.rsc b/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc similarity index 97% rename from src/refactor/forloop/ProspectiveOperation.rsc rename to src/lang/java/refactoring/forloop/ProspectiveOperation.rsc index 6b77f38..9bdf04c 100644 --- a/src/refactor/forloop/ProspectiveOperation.rsc +++ b/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc @@ -1,14 +1,14 @@ -module refactor::forloop::ProspectiveOperation +module lang::java::refactoring::forloop::ProspectiveOperation import IO; import List; import String; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import refactor::forloop::OperationType; import ParseTreeVisualization; -import refactor::forloop::BreakIntoStatements; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::OperationType; +import lang::java::refactoring::forloop::BreakIntoStatements; public data ProspectiveOperation = prospectiveOperation(str stmt, str operation); diff --git a/src/refactor/forloop/UsedVariables.rsc b/src/lang/java/refactoring/forloop/UsedVariables.rsc similarity index 94% rename from src/refactor/forloop/UsedVariables.rsc rename to src/lang/java/refactoring/forloop/UsedVariables.rsc index 5ab7656..e8f2a83 100644 --- a/src/refactor/forloop/UsedVariables.rsc +++ b/src/lang/java/refactoring/forloop/UsedVariables.rsc @@ -1,12 +1,12 @@ -module refactor::forloop::UsedVariables +module lang::java::refactoring::forloop::UsedVariables import IO; import String; import Set; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import refactor::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::ProspectiveOperation; public set[str] retrieveUsedVariables(ProspectiveOperation prOp) { set[str] usedVariables = {}; diff --git a/src/refactor/forloop/AvailableVariablesTest.rsc b/src/lang/java/refactoring/forloop/test/AvailableVariablesTest.rsc similarity index 87% rename from src/refactor/forloop/AvailableVariablesTest.rsc rename to src/lang/java/refactoring/forloop/test/AvailableVariablesTest.rsc index 34141fb..aae5dc8 100644 --- a/src/refactor/forloop/AvailableVariablesTest.rsc +++ b/src/lang/java/refactoring/forloop/test/AvailableVariablesTest.rsc @@ -1,11 +1,11 @@ -module refactor::forloop::AvailableVariablesTest +module lang::java::refactoring::forloop::\test::AvailableVariablesTest -import refactor::forloop::AvailableVariables; -import refactor::forloop::ProspectiveOperation; -import refactor::forloop::OperationType; -import MethodVar; import Set; import IO; +import lang::java::refactoring::forloop::AvailableVariables; +import lang::java::refactoring::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::OperationType; +import lang::java::refactoring::forloop::MethodVar; public test bool methodParamShouldBeAvailableVar() { prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); diff --git a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc similarity index 86% rename from src/refactor/forloop/test/BreakIntoStatementsTest.rsc rename to src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc index 1308691..5c61546 100644 --- a/src/refactor/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc @@ -1,15 +1,15 @@ -module refactor::forloop::\test::BreakIntoStatementsTest +module lang::java::refactoring::forloop::\test::BreakIntoStatementsTest import IO; -import refactor::forloop::BreakIntoStatements; +import lang::java::refactoring::forloop::BreakIntoStatements; import lang::java::\syntax::Java18; -import refactor::forloop::ProspectiveOperationTestResources; -import refactor::forloop::ForLoopBodyReferences; +import lang::java::refactoring::forloop::ProspectiveOperationTestResources; +import lang::java::refactoring::forloop::ForLoopBodyReferences; import ParseTree; import ParseTreeVisualization; public test bool ex1() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/SimpleShortEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); @@ -22,7 +22,7 @@ public test bool ex1() { } public test bool ex2() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); @@ -36,7 +36,7 @@ public test bool ex2() { } public test bool ex3() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterMapReduceEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/FilterMapReduceEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); @@ -77,7 +77,7 @@ public test bool ex5() { } public test bool ex6() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileForLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); @@ -90,7 +90,7 @@ public test bool ex6() { // inside the if after the loop from previous example public test bool ex7() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileForLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(enhancedForLoop); list[Stmt] stmts = []; diff --git a/src/refactor/forloop/ClassFieldsFinderTest.rsc b/src/lang/java/refactoring/forloop/test/ClassFieldsFinderTest.rsc similarity index 71% rename from src/refactor/forloop/ClassFieldsFinderTest.rsc rename to src/lang/java/refactoring/forloop/test/ClassFieldsFinderTest.rsc index 8afffd0..40a65a4 100644 --- a/src/refactor/forloop/ClassFieldsFinderTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ClassFieldsFinderTest.rsc @@ -1,13 +1,13 @@ -module refactor::forloop::ClassFieldsFinderTest +module lang::java::refactoring::forloop::\test::ClassFieldsFinderTest import lang::java::\syntax::Java18; import ParseTree; -import refactor::forloop::ClassFieldsFinder; -import MethodVar; +import lang::java::refactoring::forloop::ClassFieldsFinder; +import lang::java::refactoring::forloop::MethodVar; import Set; public test bool shouldReturnAllClassFields() { - fileLoc = |project://rascal-Java8//testes/localVariables/ClassWithFields.java|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/ClassWithFields.java|; unit = parse(#CompilationUnit, fileLoc); classFields = findClassFields(unit); diff --git a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedLoopExpressionTest.rsc similarity index 70% rename from src/refactor/forloop/EnhancedLoopExpressionTest.rsc rename to src/lang/java/refactoring/forloop/test/EnhancedLoopExpressionTest.rsc index 91d4c9c..98404e1 100644 --- a/src/refactor/forloop/EnhancedLoopExpressionTest.rsc +++ b/src/lang/java/refactoring/forloop/test/EnhancedLoopExpressionTest.rsc @@ -1,13 +1,13 @@ -module refactor::forloop::EnhancedLoopExpressionTest +module lang::java::refactoring::forloop::\test::EnhancedLoopExpressionTest import IO; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import LocalVariablesFinder; -import LocalVariablesFinderTestResources; -import refactor::forloop::ClassFieldsFinder; -import refactor::forloop::EnhancedLoopExpression; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::LocalVariablesFinder; +import lang::java::refactoring::forloop::\test::resources::LocalVariablesFinderTestResources; +import lang::java::refactoring::forloop::ClassFieldsFinder; +import lang::java::refactoring::forloop::EnhancedLoopExpression; public test bool iterableShouldReturnFalse() { params = paramsEnhancedForOnIterable(); @@ -24,7 +24,7 @@ private tuple[Expression exp, set[MethodVar] localVariables] paramsEnhancedForOn } private tuple[MethodHeader methodHeader, MethodBody methodBody] getEnhancedForOnIterable() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/EnhancedForOnIterable.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/EnhancedForOnIterable.java|; methodDeclaration = parse(#MethodDeclaration, readFile(fileLoc)); visit(methodDeclaration) { case (MethodDeclaration) ` `: { @@ -45,10 +45,10 @@ public test bool iterableParamShouldReturnFalse() { public test bool thisFieldListShouldReturnTrue() { exp = parse(#Expression, "this.engineValves"); methodHeader = parse(#MethodHeader, "void configureEngine(Engine engine)"); - methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField2|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/classFields/MethodBodyIteratingOnThisField2|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); localVariables = findLocalVariables(methodHeader, methodBody); - classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/forloop/classFields/TomcatServletWebServerFactory.java|))); vars = localVariables + classFields; return isIteratingOnCollection(exp, vars) == true; diff --git a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc b/src/lang/java/refactoring/forloop/test/ForLoopBodyReferencesTest.rsc similarity index 78% rename from src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc rename to src/lang/java/refactoring/forloop/test/ForLoopBodyReferencesTest.rsc index cd68379..9c96254 100644 --- a/src/refactor/forloop/test/ForLoopBodyReferencesTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ForLoopBodyReferencesTest.rsc @@ -1,15 +1,15 @@ -module refactor::forloop::\test::ForLoopBodyReferencesTest +module lang::java::refactoring::forloop::\test::ForLoopBodyReferencesTest import IO; import lang::java::\syntax::Java18; import ParseTree; import Set; -import refactor::forloop::ForLoopBodyReferences; -import MethodVar; -import LocalVariablesFinder; +import lang::java::refactoring::forloop::ForLoopBodyReferences; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::LocalVariablesFinder; public test bool variablesReferenced1() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWith3StatementsMapBody.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForWith3StatementsMapBody.java|; forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); @@ -24,7 +24,7 @@ public test bool variablesReferenced1() { } public test bool variablesReferenced2() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWithMultiStatementMap.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForWithMultiStatementMap.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); @@ -39,7 +39,7 @@ public test bool variablesReferenced2() { } public test bool variablesReferenced3() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2For2.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); loopBody = retrieveLoopBodyFromEnhancedFor(forStmt); @@ -68,7 +68,7 @@ public test bool variablesReferenced4() { public test bool shouldBeRefactorableWhenOneReferenceFound() { methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); - methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); localVariables = findLocalVariables(methodHeader, methodBody); forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); diff --git a/src/refactor/forloop/ForLoopToFunctionalTest.rsc b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc similarity index 83% rename from src/refactor/forloop/ForLoopToFunctionalTest.rsc rename to src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc index a941dd8..5125742 100644 --- a/src/refactor/forloop/ForLoopToFunctionalTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc @@ -1,19 +1,21 @@ -module refactor::forloop::ForLoopToFunctionalTest +module lang::java::refactoring::forloop::\test::ForLoopToFunctionalTest import IO; import String; import lang::java::\syntax::Java18; import ParseTree; -import refactor::forloop::ForLoopToFunctional; -import MethodVar; -import LocalVariablesFinder; -import LocalVariablesFinderTestResources; -import refactor::forloop::ProspectiveOperationTestResources; -import refactor::forloop::ClassFieldsFinder; import ParseTreeVisualization; +import lang::java::refactoring::forloop::ForLoopToFunctional; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::LocalVariablesFinder; +import lang::java::refactoring::forloop::ClassFieldsFinder; +import lang::java::refactoring::forloop::\test::resources::LocalVariablesFinderTestResources; +import lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources; + + public test bool ex1() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T1.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T1.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "TestSuite createTestSuite()"); set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); @@ -27,11 +29,11 @@ public test bool ex1() { } public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2For.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "key"); Expression collectionId = parse(#Expression, "keySet"); @@ -46,11 +48,11 @@ public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { } public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2For2.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "entry"); Expression collectionId = parse(#Expression, "entrySet"); @@ -61,11 +63,11 @@ public test bool shouldRefactorReduceWithCompoundPlusAssignmentOperator() { } public test bool shouldAddReturnToMapWithMoreThanOneStatement() { - methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodHeader = parse(#MethodHeader, "Iterable\\> findAll()"); set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWithMultiStatementMap.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForWithMultiStatementMap.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "v"); Expression collectionId = parse(#Expression, "values"); @@ -76,11 +78,11 @@ public test bool shouldAddReturnToMapWithMoreThanOneStatement() { } public test bool shouldAddCorrectReturnTo3StmtsMapBody() { - methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodHeader = parse(#MethodHeader, "void updateSnapshots(Collection\ snapshots)"); set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForWith3StatementsMapBody.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForWith3StatementsMapBody.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "snapshot"); Expression collectionId = parse(#Expression, "snapshots"); @@ -108,7 +110,7 @@ public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEf public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEffectiveFinalVarIsNotAReducer2() { methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); - methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodVars = findLocalVariables(methodHeader, methodBody); forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); @@ -125,7 +127,7 @@ public test bool shouldThrowExceptionWhenALoopWithOnlyOneReferenceToOutsideNonEf public test bool shouldWorkWithThrowStatementInsideAnIfThatIsNotTheLastStatement() { tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowStatement = loopWithThrowStatement(); - methodBodyLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostDecrementedVar|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "key"); Expression collectionId = parse(#Expression, "keysToLoad"); @@ -137,7 +139,7 @@ public test bool shouldWorkWithThrowStatementInsideAnIfThatIsNotTheLastStatement public test bool loopWithIfWithTwoStatementsInsideBlockShouldRefactorInnerIfAsMap() { tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = loopWithIfWithTwoStatementsInsideBlock(); - methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "endpoint"); Expression collectionId = parse(#Expression, "endpoints"); @@ -149,7 +151,7 @@ public test bool loopWithIfWithTwoStatementsInsideBlockShouldRefactorInnerIfAsMa public test bool anotherIfThatIsMap() { methodHeader = parse(#MethodHeader, "void afterPropertiesSet() throws Exception"); - methodBodyLoc = |project://rascal-Java8/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/ForLoopToFunctional/MethodBodyIfAsNotAFilter|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodVars = findLocalVariables(methodHeader, methodBody); forStmt = parse(#EnhancedForStatement, "for (Endpoint\ endpoint : delegates) {if (isGenericEndpoint(endpoint.getClass()) && endpoint.isEnabled()) {EndpointMvcAdapter adapter = new EndpointMvcAdapter(endpoint);String path = determinePath(endpoint,this.applicationContext.getEnvironment());if (path != null) {adapter.setPath(path);}this.endpoints.add(adapter);}}"); @@ -163,15 +165,15 @@ public test bool anotherIfThatIsMap() { public test bool shouldRefactorLoopIteratingOnThisField() { methodHeader = parse(#MethodHeader, "WebServer getWebServer(ServletContextInitializer... initializers)"); - methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/classFields/MethodBodyIteratingOnThisField|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8/testes/classFields/ForIteratingOnThisField|; + fileForLoc = |project://rascal-Java8/testes/forloop/classFields/ForIteratingOnThisField|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "additionalConnector"); Expression collectionId = parse(#Expression, "this.additionalTomcatConnectors"); - classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/forloop/classFields/TomcatServletWebServerFactory.java|))); vars = methodVars + classFields; refactoredStatement = buildRefactoredEnhancedFor(vars, forStmt, methodBody, iteratedVarName, collectionId); @@ -181,15 +183,15 @@ public test bool shouldRefactorLoopIteratingOnThisField() { public test bool shouldRefactorLoopIteratingOnThisField2() { methodHeader = parse(#MethodHeader, "void configureEngine(Engine engine)"); - methodBodyLoc = |project://rascal-Java8/testes/classFields/MethodBodyIteratingOnThisField2|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/classFields/MethodBodyIteratingOnThisField2|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); methodVars = findLocalVariables(methodHeader, methodBody); - fileForLoc = |project://rascal-Java8/testes/classFields/ForIteratingOnThisField2|; + fileForLoc = |project://rascal-Java8/testes/forloop/classFields/ForIteratingOnThisField2|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "valve"); Expression collectionId = parse(#Expression, "this.engineValves"); - classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/classFields/TomcatServletWebServerFactory.java|))); + classFields = findClassFields(parse(#CompilationUnit, readFile(|project://rascal-Java8/testes/forloop/classFields/TomcatServletWebServerFactory.java|))); vars = methodVars + classFields; refactoredStatement = buildRefactoredEnhancedFor(vars, forStmt, methodBody, iteratedVarName, collectionId); @@ -201,7 +203,7 @@ public test bool shouldRefactorLoopIteratingOnThisField2() { // throw "Not yet implemented"; // // methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); -// methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; +// methodBodyLoc = |project://rascal-Java8/testes/forloop/localVariables/MethodBodyReduceWithPostIncrement|; // methodBody = parse(#MethodBody, readFile(methodBodyLoc)); // methodVars = findLocalVariables(methodHeader, methodBody); // forStmt = parse(#EnhancedForStatement, "for (Entry\ entry : entries) {\n elementsBuilder.add(entry.getElement());\n // cumulativeCounts[i + 1] = cumulativeCounts[i] + entry.getCount();\n i++;\n }"); @@ -218,11 +220,11 @@ public test bool shouldRefactorLoopIteratingOnThisField2() { // TODO nested loops needed to be changed in ProspectiveOperation //public test bool nestedLoops() { -// fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/NestedLoops.java|; +// fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/NestedLoops.java|; // methodBody = parse(#MethodBody, readFile(fileLoc)); // methodHeader = parse(#MethodHeader, "void testComplexBuilder()"); // set[MethodVar] methodVars = findLocalVariables(methodHeader, methodBody); -// fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For.java|; +// fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2For.java|; // EnhancedForStatement forStmt = parse(#EnhancedForStatement, "for (Integer red : colorElem) {\n for (Integer green : colorElem) {\n for (Integer blue : colorElem) {\n webSafeColorsBuilder.add((red \<\< 16) + (green \<\< 8) + blue);\n }\n }\n }"); // VariableDeclaratorId iteratedVarName = parse(#VariableDeclaratorId, "red"); // Expression collectionId = parse(#Expression, "colorElem"); diff --git a/src/LocalVariablesFinderTest.rsc b/src/lang/java/refactoring/forloop/test/LocalVariablesFinderTest.rsc similarity index 96% rename from src/LocalVariablesFinderTest.rsc rename to src/lang/java/refactoring/forloop/test/LocalVariablesFinderTest.rsc index 7074abc..a9b8fe5 100644 --- a/src/LocalVariablesFinderTest.rsc +++ b/src/lang/java/refactoring/forloop/test/LocalVariablesFinderTest.rsc @@ -1,10 +1,10 @@ -module LocalVariablesFinderTest +module lang::java::refactoring::forloop::\test::LocalVariablesFinderTest import IO; -import LocalVariablesFinderTestResources; -import LocalVariablesFinder; import Set; -import MethodVar; +import lang::java::refactoring::forloop::\test::resources::LocalVariablesFinderTestResources; +import lang::java::refactoring::forloop::LocalVariablesFinder; +import lang::java::refactoring::forloop::MethodVar; public test bool shouldHaveTheEnhancedDeclaredVarAsFinal() { methodBody = enhancedForLoopFinalVarDecl(); diff --git a/src/refactor/forloop/ProspectiveOperationTest.rsc b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc similarity index 95% rename from src/refactor/forloop/ProspectiveOperationTest.rsc rename to src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc index 8b25973..6c4177b 100644 --- a/src/refactor/forloop/ProspectiveOperationTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc @@ -1,12 +1,12 @@ -module refactor::forloop::ProspectiveOperationTest +module lang::java::refactoring::forloop::\test::ProspectiveOperationTest -import refactor::forloop::ProspectiveOperation; -import refactor::forloop::ProspectiveOperationTestResources; -import refactor::forloop::OperationType; -import MethodVar; import lang::java::\syntax::Java18; import IO; import List; +import lang::java::refactoring::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources; +import lang::java::refactoring::forloop::OperationType; +import lang::java::refactoring::forloop::MethodVar; public test bool shouldReturnAForEachOnSimpleShortExample() { tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort = simpleShort(); diff --git a/src/refactor/forloop/UsedVariablesTest.rsc b/src/lang/java/refactoring/forloop/test/UsedVariablesTest.rsc similarity index 87% rename from src/refactor/forloop/UsedVariablesTest.rsc rename to src/lang/java/refactoring/forloop/test/UsedVariablesTest.rsc index 37a9162..0574dc7 100644 --- a/src/refactor/forloop/UsedVariablesTest.rsc +++ b/src/lang/java/refactoring/forloop/test/UsedVariablesTest.rsc @@ -1,11 +1,11 @@ -module refactor::forloop::UsedVariablesTest +module lang::java::refactoring::forloop::\test::UsedVariablesTest -import refactor::forloop::UsedVariables; -import refactor::forloop::ProspectiveOperation; -import refactor::forloop::OperationType; -import MethodVar; import Set; import IO; +import lang::java::refactoring::forloop::UsedVariables; +import lang::java::refactoring::forloop::ProspectiveOperation; +import lang::java::refactoring::forloop::OperationType; +import lang::java::refactoring::forloop::MethodVar; public test bool methodInvocationWithArg() { prOp = prospectiveOperation("writer.write(thing);", FOR_EACH); diff --git a/src/LocalVariablesFinderTestResources.rsc b/src/lang/java/refactoring/forloop/test/resources/LocalVariablesFinderTestResources.rsc similarity index 79% rename from src/LocalVariablesFinderTestResources.rsc rename to src/lang/java/refactoring/forloop/test/resources/LocalVariablesFinderTestResources.rsc index 10e3506..78c73ad 100644 --- a/src/LocalVariablesFinderTestResources.rsc +++ b/src/lang/java/refactoring/forloop/test/resources/LocalVariablesFinderTestResources.rsc @@ -1,9 +1,9 @@ -module LocalVariablesFinderTestResources +module lang::java::refactoring::forloop::\test::resources::LocalVariablesFinderTestResources import IO; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; +import lang::java::refactoring::forloop::MethodVar; public MethodHeader emptyMethodHeader() { header = "void method()"; @@ -36,17 +36,17 @@ public MethodBody emptyMethodBody() { } public MethodBody enhancedForLoopFinalVarDecl() { - fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopFinalVarDecl|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/EnhancedForLoopFinalVarDecl|; return parse(#MethodBody, readFile(fileLoc)); } public MethodBody enhancedForLoopWithException() { - fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopWithException|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/EnhancedForLoopWithException|; return parse(#MethodBody, readFile(fileLoc)); } public MethodBody arrayVariables() { - fileLoc = |project://rascal-Java8//testes/localVariables/MultiplePlainArrayDeclarations|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MultiplePlainArrayDeclarations|; return parse(#MethodBody, readFile(fileLoc)); } @@ -97,7 +97,7 @@ public MethodHeader varsWithinTheLoopMethodHeader() { } public MethodBody varsWithinTheLoopMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/EnhancedForLoopVarsWithinLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/EnhancedForLoopVarsWithinLoop|; return parse(#MethodBody, readFile(fileLoc)); } @@ -107,7 +107,7 @@ public MethodHeader nonEffectiveFinalUsedInEnhancedForMethodHeader() { } public MethodBody nonEffectiveFinalUsedInEnhancedForMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/NonEffectiveFinalUsedInEnhancedFor|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/NonEffectiveFinalUsedInEnhancedFor|; return parse(#MethodBody, readFile(fileLoc)); } @@ -117,7 +117,7 @@ public MethodHeader iterableParameterMethodHeader() { } public MethodBody iterableParameterMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/IterableParameterMethodBody|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/IterableParameterMethodBody|; return parse(#MethodBody, readFile(fileLoc)); } @@ -127,7 +127,7 @@ public MethodHeader methodWithAnonnymousInnerClassMethodHeader() { } public MethodBody methodWithAnonnymousInnerClassMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyWithAnonnymousInnerClass|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyWithAnonnymousInnerClass|; return parse(#MethodBody, readFile(fileLoc)); } @@ -137,7 +137,7 @@ public MethodHeader postIncrementedVarMethodHeader() { } public MethodBody postIncrementedVarMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostIncrementedVar|; return parse(#MethodBody, readFile(fileLoc)); } @@ -147,7 +147,7 @@ public MethodHeader postIncrementedVar2MethodHeader() { } public MethodBody postIncrementedVar2MethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar2|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostIncrementedVar2|; return parse(#MethodBody, readFile(fileLoc)); } @@ -157,7 +157,7 @@ public MethodHeader postIncrementedVar3MethodHeader() { } public MethodBody postIncrementedVar3MethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostIncrementedVar3|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostIncrementedVar3|; return parse(#MethodBody, readFile(fileLoc)); } @@ -168,7 +168,7 @@ public MethodHeader postDecrementedVarMethodHeader() { } public MethodBody postDecrementedVarMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostDecrementedVar|; return parse(#MethodBody, readFile(fileLoc)); } @@ -178,7 +178,7 @@ public MethodHeader assignmentInsideForMethodHeader() { } public MethodBody assignmentInsideForMethodBody() { - fileLoc = |project://rascal-Java8//testes/localVariables/MethodBodyAssignmentInsideLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyAssignmentInsideLoop|; return parse(#MethodBody, readFile(fileLoc)); } @@ -188,6 +188,6 @@ public MethodHeader twoNonEffectiveFinalVarsInsideLoopMethodHeader() { } public MethodBody twoNonEffectiveFinalVarsInsideLoopMethodBody() { - methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars|; return parse(#MethodBody, readFile(methodBodyLoc)); } \ No newline at end of file diff --git a/src/refactor/forloop/ProspectiveOperationTestResources.rsc b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc similarity index 77% rename from src/refactor/forloop/ProspectiveOperationTestResources.rsc rename to src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc index e4f50f0..d6cd615 100644 --- a/src/refactor/forloop/ProspectiveOperationTestResources.rsc +++ b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc @@ -1,19 +1,19 @@ -module refactor::forloop::ProspectiveOperationTestResources +module lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources import IO; import lang::java::\syntax::Java18; import ParseTree; -import MethodVar; -import LocalVariablesFinder; +import lang::java::refactoring::forloop::MethodVar; +import lang::java::refactoring::forloop::LocalVariablesFinder; public tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/SimpleShortEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); return <{}, enhancedForLoop>; } public tuple [set[MethodVar] vars, EnhancedForStatement loop] continueAndReturn() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/ContinueAndReturnEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); return ; } @@ -25,7 +25,7 @@ private set[MethodVar] continueAndReturnVars() { } public tuple [set[MethodVar] vars, EnhancedForStatement loop] filterMapReduce() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterMapReduceEnhancedLoop|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/FilterMapReduceEnhancedLoop|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); return ; } @@ -37,7 +37,7 @@ private set[MethodVar] filterMapReduceVars() { } public tuple [set[MethodVar] vars, EnhancedForStatement loop] filterAndMergedForEach() { - fileLoc = |project://rascal-Java8//testes/ProspectiveOperation/FilterAndMergedForEach|; + fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/FilterAndMergedForEach|; enhancedForLoop = parse(#EnhancedForStatement, readFile(fileLoc)); return ; } @@ -49,52 +49,52 @@ private set[MethodVar] filterAndMergedForEachVars() { } public tuple [set[MethodVar] vars, EnhancedForStatement loop] multipleMapsAndEndingReducer() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2For2.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2For2.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); return ; } private set[MethodVar] multipleMapsAndEndingReducerVars() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/T2.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "void assertInvariants(Map\ map)"); return findLocalVariables(methodHeader, methodBody); } public tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop1() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/InnerLoop1.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/InnerLoop1.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); return ; } private set[MethodVar] innerLoop1Vars() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyInnerLoop1.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop1.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "\ Graph\ transitiveClosure(Graph\ graph)"); return findLocalVariables(methodHeader, methodBody); } public tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoop2() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/InnerLoop2.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/InnerLoop2.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); return ; } private set[MethodVar] innerLoop2Vars() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyInnerLoop2.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop2.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "ImmutableList\ getAnnotatedMethodsNotCached(Class\ clazz)"); return findLocalVariables(methodHeader, methodBody); } public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithInnerWhile() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/LoopWithInnerWhile.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/LoopWithInnerWhile.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); return ; } private set[MethodVar] loopWithInnerWhileVars() { - fileLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java|; + fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "ImmutableList\ getAnnotatedMethodsNotCached(Class\ clazz)"); return findLocalVariables(methodHeader, methodBody); @@ -107,7 +107,7 @@ public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopReduceWithPost private set[MethodVar] loopReduceWithPostIncrementVars() { methodHeader = parse(#MethodHeader, "\ ImmutableSortedMultiset\ copyOfSortedEntries(Comparator\ comparator, Collection\\> entries)"); - methodBodyLoc = |project://rascal-Java8/testes/localVariables/MethodBodyReduceWithPostIncrement|; + methodBodyLoc = |project://rascal-Java8/testes/forloop/localVariables/MethodBodyReduceWithPostIncrement|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); } @@ -119,20 +119,20 @@ public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithThrowState private set[MethodVar] loopWithThrowStatementVars() { methodHeader = parse(#MethodHeader, "ImmutableMap\ getAll(Iterable\ keys) throws ExecutionException"); - methodBodyLoc = |project://rascal-Java8//testes/localVariables/MethodBodyPostDecrementedVar|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/localVariables/MethodBodyPostDecrementedVar|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); } public tuple [set[MethodVar] vars, EnhancedForStatement loop] loopWithIfWithTwoStatementsInsideBlock() { - fileForLoc = |project://rascal-Java8//testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + fileForLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java|; EnhancedForStatement forStmt = parse(#EnhancedForStatement, readFile(fileForLoc)); return ; } private set[MethodVar] loopWithIfWithTwoStatementsInsideBlockVars() { methodHeader = parse(#MethodHeader, "String[] getPaths(EndpointHandlerMapping endpointHandlerMapping)"); - methodBodyLoc = |project://rascal-Java8//testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; + methodBodyLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); } \ No newline at end of file diff --git a/testes/ForLoopToFunctional/EnhancedForOnIterable.java b/testes/forloop/ForLoopToFunctional/EnhancedForOnIterable.java similarity index 100% rename from testes/ForLoopToFunctional/EnhancedForOnIterable.java rename to testes/forloop/ForLoopToFunctional/EnhancedForOnIterable.java diff --git a/testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java b/testes/forloop/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java similarity index 100% rename from testes/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java rename to testes/forloop/ForLoopToFunctional/ForIfWithTwoStmtsInsideAndStmtAfterBlock.java diff --git a/testes/ForLoopToFunctional/ForWith3StatementsMapBody.java b/testes/forloop/ForLoopToFunctional/ForWith3StatementsMapBody.java similarity index 100% rename from testes/ForLoopToFunctional/ForWith3StatementsMapBody.java rename to testes/forloop/ForLoopToFunctional/ForWith3StatementsMapBody.java diff --git a/testes/ForLoopToFunctional/ForWithMultiStatementMap.java b/testes/forloop/ForLoopToFunctional/ForWithMultiStatementMap.java similarity index 100% rename from testes/ForLoopToFunctional/ForWithMultiStatementMap.java rename to testes/forloop/ForLoopToFunctional/ForWithMultiStatementMap.java diff --git a/testes/ForLoopToFunctional/InnerLoop1.java b/testes/forloop/ForLoopToFunctional/InnerLoop1.java similarity index 100% rename from testes/ForLoopToFunctional/InnerLoop1.java rename to testes/forloop/ForLoopToFunctional/InnerLoop1.java diff --git a/testes/ForLoopToFunctional/InnerLoop2.java b/testes/forloop/ForLoopToFunctional/InnerLoop2.java similarity index 100% rename from testes/ForLoopToFunctional/InnerLoop2.java rename to testes/forloop/ForLoopToFunctional/InnerLoop2.java diff --git a/testes/ForLoopToFunctional/LoopWithInnerWhile.java b/testes/forloop/ForLoopToFunctional/LoopWithInnerWhile.java similarity index 100% rename from testes/ForLoopToFunctional/LoopWithInnerWhile.java rename to testes/forloop/ForLoopToFunctional/LoopWithInnerWhile.java diff --git a/testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter b/testes/forloop/ForLoopToFunctional/MethodBodyIfAsNotAFilter similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyIfAsNotAFilter rename to testes/forloop/ForLoopToFunctional/MethodBodyIfAsNotAFilter diff --git a/testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java b/testes/forloop/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java rename to testes/forloop/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java diff --git a/testes/ForLoopToFunctional/MethodBodyInnerLoop1.java b/testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop1.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyInnerLoop1.java rename to testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop1.java diff --git a/testes/ForLoopToFunctional/MethodBodyInnerLoop2.java b/testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop2.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyInnerLoop2.java rename to testes/forloop/ForLoopToFunctional/MethodBodyInnerLoop2.java diff --git a/testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java b/testes/forloop/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java rename to testes/forloop/ForLoopToFunctional/MethodBodyLoopWithInnerWhile.java diff --git a/testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java b/testes/forloop/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java rename to testes/forloop/ForLoopToFunctional/MethodBodyWIth3StatementsMapBody.java diff --git a/testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java b/testes/forloop/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java similarity index 100% rename from testes/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java rename to testes/forloop/ForLoopToFunctional/MethodBodyWithMultiStatementMap.java diff --git a/testes/ForLoopToFunctional/NestedLoops.java b/testes/forloop/ForLoopToFunctional/NestedLoops.java similarity index 100% rename from testes/ForLoopToFunctional/NestedLoops.java rename to testes/forloop/ForLoopToFunctional/NestedLoops.java diff --git a/testes/ForLoopToFunctional/SimpleForEach.java b/testes/forloop/ForLoopToFunctional/SimpleForEach.java similarity index 100% rename from testes/ForLoopToFunctional/SimpleForEach.java rename to testes/forloop/ForLoopToFunctional/SimpleForEach.java diff --git a/testes/ForLoopToFunctional/T1.java b/testes/forloop/ForLoopToFunctional/T1.java similarity index 100% rename from testes/ForLoopToFunctional/T1.java rename to testes/forloop/ForLoopToFunctional/T1.java diff --git a/testes/ForLoopToFunctional/T2.java b/testes/forloop/ForLoopToFunctional/T2.java similarity index 100% rename from testes/ForLoopToFunctional/T2.java rename to testes/forloop/ForLoopToFunctional/T2.java diff --git a/testes/ForLoopToFunctional/T2For.java b/testes/forloop/ForLoopToFunctional/T2For.java similarity index 100% rename from testes/ForLoopToFunctional/T2For.java rename to testes/forloop/ForLoopToFunctional/T2For.java diff --git a/testes/ForLoopToFunctional/T2For2.java b/testes/forloop/ForLoopToFunctional/T2For2.java similarity index 100% rename from testes/ForLoopToFunctional/T2For2.java rename to testes/forloop/ForLoopToFunctional/T2For2.java diff --git a/testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop b/testes/forloop/ProspectiveOperation/ContinueAndReturnEnhancedLoop similarity index 100% rename from testes/ProspectiveOperation/ContinueAndReturnEnhancedLoop rename to testes/forloop/ProspectiveOperation/ContinueAndReturnEnhancedLoop diff --git a/testes/ProspectiveOperation/FilterAndMergedForEach b/testes/forloop/ProspectiveOperation/FilterAndMergedForEach similarity index 100% rename from testes/ProspectiveOperation/FilterAndMergedForEach rename to testes/forloop/ProspectiveOperation/FilterAndMergedForEach diff --git a/testes/ProspectiveOperation/FilterMapReduceEnhancedLoop b/testes/forloop/ProspectiveOperation/FilterMapReduceEnhancedLoop similarity index 100% rename from testes/ProspectiveOperation/FilterMapReduceEnhancedLoop rename to testes/forloop/ProspectiveOperation/FilterMapReduceEnhancedLoop diff --git a/testes/ProspectiveOperation/SimpleShortEnhancedLoop b/testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop similarity index 100% rename from testes/ProspectiveOperation/SimpleShortEnhancedLoop rename to testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop diff --git a/testes/classFields/ForIteratingOnThisField b/testes/forloop/classFields/ForIteratingOnThisField similarity index 100% rename from testes/classFields/ForIteratingOnThisField rename to testes/forloop/classFields/ForIteratingOnThisField diff --git a/testes/classFields/ForIteratingOnThisField2 b/testes/forloop/classFields/ForIteratingOnThisField2 similarity index 100% rename from testes/classFields/ForIteratingOnThisField2 rename to testes/forloop/classFields/ForIteratingOnThisField2 diff --git a/testes/classFields/MethodBodyIteratingOnThisField b/testes/forloop/classFields/MethodBodyIteratingOnThisField similarity index 100% rename from testes/classFields/MethodBodyIteratingOnThisField rename to testes/forloop/classFields/MethodBodyIteratingOnThisField diff --git a/testes/classFields/MethodBodyIteratingOnThisField2 b/testes/forloop/classFields/MethodBodyIteratingOnThisField2 similarity index 100% rename from testes/classFields/MethodBodyIteratingOnThisField2 rename to testes/forloop/classFields/MethodBodyIteratingOnThisField2 diff --git a/testes/classFields/TomcatServletWebServerFactory.java b/testes/forloop/classFields/TomcatServletWebServerFactory.java similarity index 100% rename from testes/classFields/TomcatServletWebServerFactory.java rename to testes/forloop/classFields/TomcatServletWebServerFactory.java diff --git a/testes/localVariables/ClassWithFields.java b/testes/forloop/localVariables/ClassWithFields.java similarity index 100% rename from testes/localVariables/ClassWithFields.java rename to testes/forloop/localVariables/ClassWithFields.java diff --git a/testes/localVariables/EnhancedForLoopFinalVarDecl b/testes/forloop/localVariables/EnhancedForLoopFinalVarDecl similarity index 100% rename from testes/localVariables/EnhancedForLoopFinalVarDecl rename to testes/forloop/localVariables/EnhancedForLoopFinalVarDecl diff --git a/testes/localVariables/EnhancedForLoopVarsWithinLoop b/testes/forloop/localVariables/EnhancedForLoopVarsWithinLoop similarity index 100% rename from testes/localVariables/EnhancedForLoopVarsWithinLoop rename to testes/forloop/localVariables/EnhancedForLoopVarsWithinLoop diff --git a/testes/localVariables/EnhancedForLoopWithException b/testes/forloop/localVariables/EnhancedForLoopWithException similarity index 100% rename from testes/localVariables/EnhancedForLoopWithException rename to testes/forloop/localVariables/EnhancedForLoopWithException diff --git a/testes/localVariables/IterableParameterMethodBody b/testes/forloop/localVariables/IterableParameterMethodBody similarity index 100% rename from testes/localVariables/IterableParameterMethodBody rename to testes/forloop/localVariables/IterableParameterMethodBody diff --git a/testes/localVariables/MethodBodyAssignmentInsideLoop b/testes/forloop/localVariables/MethodBodyAssignmentInsideLoop similarity index 100% rename from testes/localVariables/MethodBodyAssignmentInsideLoop rename to testes/forloop/localVariables/MethodBodyAssignmentInsideLoop diff --git a/testes/localVariables/MethodBodyPostDecrementedVar b/testes/forloop/localVariables/MethodBodyPostDecrementedVar similarity index 100% rename from testes/localVariables/MethodBodyPostDecrementedVar rename to testes/forloop/localVariables/MethodBodyPostDecrementedVar diff --git a/testes/localVariables/MethodBodyPostIncrementedVar b/testes/forloop/localVariables/MethodBodyPostIncrementedVar similarity index 100% rename from testes/localVariables/MethodBodyPostIncrementedVar rename to testes/forloop/localVariables/MethodBodyPostIncrementedVar diff --git a/testes/localVariables/MethodBodyPostIncrementedVar2 b/testes/forloop/localVariables/MethodBodyPostIncrementedVar2 similarity index 100% rename from testes/localVariables/MethodBodyPostIncrementedVar2 rename to testes/forloop/localVariables/MethodBodyPostIncrementedVar2 diff --git a/testes/localVariables/MethodBodyPostIncrementedVar3 b/testes/forloop/localVariables/MethodBodyPostIncrementedVar3 similarity index 100% rename from testes/localVariables/MethodBodyPostIncrementedVar3 rename to testes/forloop/localVariables/MethodBodyPostIncrementedVar3 diff --git a/testes/localVariables/MethodBodyReduceWithPostIncrement b/testes/forloop/localVariables/MethodBodyReduceWithPostIncrement similarity index 100% rename from testes/localVariables/MethodBodyReduceWithPostIncrement rename to testes/forloop/localVariables/MethodBodyReduceWithPostIncrement diff --git a/testes/localVariables/MethodBodyWithAnonnymousInnerClass b/testes/forloop/localVariables/MethodBodyWithAnonnymousInnerClass similarity index 100% rename from testes/localVariables/MethodBodyWithAnonnymousInnerClass rename to testes/forloop/localVariables/MethodBodyWithAnonnymousInnerClass diff --git a/testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars b/testes/forloop/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars similarity index 100% rename from testes/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars rename to testes/forloop/localVariables/MethodBodyWithTwoReferencesToOutsideNonEffectiveVars diff --git a/testes/localVariables/MultiplePlainArrayDeclarations b/testes/forloop/localVariables/MultiplePlainArrayDeclarations similarity index 100% rename from testes/localVariables/MultiplePlainArrayDeclarations rename to testes/forloop/localVariables/MultiplePlainArrayDeclarations diff --git a/testes/localVariables/NonEffectiveFinalUsedInEnhancedFor b/testes/forloop/localVariables/NonEffectiveFinalUsedInEnhancedFor similarity index 100% rename from testes/localVariables/NonEffectiveFinalUsedInEnhancedFor rename to testes/forloop/localVariables/NonEffectiveFinalUsedInEnhancedFor From 961f194f2915814b2ea0e6b44665601106c14467 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 16 May 2017 18:16:48 -0300 Subject: [PATCH 133/156] Redoing merge in M3Util --- src/lang/java/m3/M3Util.rsc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/lang/java/m3/M3Util.rsc b/src/lang/java/m3/M3Util.rsc index 097e63c..08628bb 100644 --- a/src/lang/java/m3/M3Util.rsc +++ b/src/lang/java/m3/M3Util.rsc @@ -18,6 +18,10 @@ list[loc] listAllClassFiles(loc location) { return findAllFiles(location, "class"); } +list[loc] listAllJavaFiles(loc location) { + return findAllFiles(location, "java"); +} + /* * computes a list of class names from a classpath, * that is, a list of Jar files. From e0716d8e87d418f5bb7786eb1e4c9b9017457417 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 16 May 2017 18:37:28 -0300 Subject: [PATCH 134/156] Fixing wrong import --- .../java/refactoring/forloop/test/BreakIntoStatementsTest.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc index 5c61546..e8a5b7e 100644 --- a/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc @@ -3,7 +3,7 @@ module lang::java::refactoring::forloop::\test::BreakIntoStatementsTest import IO; import lang::java::refactoring::forloop::BreakIntoStatements; import lang::java::\syntax::Java18; -import lang::java::refactoring::forloop::ProspectiveOperationTestResources; +import lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources; import lang::java::refactoring::forloop::ForLoopBodyReferences; import ParseTree; import ParseTreeVisualization; From 2df4e55abc4a8e894597c35b4b07d041533ce495 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Tue, 16 May 2017 18:57:23 -0300 Subject: [PATCH 135/156] ForLoop renamed to EnhancedForLoopRefactorer --- ...ForLoop.rsc => EnhancedForLoopRefactorer.rsc} | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename src/lang/java/refactoring/forloop/{ForLoop.rsc => EnhancedForLoopRefactorer.rsc} (88%) diff --git a/src/lang/java/refactoring/forloop/ForLoop.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc similarity index 88% rename from src/lang/java/refactoring/forloop/ForLoop.rsc rename to src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 50176c4..7b93b69 100644 --- a/src/lang/java/refactoring/forloop/ForLoop.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -1,15 +1,15 @@ -module ForLoop +module lang::java::refactoring::forloop::EnhancedForLoopRefactorer import IO; import lang::java::\syntax::Java18; import ParseTree; -import LocalVariablesFinder; -import refactor::forloop::EnhancedLoopExpression; -import refactor::forloop::ForLoopBodyReferences; -import refactor::forloop::ForLoopToFunctional; -import refactor::forloop::ClassFieldsFinder; -import MethodVar; import util::Math; +import lang::java::refactoring::forloop::LocalVariablesFinder; +import lang::java::refactoring::forloop::EnhancedLoopExpression; +import lang::java::refactoring::forloop::ForLoopBodyReferences; +import lang::java::refactoring::forloop::ForLoopToFunctional; +import lang::java::refactoring::forloop::ClassFieldsFinder; +import lang::java::refactoring::forloop::MethodVar; private set[str] checkedExceptionClasses; @@ -19,7 +19,7 @@ private bool alreadyComputedClassFields; private int refactoredCount = 0; -public void findForLoops(list[loc] locs, set[str] checkedExceptions) { +public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { refactoredCount = 0; checkedExceptionClasses = checkedExceptions; for(fileLoc <- locs) { From 45f7dada89f119bd915013aa92df5d41303fdfda Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Mon, 29 May 2017 15:39:13 -0300 Subject: [PATCH 136/156] Starting to write a test for the entire refactor --- .../forloop/EnhancedForLoopRefactorer.rsc | 4 +++- .../test/EnhancedForLoopRefactorerTest.rsc | 10 +++++++++ .../forloop/test/ProspectiveOperationTest.rsc | 11 ++++++++++ .../ProspectiveOperationTestResources.rsc | 22 +++++++++++++++++++ 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 7b93b69..a182643 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -55,7 +55,9 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth top-down visit(methodBody) { case EnhancedForStatement forStmt: { - + println("for"); + println(forStmt); + println(); if(!alreadyComputedClassFields) { currentClassFields = findClassFields(unit); alreadyComputedClassFields = true; diff --git a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc new file mode 100644 index 0000000..4e714a4 --- /dev/null +++ b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc @@ -0,0 +1,10 @@ +module lang::java::refactoring::forloop::\test::EnhancedForLoopRefactorerTest + +import IO; +import lang::java::refactoring::forloop::EnhancedForLoopRefactorer; + +public test bool refactorableInnerLoopButNotOuterLoop() { + classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ClassRefactorableInnerLoopButNotOuter|; + forLoopToFunctional([classLoc], {}); + return false; +} \ No newline at end of file diff --git a/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc index 6c4177b..2331587 100644 --- a/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc @@ -141,6 +141,17 @@ public test bool innerIfAsNotTheLastStatementShouldBeAMap() { prospectiveOperations[4].operation == FOR_EACH; } +public void shouldThrowExceptionOnLoopWithInnerLoop() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = outerLoopWithInnerLoop(); + + try { + prospectiveOperations = retrieveProspectiveOperations(loop.vars, loop.loop); + return false; + } catch: + return true; + +} + //public test bool shouldIdentifyPostIncrementAsReduce() { // throw "Not yet implemented"; // diff --git a/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc index d6cd615..56fd7c3 100644 --- a/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc +++ b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc @@ -5,6 +5,7 @@ import lang::java::\syntax::Java18; import ParseTree; import lang::java::refactoring::forloop::MethodVar; import lang::java::refactoring::forloop::LocalVariablesFinder; +import lang::java::refactoring::forloop::ClassFieldsFinder; public tuple [set[MethodVar] vars, EnhancedForStatement loop] simpleShort() { fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop|; @@ -135,4 +136,25 @@ private set[MethodVar] loopWithIfWithTwoStatementsInsideBlockVars() { methodBodyLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/MethodBodyIfWithTwoStmtsInsideAndStmtAfterBlock.java|; methodBody = parse(#MethodBody, readFile(methodBodyLoc)); return findLocalVariables(methodHeader, methodBody); +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] outerLoopWithInnerLoop() { + methodHeader = parse(#MethodHeader, "void scanPackage(ClassPathScanningCandidateComponentProvider componentProvider, String packageToScan)"); + loopLoc = |project://rascal-Java8//testes/forloop/Refactorer/LoopRefactorableInnerLoopButNotOuter|; + loopStr = readFile(loopLoc); + forStmt = parse(#EnhancedForStatement, loopStr); + methodBody = parse(#MethodBody, "{" + loopStr + "}"); + + localVars = findLocalVariables(methodHeader, methodBody); + classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ClassRefactorableInnerLoopButNotOuter|; + classFields = findClassFields(parse(#CompilationUnit, classLoc)); + availableVars = localVars + classFields; + + return ; +} + +public tuple [set[MethodVar] vars, EnhancedForStatement loop] innerLoopInsideOuter() { + tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = outerLoopWithInnerLoop(); + loop.loop = "for (ServletComponentHandler handler : HANDLERS) {\n handler.handle(((ScannedGenericBeanDefinition) candidate),\n (BeanDefinitionRegistry) this.applicationContext);\n }"; + return loop; } \ No newline at end of file From 58d11c386cb68046a12df59c999b5c0a399532f8 Mon Sep 17 00:00:00 2001 From: Rodrigo Bonifacio Date: Sun, 4 Jun 2017 07:52:26 -0300 Subject: [PATCH 137/156] rename and move several files --- .../AnonymousInnerClassTeste.java | 0 {testes => external-tests}/BasicTest.java | 0 .../Cassandra/src/antlr/Cql.g | 0 .../Cassandra/src/antlr/Lexer.g | 0 .../Cassandra/src/antlr/Parser.g | 0 .../cassandra/auth/AllowAllAuthenticator.java | 0 .../cassandra/auth/AllowAllAuthorizer.java | 0 .../auth/AllowAllInternodeAuthenticator.java | 0 .../org/apache/cassandra/auth/AuthCache.java | 0 .../apache/cassandra/auth/AuthCacheMBean.java | 0 .../apache/cassandra/auth/AuthKeyspace.java | 0 .../cassandra/auth/AuthMigrationListener.java | 0 .../cassandra/auth/AuthenticatedUser.java | 0 .../cassandra/auth/CassandraAuthorizer.java | 0 .../cassandra/auth/CassandraLoginModule.java | 0 .../cassandra/auth/CassandraPrincipal.java | 0 .../cassandra/auth/CassandraRoleManager.java | 0 .../apache/cassandra/auth/DataResource.java | 0 .../cassandra/auth/FunctionResource.java | 0 .../apache/cassandra/auth/IAuthenticator.java | 0 .../apache/cassandra/auth/IAuthorizer.java | 0 .../auth/IInternodeAuthenticator.java | 0 .../org/apache/cassandra/auth/IResource.java | 0 .../apache/cassandra/auth/IRoleManager.java | 0 .../apache/cassandra/auth/JMXResource.java | 0 .../cassandra/auth/PasswordAuthenticator.java | 0 .../org/apache/cassandra/auth/Permission.java | 0 .../cassandra/auth/PermissionDetails.java | 0 .../cassandra/auth/PermissionsCache.java | 0 .../cassandra/auth/PermissionsCacheMBean.java | 0 .../org/apache/cassandra/auth/Resources.java | 0 .../apache/cassandra/auth/RoleOptions.java | 0 .../apache/cassandra/auth/RoleResource.java | 0 .../java/org/apache/cassandra/auth/Roles.java | 0 .../org/apache/cassandra/auth/RolesCache.java | 0 .../cassandra/auth/RolesCacheMBean.java | 0 .../auth/jmx/AuthenticationProxy.java | 0 .../auth/jmx/AuthorizationProxy.java | 0 .../org/apache/cassandra/batchlog/Batch.java | 0 .../batchlog/BatchRemoveVerbHandler.java | 0 .../batchlog/BatchStoreVerbHandler.java | 0 .../cassandra/batchlog/BatchlogManager.java | 0 .../batchlog/BatchlogManagerMBean.java | 0 .../batchlog/LegacyBatchlogMigrator.java | 0 .../cassandra/cache/AutoSavingCache.java | 0 .../org/apache/cassandra/cache/CacheKey.java | 0 .../apache/cassandra/cache/CacheProvider.java | 0 .../org/apache/cassandra/cache/CacheSize.java | 0 .../apache/cassandra/cache/ChunkCache.java | 0 .../cache/ConcurrentLinkedHashCache.java | 0 .../cassandra/cache/CounterCacheKey.java | 0 .../org/apache/cassandra/cache/ICache.java | 0 .../cassandra/cache/IMeasurableMemory.java | 0 .../cassandra/cache/IRowCacheEntry.java | 0 .../cassandra/cache/InstrumentingCache.java | 0 .../apache/cassandra/cache/KeyCacheKey.java | 0 .../cassandra/cache/NopCacheProvider.java | 0 .../apache/cassandra/cache/OHCProvider.java | 0 .../cassandra/cache/RefCountedMemory.java | 0 .../apache/cassandra/cache/RowCacheKey.java | 0 .../cassandra/cache/RowCacheSentinel.java | 0 .../cassandra/cache/SerializingCache.java | 0 .../cache/SerializingCacheProvider.java | 0 .../apache/cassandra/client/RingCache.java | 0 .../AbstractLocalAwareExecutorService.java | 0 ...DebuggableScheduledThreadPoolExecutor.java | 0 .../DebuggableThreadPoolExecutor.java | 0 .../cassandra/concurrent/ExecutorLocal.java | 0 .../cassandra/concurrent/ExecutorLocals.java | 0 .../JMXConfigurableThreadPoolExecutor.java | 0 ...MXConfigurableThreadPoolExecutorMBean.java | 0 .../JMXEnabledThreadPoolExecutor.java | 0 .../JMXEnabledThreadPoolExecutorMBean.java | 0 .../concurrent/LocalAwareExecutorService.java | 0 .../concurrent/NamedThreadFactory.java | 0 .../cassandra/concurrent/SEPExecutor.java | 0 .../cassandra/concurrent/SEPWorker.java | 0 .../concurrent/ScheduledExecutors.java | 0 .../concurrent/SharedExecutorPool.java | 0 .../apache/cassandra/concurrent/Stage.java | 0 .../cassandra/concurrent/StageManager.java | 0 .../apache/cassandra/config/CFMetaData.java | 0 .../cassandra/config/ColumnDefinition.java | 0 .../org/apache/cassandra/config/Config.java | 0 .../cassandra/config/ConfigurationLoader.java | 0 .../cassandra/config/DatabaseDescriptor.java | 0 .../cassandra/config/EncryptionOptions.java | 0 .../cassandra/config/ParameterizedClass.java | 0 .../cassandra/config/ReadRepairDecision.java | 0 .../config/RequestSchedulerOptions.java | 0 .../org/apache/cassandra/config/Schema.java | 0 .../TransparentDataEncryptionOptions.java | 0 .../cassandra/config/ViewDefinition.java | 0 .../config/YamlConfigurationLoader.java | 0 .../cassandra/cql3/AbstractConditions.java | 0 .../apache/cassandra/cql3/AbstractMarker.java | 0 .../cassandra/cql3/AssignmentTestable.java | 0 .../org/apache/cassandra/cql3/Attributes.java | 0 .../cassandra/cql3/BatchQueryOptions.java | 0 .../org/apache/cassandra/cql3/CFName.java | 0 .../org/apache/cassandra/cql3/CQL3Type.java | 0 .../cassandra/cql3/CQLFragmentParser.java | 0 .../apache/cassandra/cql3/CQLStatement.java | 0 .../cassandra/cql3/ColumnCondition.java | 0 .../cassandra/cql3/ColumnConditions.java | 0 .../cassandra/cql3/ColumnIdentifier.java | 0 .../cassandra/cql3/ColumnSpecification.java | 0 .../org/apache/cassandra/cql3/Conditions.java | 0 .../org/apache/cassandra/cql3/Constants.java | 0 .../CustomPayloadMirroringQueryHandler.java | 0 .../apache/cassandra/cql3/ErrorCollector.java | 0 .../apache/cassandra/cql3/ErrorListener.java | 0 .../cassandra/cql3/FieldIdentifier.java | 0 .../cassandra/cql3/IfExistsCondition.java | 0 .../cassandra/cql3/IfNotExistsCondition.java | 0 .../org/apache/cassandra/cql3/IndexName.java | 0 .../java/org/apache/cassandra/cql3/Json.java | 0 .../cassandra/cql3/KeyspaceElementName.java | 0 .../java/org/apache/cassandra/cql3/Lists.java | 0 .../java/org/apache/cassandra/cql3/Maps.java | 0 .../cassandra/cql3/MultiColumnRelation.java | 0 .../org/apache/cassandra/cql3/Operation.java | 0 .../org/apache/cassandra/cql3/Operations.java | 0 .../org/apache/cassandra/cql3/Operator.java | 0 .../apache/cassandra/cql3/QueryHandler.java | 0 .../apache/cassandra/cql3/QueryOptions.java | 0 .../apache/cassandra/cql3/QueryProcessor.java | 0 .../org/apache/cassandra/cql3/Relation.java | 0 .../org/apache/cassandra/cql3/ResultSet.java | 0 .../org/apache/cassandra/cql3/RoleName.java | 0 .../java/org/apache/cassandra/cql3/Sets.java | 0 .../cassandra/cql3/SingleColumnRelation.java | 0 .../java/org/apache/cassandra/cql3/Term.java | 0 .../java/org/apache/cassandra/cql3/Terms.java | 0 .../apache/cassandra/cql3/TokenRelation.java | 0 .../org/apache/cassandra/cql3/Tuples.java | 0 .../org/apache/cassandra/cql3/TypeCast.java | 0 .../org/apache/cassandra/cql3/UTName.java | 0 .../cassandra/cql3/UntypedResultSet.java | 0 .../cassandra/cql3/UpdateParameters.java | 0 .../org/apache/cassandra/cql3/UserTypes.java | 0 .../cql3/VariableSpecifications.java | 0 .../apache/cassandra/cql3/WhereClause.java | 0 .../cql3/functions/AbstractFunction.java | 0 .../cql3/functions/AggregateFcts.java | 0 .../cql3/functions/AggregateFunction.java | 0 .../cql3/functions/BytesConversionFcts.java | 0 .../cassandra/cql3/functions/CastFcts.java | 0 .../cassandra/cql3/functions/FromJsonFct.java | 0 .../cassandra/cql3/functions/Function.java | 0 .../cql3/functions/FunctionCall.java | 0 .../cql3/functions/FunctionName.java | 0 .../cql3/functions/FunctionResolver.java | 0 .../cql3/functions/JavaBasedUDFunction.java | 0 .../cassandra/cql3/functions/JavaUDF.java | 0 .../functions/NativeAggregateFunction.java | 0 .../cql3/functions/NativeFunction.java | 0 .../cql3/functions/NativeScalarFunction.java | 0 .../cql3/functions/ScalarFunction.java | 0 .../cql3/functions/ScriptBasedUDFunction.java | 0 .../cql3/functions/SecurityThreadGroup.java | 0 .../functions/ThreadAwareSecurityManager.java | 0 .../cassandra/cql3/functions/TimeFcts.java | 0 .../cassandra/cql3/functions/ToJsonFct.java | 0 .../cassandra/cql3/functions/TokenFct.java | 0 .../cassandra/cql3/functions/UDAggregate.java | 0 .../cql3/functions/UDFByteCodeVerifier.java | 0 .../cassandra/cql3/functions/UDFContext.java | 0 .../cql3/functions/UDFContextImpl.java | 0 .../cql3/functions/UDFExecutorService.java | 0 .../cassandra/cql3/functions/UDFunction.java | 0 .../cassandra/cql3/functions/UDHelper.java | 0 .../cassandra/cql3/functions/UuidFcts.java | 0 .../ClusteringColumnRestrictions.java | 0 .../restrictions/CustomIndexExpression.java | 0 .../cql3/restrictions/IndexRestrictions.java | 0 .../restrictions/MultiColumnRestriction.java | 0 .../PartitionKeyRestrictions.java | 0 .../PartitionKeySingleRestrictionSet.java | 0 .../cql3/restrictions/Restriction.java | 0 .../cql3/restrictions/RestrictionSet.java | 0 .../restrictions/RestrictionSetWrapper.java | 0 .../cql3/restrictions/Restrictions.java | 0 .../restrictions/SingleColumnRestriction.java | 0 .../cql3/restrictions/SingleRestriction.java | 0 .../restrictions/StatementRestrictions.java | 0 .../cql3/restrictions/TermSlice.java | 0 .../cql3/restrictions/TokenFilter.java | 0 .../cql3/restrictions/TokenRestriction.java | 0 .../selection/AbstractFunctionSelector.java | 0 .../selection/AggregateFunctionSelector.java | 0 .../cql3/selection/FieldSelector.java | 0 .../cassandra/cql3/selection/RawSelector.java | 0 .../selection/ScalarFunctionSelector.java | 0 .../cassandra/cql3/selection/Selectable.java | 0 .../cassandra/cql3/selection/Selection.java | 0 .../selection/SelectionColumnMapping.java | 0 .../cql3/selection/SelectionColumns.java | 0 .../cassandra/cql3/selection/Selector.java | 0 .../cql3/selection/SelectorFactories.java | 0 .../cql3/selection/SimpleSelector.java | 0 .../cql3/selection/TermSelector.java | 0 .../selection/WritetimeOrTTLSelector.java | 0 .../statements/AlterKeyspaceStatement.java | 0 .../cql3/statements/AlterRoleStatement.java | 0 .../cql3/statements/AlterTableStatement.java | 0 .../statements/AlterTableStatementColumn.java | 0 .../cql3/statements/AlterTypeStatement.java | 0 .../cql3/statements/AlterViewStatement.java | 0 .../statements/AuthenticationStatement.java | 0 .../statements/AuthorizationStatement.java | 0 .../cql3/statements/BatchStatement.java | 0 .../cassandra/cql3/statements/Bound.java | 0 .../cql3/statements/CFProperties.java | 0 .../cql3/statements/CFStatement.java | 0 .../cql3/statements/CQL3CasRequest.java | 0 .../statements/CreateAggregateStatement.java | 0 .../statements/CreateFunctionStatement.java | 0 .../cql3/statements/CreateIndexStatement.java | 0 .../statements/CreateKeyspaceStatement.java | 0 .../cql3/statements/CreateRoleStatement.java | 0 .../cql3/statements/CreateTableStatement.java | 0 .../statements/CreateTriggerStatement.java | 0 .../cql3/statements/CreateTypeStatement.java | 0 .../cql3/statements/CreateViewStatement.java | 0 .../cql3/statements/DeleteStatement.java | 0 .../statements/DropAggregateStatement.java | 0 .../statements/DropFunctionStatement.java | 0 .../cql3/statements/DropIndexStatement.java | 0 .../statements/DropKeyspaceStatement.java | 0 .../cql3/statements/DropRoleStatement.java | 0 .../cql3/statements/DropTableStatement.java | 0 .../cql3/statements/DropTriggerStatement.java | 0 .../cql3/statements/DropTypeStatement.java | 0 .../cql3/statements/DropViewStatement.java | 0 .../statements/GrantPermissionsStatement.java | 0 .../cql3/statements/GrantRoleStatement.java | 0 .../cql3/statements/IndexPropDefs.java | 0 .../cql3/statements/IndexTarget.java | 0 .../cql3/statements/KeyspaceAttributes.java | 0 .../statements/ListPermissionsStatement.java | 0 .../cql3/statements/ListRolesStatement.java | 0 .../cql3/statements/ListUsersStatement.java | 0 .../statements/ModificationStatement.java | 0 .../cql3/statements/ParsedStatement.java | 0 .../PermissionsManagementStatement.java | 0 .../cql3/statements/PropertyDefinitions.java | 0 .../cql3/statements/RequestValidations.java | 0 .../RevokePermissionsStatement.java | 0 .../cql3/statements/RevokeRoleStatement.java | 0 .../statements/RoleManagementStatement.java | 0 .../statements/SchemaAlteringStatement.java | 0 .../cql3/statements/SelectStatement.java | 0 .../cql3/statements/StatementType.java | 0 .../cql3/statements/TableAttributes.java | 0 .../cql3/statements/TruncateStatement.java | 0 .../cql3/statements/UpdateStatement.java | 0 .../cql3/statements/UpdatesCollector.java | 0 .../cql3/statements/UseStatement.java | 0 .../db/AbstractBufferClusteringPrefix.java | 0 .../db/AbstractClusteringPrefix.java | 0 .../db/AbstractReadCommandBuilder.java | 0 .../cassandra/db/BlacklistedDirectories.java | 0 .../db/BlacklistedDirectoriesMBean.java | 0 .../apache/cassandra/db/BufferClustering.java | 0 .../cassandra/db/BufferDecoratedKey.java | 0 .../org/apache/cassandra/db/CBuilder.java | 0 .../cassandra/db/CachedHashDecoratedKey.java | 0 .../apache/cassandra/db/ClockAndCount.java | 0 .../org/apache/cassandra/db/Clusterable.java | 0 .../org/apache/cassandra/db/Clustering.java | 0 .../apache/cassandra/db/ClusteringBound.java | 0 .../db/ClusteringBoundOrBoundary.java | 0 .../cassandra/db/ClusteringBoundary.java | 0 .../cassandra/db/ClusteringComparator.java | 0 .../apache/cassandra/db/ClusteringPrefix.java | 0 .../cassandra/db/ColumnFamilyStore.java | 0 .../cassandra/db/ColumnFamilyStoreMBean.java | 0 .../org/apache/cassandra/db/ColumnIndex.java | 0 .../java/org/apache/cassandra/db/Columns.java | 0 .../apache/cassandra/db/CompactTables.java | 0 .../org/apache/cassandra/db/Conflicts.java | 0 .../apache/cassandra/db/ConsistencyLevel.java | 0 .../apache/cassandra/db/CounterMutation.java | 0 .../db/CounterMutationVerbHandler.java | 0 .../org/apache/cassandra/db/DataRange.java | 0 .../org/apache/cassandra/db/DecoratedKey.java | 0 .../db/DefinitionsUpdateVerbHandler.java | 0 .../org/apache/cassandra/db/DeletionInfo.java | 0 .../apache/cassandra/db/DeletionPurger.java | 0 .../org/apache/cassandra/db/DeletionTime.java | 0 .../org/apache/cassandra/db/Directories.java | 0 .../apache/cassandra/db/EmptyIterators.java | 0 .../cassandra/db/HintedHandOffManager.java | 0 .../db/HintedHandOffManagerMBean.java | 0 .../org/apache/cassandra/db/IMutation.java | 0 .../org/apache/cassandra/db/Keyspace.java | 0 .../db/KeyspaceNotDefinedException.java | 0 .../org/apache/cassandra/db/LegacyLayout.java | 0 .../org/apache/cassandra/db/LivenessInfo.java | 0 .../org/apache/cassandra/db/Memtable.java | 0 .../db/MigrationRequestVerbHandler.java | 0 .../apache/cassandra/db/MultiCBuilder.java | 0 .../cassandra/db/MutableDeletionInfo.java | 0 .../org/apache/cassandra/db/Mutation.java | 0 .../cassandra/db/MutationVerbHandler.java | 0 .../apache/cassandra/db/NativeClustering.java | 0 .../cassandra/db/NativeDecoratedKey.java | 0 .../apache/cassandra/db/PartitionColumns.java | 0 .../cassandra/db/PartitionPosition.java | 0 .../db/PartitionRangeReadCommand.java | 0 .../cassandra/db/PreHashedDecoratedKey.java | 0 .../cassandra/db/RangeSliceVerbHandler.java | 0 .../apache/cassandra/db/RangeTombstone.java | 0 .../cassandra/db/RangeTombstoneList.java | 0 .../org/apache/cassandra/db/ReadCommand.java | 0 .../cassandra/db/ReadCommandVerbHandler.java | 0 .../cassandra/db/ReadExecutionController.java | 0 .../org/apache/cassandra/db/ReadQuery.java | 0 .../cassandra/db/ReadRepairVerbHandler.java | 0 .../org/apache/cassandra/db/ReadResponse.java | 0 .../apache/cassandra/db/RowIndexEntry.java | 0 .../cassandra/db/SchemaCheckVerbHandler.java | 0 .../cassandra/db/SerializationHeader.java | 0 .../org/apache/cassandra/db/Serializers.java | 0 .../apache/cassandra/db/SimpleBuilders.java | 0 .../db/SinglePartitionReadCommand.java | 0 .../cassandra/db/SizeEstimatesRecorder.java | 0 .../java/org/apache/cassandra/db/Slice.java | 0 .../java/org/apache/cassandra/db/Slices.java | 0 .../apache/cassandra/db/SnapshotCommand.java | 0 .../db/SnapshotDetailsTabularData.java | 0 .../org/apache/cassandra/db/StorageHook.java | 0 .../apache/cassandra/db/SystemKeyspace.java | 0 .../apache/cassandra/db/TruncateResponse.java | 0 .../cassandra/db/TruncateVerbHandler.java | 0 .../org/apache/cassandra/db/Truncation.java | 0 .../org/apache/cassandra/db/TypeSizes.java | 0 .../cassandra/db/UnfilteredDeserializer.java | 0 .../cassandra/db/UnknownColumnException.java | 0 .../db/UnknownColumnFamilyException.java | 0 .../db/WindowsFailedSnapshotTracker.java | 0 .../apache/cassandra/db/WriteResponse.java | 0 .../org/apache/cassandra/db/WriteType.java | 0 .../AbstractSSTableIterator.java | 0 .../db/columniterator/SSTableIterator.java | 0 .../SSTableReversedIterator.java | 0 .../AbstractCommitLogSegmentManager.java | 0 .../commitlog/AbstractCommitLogService.java | 0 .../db/commitlog/BatchCommitLogService.java | 0 .../cassandra/db/commitlog/CommitLog.java | 0 .../db/commitlog/CommitLogArchiver.java | 0 .../db/commitlog/CommitLogDescriptor.java | 0 .../db/commitlog/CommitLogMBean.java | 0 .../db/commitlog/CommitLogPosition.java | 0 .../db/commitlog/CommitLogReadHandler.java | 0 .../db/commitlog/CommitLogReader.java | 0 .../db/commitlog/CommitLogReplayer.java | 0 .../db/commitlog/CommitLogSegment.java | 0 .../commitlog/CommitLogSegmentManagerCDC.java | 0 .../CommitLogSegmentManagerStandard.java | 0 .../db/commitlog/CommitLogSegmentReader.java | 0 .../db/commitlog/CompressedSegment.java | 0 .../EncryptedFileSegmentInputStream.java | 0 .../db/commitlog/EncryptedSegment.java | 0 .../db/commitlog/FileDirectSegment.java | 0 .../cassandra/db/commitlog/IntervalSet.java | 0 .../db/commitlog/MemoryMappedSegment.java | 0 .../commitlog/PeriodicCommitLogService.java | 0 .../db/commitlog/SimpleCachedBufferPool.java | 0 .../AbstractCompactionStrategy.java | 0 .../db/compaction/AbstractCompactionTask.java | 0 .../db/compaction/CompactionController.java | 0 .../CompactionHistoryTabularData.java | 0 .../db/compaction/CompactionInfo.java | 0 .../CompactionInterruptedException.java | 0 .../db/compaction/CompactionIterator.java | 0 .../db/compaction/CompactionLogger.java | 0 .../db/compaction/CompactionManager.java | 0 .../db/compaction/CompactionManagerMBean.java | 0 .../compaction/CompactionStrategyManager.java | 0 .../db/compaction/CompactionTask.java | 0 .../DateTieredCompactionStrategy.java | 0 .../DateTieredCompactionStrategyOptions.java | 0 .../compaction/LeveledCompactionStrategy.java | 0 .../db/compaction/LeveledCompactionTask.java | 0 .../db/compaction/LeveledManifest.java | 0 .../db/compaction/OperationType.java | 0 .../db/compaction/SSTableSplitter.java | 0 .../cassandra/db/compaction/Scrubber.java | 0 .../SizeTieredCompactionStrategy.java | 0 .../SizeTieredCompactionStrategyOptions.java | 0 .../TimeWindowCompactionStrategy.java | 0 .../TimeWindowCompactionStrategyOptions.java | 0 .../cassandra/db/compaction/Upgrader.java | 0 .../cassandra/db/compaction/Verifier.java | 0 .../writers/CompactionAwareWriter.java | 0 .../writers/DefaultCompactionWriter.java | 0 .../writers/MajorLeveledCompactionWriter.java | 0 .../writers/MaxSSTableSizeWriter.java | 0 .../SplittingSizeTieredCompactionWriter.java | 0 .../cassandra/db/context/CounterContext.java | 0 .../filter/AbstractClusteringIndexFilter.java | 0 .../db/filter/ClusteringIndexFilter.java | 0 .../db/filter/ClusteringIndexNamesFilter.java | 0 .../db/filter/ClusteringIndexSliceFilter.java | 0 .../cassandra/db/filter/ColumnFilter.java | 0 .../db/filter/ColumnSubselection.java | 0 .../cassandra/db/filter/DataLimits.java | 0 .../apache/cassandra/db/filter/RowFilter.java | 0 .../TombstoneOverwhelmingException.java | 0 .../cassandra/db/lifecycle/Helpers.java | 0 .../db/lifecycle/LifecycleTransaction.java | 0 .../db/lifecycle/LogAwareFileLister.java | 0 .../cassandra/db/lifecycle/LogFile.java | 0 .../cassandra/db/lifecycle/LogRecord.java | 0 .../cassandra/db/lifecycle/LogReplica.java | 0 .../cassandra/db/lifecycle/LogReplicaSet.java | 0 .../db/lifecycle/LogTransaction.java | 0 .../db/lifecycle/SSTableIntervalTree.java | 0 .../cassandra/db/lifecycle/SSTableSet.java | 0 .../cassandra/db/lifecycle/Tracker.java | 0 .../apache/cassandra/db/lifecycle/View.java | 0 .../db/marshal/AbstractCompositeType.java | 0 .../cassandra/db/marshal/AbstractType.java | 0 .../cassandra/db/marshal/AsciiType.java | 0 .../cassandra/db/marshal/BooleanType.java | 0 .../apache/cassandra/db/marshal/ByteType.java | 0 .../cassandra/db/marshal/BytesType.java | 0 .../cassandra/db/marshal/CollectionType.java | 0 .../db/marshal/ColumnToCollectionType.java | 0 .../cassandra/db/marshal/CompositeType.java | 0 .../db/marshal/CounterColumnType.java | 0 .../apache/cassandra/db/marshal/DateType.java | 0 .../cassandra/db/marshal/DecimalType.java | 0 .../cassandra/db/marshal/DoubleType.java | 0 .../db/marshal/DynamicCompositeType.java | 0 .../cassandra/db/marshal/EmptyType.java | 0 .../cassandra/db/marshal/FloatType.java | 0 .../cassandra/db/marshal/FrozenType.java | 0 .../cassandra/db/marshal/InetAddressType.java | 0 .../cassandra/db/marshal/Int32Type.java | 0 .../cassandra/db/marshal/IntegerType.java | 0 .../cassandra/db/marshal/LexicalUUIDType.java | 0 .../apache/cassandra/db/marshal/ListType.java | 0 .../apache/cassandra/db/marshal/LongType.java | 0 .../apache/cassandra/db/marshal/MapType.java | 0 .../db/marshal/PartitionerDefinedOrder.java | 0 .../cassandra/db/marshal/ReversedType.java | 0 .../apache/cassandra/db/marshal/SetType.java | 0 .../cassandra/db/marshal/ShortType.java | 0 .../cassandra/db/marshal/SimpleDateType.java | 0 .../apache/cassandra/db/marshal/TimeType.java | 0 .../cassandra/db/marshal/TimeUUIDType.java | 0 .../cassandra/db/marshal/TimestampType.java | 0 .../cassandra/db/marshal/TupleType.java | 0 .../cassandra/db/marshal/TypeParser.java | 0 .../apache/cassandra/db/marshal/UTF8Type.java | 0 .../apache/cassandra/db/marshal/UUIDType.java | 0 .../apache/cassandra/db/marshal/UserType.java | 0 .../db/monitoring/ApproximateTime.java | 0 .../db/monitoring/ConstructionTime.java | 0 .../cassandra/db/monitoring/Monitorable.java | 0 .../db/monitoring/MonitorableImpl.java | 0 .../db/monitoring/MonitoringState.java | 0 .../db/monitoring/MonitoringTask.java | 0 .../db/partitions/AbstractBTreePartition.java | 0 .../AbstractUnfilteredPartitionIterator.java | 0 .../db/partitions/AtomicBTreePartition.java | 0 .../db/partitions/BasePartitionIterator.java | 0 .../db/partitions/CachedBTreePartition.java | 0 .../db/partitions/CachedPartition.java | 0 .../db/partitions/FilteredPartition.java | 0 .../partitions/ImmutableBTreePartition.java | 0 .../cassandra/db/partitions/Partition.java | 0 .../db/partitions/PartitionIterator.java | 0 .../db/partitions/PartitionIterators.java | 0 .../PartitionStatisticsCollector.java | 0 .../db/partitions/PartitionUpdate.java | 0 .../db/partitions/PurgeFunction.java | 0 .../SingletonUnfilteredPartitionIterator.java | 0 .../UnfilteredPartitionIterator.java | 0 .../UnfilteredPartitionIterators.java | 0 .../cassandra/db/rows/AbstractCell.java | 0 .../db/rows/AbstractRangeTombstoneMarker.java | 0 .../apache/cassandra/db/rows/AbstractRow.java | 0 .../rows/AbstractUnfilteredRowIterator.java | 0 .../apache/cassandra/db/rows/BTreeRow.java | 0 .../cassandra/db/rows/BaseRowIterator.java | 0 .../apache/cassandra/db/rows/BufferCell.java | 0 .../org/apache/cassandra/db/rows/Cell.java | 0 .../apache/cassandra/db/rows/CellPath.java | 0 .../org/apache/cassandra/db/rows/Cells.java | 0 .../apache/cassandra/db/rows/ColumnData.java | 0 .../cassandra/db/rows/ComplexColumnData.java | 0 .../cassandra/db/rows/CounterCells.java | 0 .../cassandra/db/rows/EncodingStats.java | 0 ...azilyInitializedUnfilteredRowIterator.java | 0 .../apache/cassandra/db/rows/NativeCell.java | 0 .../db/rows/RangeTombstoneBoundMarker.java | 0 .../db/rows/RangeTombstoneBoundaryMarker.java | 0 .../db/rows/RangeTombstoneMarker.java | 0 .../org/apache/cassandra/db/rows/Row.java | 0 .../db/rows/RowAndDeletionMergeIterator.java | 0 .../cassandra/db/rows/RowDiffListener.java | 0 .../apache/cassandra/db/rows/RowIterator.java | 0 .../cassandra/db/rows/RowIterators.java | 0 .../org/apache/cassandra/db/rows/Rows.java | 0 .../db/rows/SerializationHelper.java | 0 .../apache/cassandra/db/rows/Unfiltered.java | 0 .../db/rows/UnfilteredRowIterator.java | 0 .../rows/UnfilteredRowIteratorSerializer.java | 0 .../UnfilteredRowIteratorWithLowerBound.java | 0 .../db/rows/UnfilteredRowIterators.java | 0 .../db/rows/UnfilteredSerializer.java | 0 .../db/rows/WithOnlyQueriedData.java | 0 .../rows/WrappingUnfilteredRowIterator.java | 0 .../cassandra/db/transform/BaseIterator.java | 0 .../db/transform/BasePartitions.java | 0 .../cassandra/db/transform/BaseRows.java | 0 .../apache/cassandra/db/transform/Filter.java | 0 .../db/transform/FilteredPartitions.java | 0 .../cassandra/db/transform/FilteredRows.java | 0 .../cassandra/db/transform/MoreContents.java | 0 .../db/transform/MorePartitions.java | 0 .../cassandra/db/transform/MoreRows.java | 0 .../apache/cassandra/db/transform/Stack.java | 0 .../db/transform/StoppingTransformation.java | 0 .../db/transform/Transformation.java | 0 .../db/transform/UnfilteredPartitions.java | 0 .../db/transform/UnfilteredRows.java | 0 .../apache/cassandra/db/view/TableViews.java | 0 .../org/apache/cassandra/db/view/View.java | 0 .../apache/cassandra/db/view/ViewBuilder.java | 0 .../apache/cassandra/db/view/ViewManager.java | 0 .../db/view/ViewUpdateGenerator.java | 0 .../apache/cassandra/db/view/ViewUtils.java | 0 .../apache/cassandra/dht/AbstractBounds.java | 0 .../apache/cassandra/dht/BootStrapper.java | 0 .../java/org/apache/cassandra/dht/Bounds.java | 0 .../cassandra/dht/ByteOrderedPartitioner.java | 0 .../cassandra/dht/ComparableObjectToken.java | 0 .../apache/cassandra/dht/ExcludingBounds.java | 0 .../apache/cassandra/dht/IPartitioner.java | 0 .../dht/IPartitionerDependentSerializer.java | 0 .../dht/IncludingExcludingBounds.java | 0 .../cassandra/dht/LocalPartitioner.java | 0 .../cassandra/dht/Murmur3Partitioner.java | 0 .../dht/OrderPreservingPartitioner.java | 0 .../cassandra/dht/RandomPartitioner.java | 0 .../java/org/apache/cassandra/dht/Range.java | 0 .../apache/cassandra/dht/RangeStreamer.java | 0 .../apache/cassandra/dht/RingPosition.java | 0 .../org/apache/cassandra/dht/Splitter.java | 0 .../cassandra/dht/StreamStateStore.java | 0 .../java/org/apache/cassandra/dht/Token.java | 0 .../ReplicationAwareTokenAllocator.java | 0 .../tokenallocator/ReplicationStrategy.java | 0 .../dht/tokenallocator/TokenAllocation.java | 0 .../dht/tokenallocator/TokenAllocator.java | 0 .../exceptions/AlreadyExistsException.java | 0 .../exceptions/AuthenticationException.java | 0 .../exceptions/CassandraException.java | 0 .../exceptions/ConfigurationException.java | 0 .../cassandra/exceptions/ExceptionCode.java | 0 .../FunctionExecutionException.java | 0 .../exceptions/InvalidRequestException.java | 0 .../exceptions/IsBootstrappingException.java | 0 .../exceptions/OverloadedException.java | 0 .../PreparedQueryNotFoundException.java | 0 .../exceptions/ReadFailureException.java | 0 .../exceptions/ReadTimeoutException.java | 0 .../cassandra/exceptions/RepairException.java | 0 .../exceptions/RequestExecutionException.java | 0 .../exceptions/RequestFailureException.java | 0 .../exceptions/RequestTimeoutException.java | 0 .../RequestValidationException.java | 0 .../exceptions/StartupException.java | 0 .../cassandra/exceptions/SyntaxException.java | 0 .../exceptions/TransportException.java | 0 .../exceptions/TruncateException.java | 0 .../exceptions/UnauthorizedException.java | 0 .../exceptions/UnavailableException.java | 0 .../exceptions/WriteFailureException.java | 0 .../exceptions/WriteTimeoutException.java | 0 .../cassandra/gms/ApplicationState.java | 0 .../org/apache/cassandra/gms/EchoMessage.java | 0 .../apache/cassandra/gms/EndpointState.java | 0 .../apache/cassandra/gms/FailureDetector.java | 0 .../cassandra/gms/FailureDetectorMBean.java | 0 .../apache/cassandra/gms/GossipDigest.java | 0 .../apache/cassandra/gms/GossipDigestAck.java | 0 .../cassandra/gms/GossipDigestAck2.java | 0 .../gms/GossipDigestAck2VerbHandler.java | 0 .../gms/GossipDigestAckVerbHandler.java | 0 .../apache/cassandra/gms/GossipDigestSyn.java | 0 .../gms/GossipDigestSynVerbHandler.java | 0 .../gms/GossipShutdownVerbHandler.java | 0 .../org/apache/cassandra/gms/Gossiper.java | 0 .../apache/cassandra/gms/GossiperMBean.java | 0 .../apache/cassandra/gms/HeartBeatState.java | 0 .../gms/IEndpointStateChangeSubscriber.java | 0 .../gms/IFailureDetectionEventListener.java | 0 .../cassandra/gms/IFailureDetector.java | 0 .../apache/cassandra/gms/TokenSerializer.java | 0 .../cassandra/gms/VersionGenerator.java | 0 .../apache/cassandra/gms/VersionedValue.java | 0 .../cassandra/hadoop/ColumnFamilySplit.java | 0 .../apache/cassandra/hadoop/ConfigHelper.java | 0 .../apache/cassandra/hadoop/HadoopCompat.java | 0 .../cassandra/hadoop/ReporterWrapper.java | 0 .../hadoop/cql3/CqlBulkOutputFormat.java | 0 .../hadoop/cql3/CqlBulkRecordWriter.java | 0 .../hadoop/cql3/CqlConfigHelper.java | 0 .../cassandra/hadoop/cql3/CqlInputFormat.java | 0 .../hadoop/cql3/CqlOutputFormat.java | 0 .../hadoop/cql3/CqlRecordReader.java | 0 .../hadoop/cql3/CqlRecordWriter.java | 0 ...tedLocalNodeFirstLocalBalancingPolicy.java | 0 .../cassandra/hints/ChecksummedDataInput.java | 0 .../hints/CompressedChecksummedDataInput.java | 0 .../hints/CompressedHintsWriter.java | 0 .../cassandra/hints/EncodedHintMessage.java | 0 .../hints/EncryptedChecksummedDataInput.java | 0 .../cassandra/hints/EncryptedHintsWriter.java | 0 .../java/org/apache/cassandra/hints/Hint.java | 0 .../apache/cassandra/hints/HintMessage.java | 0 .../apache/cassandra/hints/HintResponse.java | 0 .../cassandra/hints/HintVerbHandler.java | 0 .../apache/cassandra/hints/HintsBuffer.java | 0 .../cassandra/hints/HintsBufferPool.java | 0 .../apache/cassandra/hints/HintsCatalog.java | 0 .../cassandra/hints/HintsDescriptor.java | 0 .../hints/HintsDispatchExecutor.java | 0 .../cassandra/hints/HintsDispatchTrigger.java | 0 .../cassandra/hints/HintsDispatcher.java | 0 .../apache/cassandra/hints/HintsReader.java | 0 .../apache/cassandra/hints/HintsService.java | 0 .../cassandra/hints/HintsServiceMBean.java | 0 .../apache/cassandra/hints/HintsStore.java | 0 .../cassandra/hints/HintsWriteExecutor.java | 0 .../apache/cassandra/hints/HintsWriter.java | 0 .../cassandra/hints/LegacyHintsMigrator.java | 0 .../apache/cassandra/hints/package-info.java | 0 .../org/apache/cassandra/index/Index.java | 0 .../index/IndexNotAvailableException.java | 0 .../apache/cassandra/index/IndexRegistry.java | 0 .../index/SecondaryIndexBuilder.java | 0 .../index/SecondaryIndexManager.java | 0 .../apache/cassandra/index/TargetParser.java | 0 .../index/internal/CassandraIndex.java | 0 .../internal/CassandraIndexFunctions.java | 0 .../internal/CassandraIndexSearcher.java | 0 .../internal/CollatedViewIndexBuilder.java | 0 .../cassandra/index/internal/IndexEntry.java | 0 .../composites/ClusteringColumnIndex.java | 0 .../composites/CollectionEntryIndex.java | 0 .../composites/CollectionKeyIndex.java | 0 .../composites/CollectionKeyIndexBase.java | 0 .../composites/CollectionValueIndex.java | 0 .../composites/CompositesSearcher.java | 0 .../composites/PartitionKeyIndex.java | 0 .../composites/RegularColumnIndex.java | 0 .../index/internal/keys/KeysIndex.java | 0 .../index/internal/keys/KeysSearcher.java | 0 .../cassandra/index/sasi/SASIIndex.java | 0 .../index/sasi/SASIIndexBuilder.java | 0 .../cassandra/index/sasi/SSTableIndex.java | 0 .../org/apache/cassandra/index/sasi/Term.java | 0 .../cassandra/index/sasi/TermIterator.java | 0 .../index/sasi/analyzer/AbstractAnalyzer.java | 0 .../index/sasi/analyzer/NoOpAnalyzer.java | 0 .../sasi/analyzer/NonTokenizingAnalyzer.java | 0 .../sasi/analyzer/NonTokenizingOptions.java | 0 .../sasi/analyzer/SUPPLEMENTARY.jflex-macro | 0 .../index/sasi/analyzer/StandardAnalyzer.java | 0 .../sasi/analyzer/StandardTokenizerImpl.jflex | 0 .../analyzer/StandardTokenizerInterface.java | 0 .../analyzer/StandardTokenizerOptions.java | 0 .../analyzer/filter/BasicResultFilters.java | 0 .../filter/FilterPipelineBuilder.java | 0 .../filter/FilterPipelineExecutor.java | 0 .../analyzer/filter/FilterPipelineTask.java | 0 .../sasi/analyzer/filter/StemmerFactory.java | 0 .../sasi/analyzer/filter/StemmingFilters.java | 0 .../sasi/analyzer/filter/StopWordFactory.java | 0 .../sasi/analyzer/filter/StopWordFilters.java | 0 .../index/sasi/conf/ColumnIndex.java | 0 .../index/sasi/conf/DataTracker.java | 0 .../cassandra/index/sasi/conf/IndexMode.java | 0 .../index/sasi/conf/view/PrefixTermTree.java | 0 .../index/sasi/conf/view/RangeTermTree.java | 0 .../index/sasi/conf/view/TermTree.java | 0 .../cassandra/index/sasi/conf/view/View.java | 0 .../sasi/disk/AbstractTokenTreeBuilder.java | 0 .../cassandra/index/sasi/disk/Descriptor.java | 0 .../sasi/disk/DynamicTokenTreeBuilder.java | 0 .../index/sasi/disk/OnDiskBlock.java | 0 .../index/sasi/disk/OnDiskIndex.java | 0 .../index/sasi/disk/OnDiskIndexBuilder.java | 0 .../sasi/disk/PerSSTableIndexWriter.java | 0 .../sasi/disk/StaticTokenTreeBuilder.java | 0 .../cassandra/index/sasi/disk/Token.java | 0 .../cassandra/index/sasi/disk/TokenTree.java | 0 .../index/sasi/disk/TokenTreeBuilder.java | 0 .../TimeQuotaExceededException.java | 0 .../index/sasi/memory/IndexMemtable.java | 0 .../index/sasi/memory/KeyRangeIterator.java | 0 .../cassandra/index/sasi/memory/MemIndex.java | 0 .../index/sasi/memory/SkipListMemIndex.java | 0 .../index/sasi/memory/TrieMemIndex.java | 0 .../cassandra/index/sasi/plan/Expression.java | 0 .../cassandra/index/sasi/plan/Operation.java | 0 .../index/sasi/plan/QueryController.java | 0 .../cassandra/index/sasi/plan/QueryPlan.java | 0 .../cassandra/index/sasi/sa/ByteTerm.java | 0 .../cassandra/index/sasi/sa/CharTerm.java | 0 .../cassandra/index/sasi/sa/IndexedTerm.java | 0 .../cassandra/index/sasi/sa/IntegralSA.java | 0 .../apache/cassandra/index/sasi/sa/SA.java | 0 .../cassandra/index/sasi/sa/SuffixSA.java | 0 .../apache/cassandra/index/sasi/sa/Term.java | 0 .../cassandra/index/sasi/sa/TermIterator.java | 0 .../index/sasi/utils/AbstractIterator.java | 0 .../index/sasi/utils/CombinedTerm.java | 0 .../sasi/utils/CombinedTermIterator.java | 0 .../index/sasi/utils/CombinedValue.java | 0 .../index/sasi/utils/MappedBuffer.java | 0 .../index/sasi/utils/OnDiskIndexIterator.java | 0 .../sasi/utils/RangeIntersectionIterator.java | 0 .../index/sasi/utils/RangeIterator.java | 0 .../index/sasi/utils/RangeUnionIterator.java | 0 .../cassandra/index/sasi/utils/TypeUtil.java | 0 .../sasi/utils/trie/AbstractPatriciaTrie.java | 0 .../index/sasi/utils/trie/AbstractTrie.java | 0 .../index/sasi/utils/trie/Cursor.java | 0 .../index/sasi/utils/trie/KeyAnalyzer.java | 0 .../index/sasi/utils/trie/PatriciaTrie.java | 0 .../cassandra/index/sasi/utils/trie/Trie.java | 0 .../index/sasi/utils/trie/Tries.java | 0 .../transactions/CleanupTransaction.java | 0 .../transactions/CompactionTransaction.java | 0 .../index/transactions/IndexTransaction.java | 0 .../index/transactions/UpdateTransaction.java | 0 .../java/org/apache/cassandra/io/FSError.java | 0 .../apache/cassandra/io/FSErrorHandler.java | 0 .../org/apache/cassandra/io/FSReadError.java | 0 .../org/apache/cassandra/io/FSWriteError.java | 0 .../io/ForwardingVersionedSerializer.java | 0 .../cassandra/io/ISSTableSerializer.java | 0 .../org/apache/cassandra/io/ISerializer.java | 0 .../cassandra/io/IVersionedSerializer.java | 0 .../cassandra/io/compress/BufferType.java | 0 .../compress/CompressedSequentialWriter.java | 0 .../io/compress/CompressionMetadata.java | 0 .../io/compress/CorruptBlockException.java | 0 .../io/compress/DeflateCompressor.java | 0 .../cassandra/io/compress/ICompressor.java | 0 .../cassandra/io/compress/LZ4Compressor.java | 0 .../io/compress/SnappyCompressor.java | 0 .../sstable/AbstractSSTableSimpleWriter.java | 0 .../io/sstable/BloomFilterTracker.java | 0 .../io/sstable/CQLSSTableWriter.java | 0 .../cassandra/io/sstable/Component.java | 0 .../io/sstable/CorruptSSTableException.java | 0 .../cassandra/io/sstable/Descriptor.java | 0 .../cassandra/io/sstable/Downsampling.java | 0 .../cassandra/io/sstable/ISSTableScanner.java | 0 .../cassandra/io/sstable/IndexInfo.java | 0 .../cassandra/io/sstable/IndexSummary.java | 0 .../io/sstable/IndexSummaryBuilder.java | 0 .../io/sstable/IndexSummaryManager.java | 0 .../io/sstable/IndexSummaryManagerMBean.java | 0 .../sstable/IndexSummaryRedistribution.java | 0 .../cassandra/io/sstable/KeyIterator.java | 0 .../io/sstable/ReducingKeyIterator.java | 0 .../apache/cassandra/io/sstable/SSTable.java | 0 .../io/sstable/SSTableIdentityIterator.java | 0 .../cassandra/io/sstable/SSTableLoader.java | 0 .../io/sstable/SSTableMultiWriter.java | 0 .../cassandra/io/sstable/SSTableRewriter.java | 0 .../io/sstable/SSTableSimpleIterator.java | 0 .../sstable/SSTableSimpleUnsortedWriter.java | 0 .../io/sstable/SSTableSimpleWriter.java | 0 .../io/sstable/SSTableTxnWriter.java | 0 .../io/sstable/SimpleSSTableMultiWriter.java | 0 .../io/sstable/SnapshotDeletingTask.java | 0 .../format/RangeAwareSSTableWriter.java | 0 .../sstable/format/SSTableFlushObserver.java | 0 .../io/sstable/format/SSTableFormat.java | 0 .../io/sstable/format/SSTableReader.java | 0 .../io/sstable/format/SSTableWriter.java | 0 .../cassandra/io/sstable/format/Version.java | 0 .../io/sstable/format/big/BigFormat.java | 0 .../io/sstable/format/big/BigTableReader.java | 0 .../sstable/format/big/BigTableScanner.java | 0 .../io/sstable/format/big/BigTableWriter.java | 0 .../sstable/metadata/CompactionMetadata.java | 0 .../IMetadataComponentSerializer.java | 0 .../sstable/metadata/IMetadataSerializer.java | 0 .../metadata/LegacyMetadataSerializer.java | 0 .../sstable/metadata/MetadataCollector.java | 0 .../sstable/metadata/MetadataComponent.java | 0 .../sstable/metadata/MetadataSerializer.java | 0 .../io/sstable/metadata/MetadataType.java | 0 .../io/sstable/metadata/StatsMetadata.java | 0 .../sstable/metadata/ValidationMetadata.java | 0 .../io/util/AbstractReaderFileProxy.java | 0 .../io/util/BufferManagingRebufferer.java | 0 .../io/util/BufferedDataOutputStreamPlus.java | 0 .../io/util/BufferedSegmentedFile.java | 0 .../cassandra/io/util/BytesReadTracker.java | 0 .../cassandra/io/util/ChannelProxy.java | 0 .../cassandra/io/util/ChecksumWriter.java | 0 .../util/ChecksummedRandomAccessReader.java | 0 .../io/util/ChecksummedSequentialWriter.java | 0 .../apache/cassandra/io/util/ChunkReader.java | 0 .../io/util/CompressedSegmentedFile.java | 0 .../cassandra/io/util/DataInputBuffer.java | 0 .../cassandra/io/util/DataInputPlus.java | 0 .../io/util/DataIntegrityMetadata.java | 0 .../cassandra/io/util/DataOutputBuffer.java | 0 .../io/util/DataOutputBufferFixed.java | 0 .../cassandra/io/util/DataOutputPlus.java | 0 .../io/util/DataOutputStreamPlus.java | 0 .../cassandra/io/util/DataPosition.java | 0 .../io/util/FastByteArrayInputStream.java | 0 .../cassandra/io/util/FileDataInput.java | 0 .../io/util/FileSegmentInputStream.java | 0 .../apache/cassandra/io/util/FileUtils.java | 0 .../cassandra/io/util/ICompressedFile.java | 0 .../io/util/LengthAvailableInputStream.java | 0 .../cassandra/io/util/LimitingRebufferer.java | 0 .../org/apache/cassandra/io/util/Memory.java | 0 .../cassandra/io/util/MemoryInputStream.java | 0 .../cassandra/io/util/MemoryOutputStream.java | 0 .../cassandra/io/util/MmapRebufferer.java | 0 .../cassandra/io/util/MmappedRegions.java | 0 .../io/util/MmappedSegmentedFile.java | 0 .../cassandra/io/util/NIODataInputStream.java | 0 .../cassandra/io/util/RandomAccessReader.java | 0 .../cassandra/io/util/ReaderFileProxy.java | 0 .../apache/cassandra/io/util/Rebufferer.java | 0 .../cassandra/io/util/RebuffererFactory.java | 0 .../io/util/RebufferingInputStream.java | 0 .../io/util/RewindableDataInput.java | 0 .../util/RewindableDataInputStreamPlus.java | 0 .../apache/cassandra/io/util/SafeMemory.java | 0 .../cassandra/io/util/SafeMemoryWriter.java | 0 .../cassandra/io/util/SegmentedFile.java | 0 .../cassandra/io/util/SequentialWriter.java | 0 .../io/util/SequentialWriterOption.java | 0 .../cassandra/io/util/SimpleChunkReader.java | 0 .../io/util/TrackedDataInputPlus.java | 0 .../cassandra/io/util/TrackedInputStream.java | 0 .../util/UnbufferedDataOutputStreamPlus.java | 0 .../io/util/WrappedDataOutputStreamPlus.java | 0 .../locator/AbstractEndpointSnitch.java | 0 .../AbstractNetworkTopologySnitch.java | 0 .../locator/AbstractReplicationStrategy.java | 0 .../cassandra/locator/CloudstackSnitch.java | 0 .../locator/DynamicEndpointSnitch.java | 0 .../locator/DynamicEndpointSnitchMBean.java | 0 .../locator/Ec2MultiRegionSnitch.java | 0 .../apache/cassandra/locator/Ec2Snitch.java | 0 .../cassandra/locator/EndpointSnitchInfo.java | 0 .../locator/EndpointSnitchInfoMBean.java | 0 .../cassandra/locator/GoogleCloudSnitch.java | 0 .../locator/GossipingPropertyFileSnitch.java | 0 .../cassandra/locator/IEndpointSnitch.java | 0 .../cassandra/locator/ILatencySubscriber.java | 0 .../cassandra/locator/LocalStrategy.java | 0 .../locator/NetworkTopologyStrategy.java | 0 .../locator/OldNetworkTopologyStrategy.java | 0 .../cassandra/locator/PendingRangeMaps.java | 0 .../cassandra/locator/PropertyFileSnitch.java | 0 .../locator/RackInferringSnitch.java | 0 .../locator/ReconnectableSnitchHelper.java | 0 .../cassandra/locator/SeedProvider.java | 0 .../cassandra/locator/SimpleSeedProvider.java | 0 .../cassandra/locator/SimpleSnitch.java | 0 .../cassandra/locator/SimpleStrategy.java | 0 .../cassandra/locator/SnitchProperties.java | 0 .../cassandra/locator/TokenMetadata.java | 0 .../cassandra/metrics/BufferPoolMetrics.java | 0 .../metrics/CASClientRequestMetrics.java | 0 .../apache/cassandra/metrics/CQLMetrics.java | 0 .../cassandra/metrics/CacheMetrics.java | 0 .../cassandra/metrics/CacheMissMetrics.java | 0 .../metrics/CassandraMetricsRegistry.java | 0 .../cassandra/metrics/ClearableHistogram.java | 0 .../cassandra/metrics/ClientMetrics.java | 0 .../metrics/ClientRequestMetrics.java | 0 .../cassandra/metrics/CommitLogMetrics.java | 0 .../cassandra/metrics/CompactionMetrics.java | 0 .../cassandra/metrics/ConnectionMetrics.java | 0 .../DecayingEstimatedHistogramReservoir.java | 0 .../cassandra/metrics/DefaultNameFactory.java | 0 .../metrics/DroppedMessageMetrics.java | 0 .../metrics/HintedHandoffMetrics.java | 0 .../metrics/HintsServiceMetrics.java | 0 .../cassandra/metrics/KeyspaceMetrics.java | 0 .../cassandra/metrics/LatencyMetrics.java | 0 .../cassandra/metrics/MessagingMetrics.java | 0 .../cassandra/metrics/MetricNameFactory.java | 0 .../cassandra/metrics/ReadRepairMetrics.java | 0 .../cassandra/metrics/RestorableMeter.java | 0 .../apache/cassandra/metrics/SEPMetrics.java | 0 .../cassandra/metrics/StorageMetrics.java | 0 .../cassandra/metrics/StreamingMetrics.java | 0 .../cassandra/metrics/TableMetrics.java | 0 .../metrics/ThreadPoolMetricNameFactory.java | 0 .../cassandra/metrics/ThreadPoolMetrics.java | 0 .../cassandra/metrics/ViewWriteMetrics.java | 0 .../cassandra/net/AsyncOneResponse.java | 0 .../apache/cassandra/net/CallbackInfo.java | 0 .../CompactEndpointSerializationHelper.java | 0 .../apache/cassandra/net/IAsyncCallback.java | 0 .../net/IAsyncCallbackWithFailure.java | 0 .../apache/cassandra/net/IMessageSink.java | 0 .../apache/cassandra/net/IVerbHandler.java | 0 .../net/IncomingStreamingConnection.java | 0 .../cassandra/net/IncomingTcpConnection.java | 0 .../cassandra/net/MessageDeliveryTask.java | 0 .../org/apache/cassandra/net/MessageIn.java | 0 .../org/apache/cassandra/net/MessageOut.java | 0 .../cassandra/net/MessagingService.java | 0 .../cassandra/net/MessagingServiceMBean.java | 0 .../cassandra/net/OutboundTcpConnection.java | 0 .../net/OutboundTcpConnectionPool.java | 0 .../cassandra/net/ResponseVerbHandler.java | 0 .../cassandra/net/WriteCallbackInfo.java | 0 .../notifications/INotification.java | 0 .../notifications/INotificationConsumer.java | 0 .../MemtableDiscardedNotification.java | 0 .../MemtableRenewedNotification.java | 0 .../MemtableSwitchedNotification.java | 0 .../SSTableAddedNotification.java | 0 .../SSTableDeletingNotification.java | 0 .../SSTableListChangedNotification.java | 0 .../SSTableRepairStatusChanged.java | 0 .../notifications/TruncationNotification.java | 0 .../cassandra/repair/AnticompactionTask.java | 0 .../cassandra/repair/LocalSyncTask.java | 0 .../org/apache/cassandra/repair/NodePair.java | 0 .../cassandra/repair/RemoteSyncTask.java | 0 .../apache/cassandra/repair/RepairJob.java | 0 .../cassandra/repair/RepairJobDesc.java | 0 .../repair/RepairMessageVerbHandler.java | 0 .../cassandra/repair/RepairParallelism.java | 0 .../apache/cassandra/repair/RepairResult.java | 0 .../cassandra/repair/RepairRunnable.java | 0 .../cassandra/repair/RepairSession.java | 0 .../cassandra/repair/RepairSessionResult.java | 0 .../apache/cassandra/repair/SnapshotTask.java | 0 .../cassandra/repair/StreamingRepairTask.java | 0 .../org/apache/cassandra/repair/SyncStat.java | 0 .../org/apache/cassandra/repair/SyncTask.java | 0 .../repair/SystemDistributedKeyspace.java | 0 .../apache/cassandra/repair/TreeResponse.java | 0 .../cassandra/repair/ValidationTask.java | 0 .../apache/cassandra/repair/Validator.java | 0 .../messages/AnticompactionRequest.java | 0 .../repair/messages/CleanupMessage.java | 0 .../repair/messages/PrepareMessage.java | 0 .../repair/messages/RepairMessage.java | 0 .../repair/messages/RepairOption.java | 0 .../repair/messages/SnapshotMessage.java | 0 .../repair/messages/SyncComplete.java | 0 .../repair/messages/SyncRequest.java | 0 .../repair/messages/ValidationComplete.java | 0 .../repair/messages/ValidationRequest.java | 0 .../scheduler/IRequestScheduler.java | 0 .../cassandra/scheduler/NoScheduler.java | 0 .../scheduler/RoundRobinScheduler.java | 0 .../cassandra/scheduler/WeightedQueue.java | 0 .../cassandra/schema/CQLTypeParser.java | 0 .../cassandra/schema/CachingParams.java | 0 .../cassandra/schema/CompactionParams.java | 0 .../cassandra/schema/CompressionParams.java | 0 .../apache/cassandra/schema/Functions.java | 0 .../cassandra/schema/IndexMetadata.java | 0 .../org/apache/cassandra/schema/Indexes.java | 0 .../cassandra/schema/KeyspaceMetadata.java | 0 .../cassandra/schema/KeyspaceParams.java | 0 .../apache/cassandra/schema/Keyspaces.java | 0 .../schema/LegacySchemaMigrator.java | 0 .../cassandra/schema/ReplicationParams.java | 0 .../cassandra/schema/SchemaKeyspace.java | 0 .../schema/SpeculativeRetryParam.java | 0 .../apache/cassandra/schema/TableParams.java | 0 .../org/apache/cassandra/schema/Tables.java | 0 .../cassandra/schema/TriggerMetadata.java | 0 .../org/apache/cassandra/schema/Triggers.java | 0 .../org/apache/cassandra/schema/Types.java | 0 .../schema/UnknownIndexException.java | 0 .../org/apache/cassandra/schema/Views.java | 0 .../cassandra/security/CipherFactory.java | 0 .../cassandra/security/EncryptionContext.java | 0 .../cassandra/security/EncryptionUtils.java | 0 .../cassandra/security/JKSKeyProvider.java | 0 .../cassandra/security/KeyProvider.java | 0 .../apache/cassandra/security/SSLFactory.java | 0 .../serializers/AbstractTextSerializer.java | 0 .../serializers/AsciiSerializer.java | 0 .../serializers/BooleanSerializer.java | 0 .../cassandra/serializers/ByteSerializer.java | 0 .../serializers/BytesSerializer.java | 0 .../serializers/CollectionSerializer.java | 0 .../serializers/CounterSerializer.java | 0 .../serializers/DecimalSerializer.java | 0 .../serializers/DoubleSerializer.java | 0 .../serializers/EmptySerializer.java | 0 .../serializers/FloatSerializer.java | 0 .../serializers/InetAddressSerializer.java | 0 .../serializers/Int32Serializer.java | 0 .../serializers/IntegerSerializer.java | 0 .../cassandra/serializers/ListSerializer.java | 0 .../cassandra/serializers/LongSerializer.java | 0 .../cassandra/serializers/MapSerializer.java | 0 .../serializers/MarshalException.java | 0 .../cassandra/serializers/SetSerializer.java | 0 .../serializers/ShortSerializer.java | 0 .../serializers/SimpleDateSerializer.java | 0 .../cassandra/serializers/TimeSerializer.java | 0 .../serializers/TimeUUIDSerializer.java | 0 .../serializers/TimestampSerializer.java | 0 .../cassandra/serializers/TypeSerializer.java | 0 .../cassandra/serializers/UTF8Serializer.java | 0 .../cassandra/serializers/UUIDSerializer.java | 0 .../service/AbstractReadExecutor.java | 0 .../service/AbstractWriteResponseHandler.java | 0 .../service/ActiveRepairService.java | 0 .../service/AsyncRepairCallback.java | 0 .../service/BatchlogResponseHandler.java | 0 .../apache/cassandra/service/CASRequest.java | 0 .../cassandra/service/CacheService.java | 0 .../cassandra/service/CacheServiceMBean.java | 0 .../cassandra/service/CassandraDaemon.java | 0 .../apache/cassandra/service/ClientState.java | 0 .../apache/cassandra/service/ClientWarn.java | 0 .../cassandra/service/DataResolver.java | 0 .../DatacenterSyncWriteResponseHandler.java | 0 .../DatacenterWriteResponseHandler.java | 0 .../service/DefaultFSErrorHandler.java | 0 .../service/DigestMismatchException.java | 0 .../cassandra/service/DigestResolver.java | 0 .../cassandra/service/EchoVerbHandler.java | 0 .../service/EmbeddedCassandraService.java | 0 .../apache/cassandra/service/GCInspector.java | 0 .../cassandra/service/GCInspectorMXBean.java | 0 .../service/IEndpointLifecycleSubscriber.java | 0 .../cassandra/service/LoadBroadcaster.java | 0 .../cassandra/service/MigrationListener.java | 0 .../cassandra/service/MigrationManager.java | 0 .../cassandra/service/MigrationTask.java | 0 .../cassandra/service/NativeAccessMBean.java | 0 .../service/NativeTransportService.java | 0 .../PendingRangeCalculatorService.java | 0 .../apache/cassandra/service/QueryState.java | 0 .../cassandra/service/ReadCallback.java | 0 .../cassandra/service/ResponseResolver.java | 0 .../service/SnapshotVerbHandler.java | 0 .../cassandra/service/StartupCheck.java | 0 .../cassandra/service/StartupChecks.java | 0 .../cassandra/service/StorageProxy.java | 0 .../cassandra/service/StorageProxyMBean.java | 0 .../cassandra/service/StorageService.java | 0 .../service/StorageServiceMBean.java | 0 .../service/TruncateResponseHandler.java | 0 .../service/WriteResponseHandler.java | 0 .../service/pager/AbstractQueryPager.java | 0 .../service/pager/MultiPartitionPager.java | 0 .../cassandra/service/pager/PagingState.java | 0 .../pager/PartitionRangeQueryPager.java | 0 .../cassandra/service/pager/QueryPager.java | 0 .../cassandra/service/pager/QueryPagers.java | 0 .../service/pager/SinglePartitionPager.java | 0 .../service/paxos/AbstractPaxosCallback.java | 0 .../cassandra/service/paxos/Commit.java | 0 .../service/paxos/CommitVerbHandler.java | 0 .../cassandra/service/paxos/PaxosState.java | 0 .../service/paxos/PrepareCallback.java | 0 .../service/paxos/PrepareResponse.java | 0 .../service/paxos/PrepareVerbHandler.java | 0 .../service/paxos/ProposeCallback.java | 0 .../service/paxos/ProposeVerbHandler.java | 0 .../streaming/ConnectionHandler.java | 0 .../streaming/DefaultConnectionFactory.java | 0 .../cassandra/streaming/ProgressInfo.java | 0 .../ReplicationFinishedVerbHandler.java | 0 .../cassandra/streaming/SessionInfo.java | 0 .../streaming/StreamConnectionFactory.java | 0 .../streaming/StreamCoordinator.java | 0 .../cassandra/streaming/StreamEvent.java | 0 .../streaming/StreamEventHandler.java | 0 .../cassandra/streaming/StreamException.java | 0 .../cassandra/streaming/StreamHook.java | 0 .../cassandra/streaming/StreamManager.java | 0 .../streaming/StreamManagerMBean.java | 0 .../cassandra/streaming/StreamPlan.java | 0 .../cassandra/streaming/StreamReader.java | 0 .../streaming/StreamReceiveTask.java | 0 .../cassandra/streaming/StreamRequest.java | 0 .../streaming/StreamResultFuture.java | 0 .../cassandra/streaming/StreamSession.java | 0 .../cassandra/streaming/StreamState.java | 0 .../cassandra/streaming/StreamSummary.java | 0 .../cassandra/streaming/StreamTask.java | 0 .../streaming/StreamTransferTask.java | 0 .../cassandra/streaming/StreamWriter.java | 0 .../compress/CompressedInputStream.java | 0 .../compress/CompressedStreamReader.java | 0 .../compress/CompressedStreamWriter.java | 0 .../streaming/compress/CompressionInfo.java | 0 .../management/ProgressInfoCompositeData.java | 0 .../SessionCompleteEventCompositeData.java | 0 .../management/SessionInfoCompositeData.java | 0 .../management/StreamEventJMXNotifier.java | 0 .../management/StreamStateCompositeData.java | 0 .../StreamSummaryCompositeData.java | 0 .../streaming/messages/CompleteMessage.java | 0 .../streaming/messages/FileMessageHeader.java | 0 .../messages/IncomingFileMessage.java | 0 .../messages/OutgoingFileMessage.java | 0 .../streaming/messages/PrepareMessage.java | 0 .../streaming/messages/ReceivedMessage.java | 0 .../streaming/messages/RetryMessage.java | 0 .../messages/SessionFailedMessage.java | 0 .../streaming/messages/StreamInitMessage.java | 0 .../streaming/messages/StreamMessage.java | 0 .../cassandra/thrift/CassandraServer.java | 0 .../thrift/CustomTNonBlockingServer.java | 0 .../thrift/CustomTThreadPoolServer.java | 0 .../cassandra/thrift/ITransportFactory.java | 0 .../cassandra/thrift/SSLTransportFactory.java | 0 .../TCustomNonblockingServerSocket.java | 0 .../cassandra/thrift/TCustomServerSocket.java | 0 .../cassandra/thrift/TCustomSocket.java | 0 .../thrift/TFramedTransportFactory.java | 0 .../thrift/THsHaDisruptorServer.java | 0 .../thrift/TServerCustomFactory.java | 0 .../cassandra/thrift/TServerFactory.java | 0 .../cassandra/thrift/ThriftClientState.java | 0 .../cassandra/thrift/ThriftConversion.java | 0 .../cassandra/thrift/ThriftResultsMerger.java | 0 .../apache/cassandra/thrift/ThriftServer.java | 0 .../thrift/ThriftSessionManager.java | 0 .../cassandra/thrift/ThriftValidation.java | 0 .../cassandra/tools/AbstractJmxClient.java | 0 .../cassandra/tools/BootstrapMonitor.java | 0 .../tools/BulkLoadConnectionFactory.java | 0 .../cassandra/tools/BulkLoadException.java | 0 .../apache/cassandra/tools/BulkLoader.java | 0 .../apache/cassandra/tools/GetVersion.java | 0 .../cassandra/tools/JsonTransformer.java | 0 .../apache/cassandra/tools/LoaderOptions.java | 0 .../org/apache/cassandra/tools/NodeProbe.java | 0 .../org/apache/cassandra/tools/NodeTool.java | 0 .../apache/cassandra/tools/RepairRunner.java | 0 .../tools/SSTableExpiredBlockers.java | 0 .../apache/cassandra/tools/SSTableExport.java | 0 .../cassandra/tools/SSTableLevelResetter.java | 0 .../tools/SSTableMetadataViewer.java | 0 .../tools/SSTableOfflineRelevel.java | 0 .../tools/SSTableRepairedAtSetter.java | 0 .../tools/StandaloneSSTableUtil.java | 0 .../cassandra/tools/StandaloneScrubber.java | 0 .../cassandra/tools/StandaloneSplitter.java | 0 .../cassandra/tools/StandaloneUpgrader.java | 0 .../cassandra/tools/StandaloneVerifier.java | 0 .../java/org/apache/cassandra/tools/Util.java | 0 .../cassandra/tools/nodetool/Assassinate.java | 0 .../tools/nodetool/BootstrapResume.java | 0 .../tools/nodetool/CfHistograms.java | 0 .../cassandra/tools/nodetool/CfStats.java | 0 .../cassandra/tools/nodetool/Cleanup.java | 0 .../tools/nodetool/ClearSnapshot.java | 0 .../cassandra/tools/nodetool/Compact.java | 0 .../tools/nodetool/CompactionHistory.java | 0 .../tools/nodetool/CompactionStats.java | 0 .../tools/nodetool/Decommission.java | 0 .../tools/nodetool/DescribeCluster.java | 0 .../tools/nodetool/DescribeRing.java | 0 .../tools/nodetool/DisableAutoCompaction.java | 0 .../tools/nodetool/DisableBackup.java | 0 .../tools/nodetool/DisableBinary.java | 0 .../tools/nodetool/DisableGossip.java | 0 .../tools/nodetool/DisableHandoff.java | 0 .../tools/nodetool/DisableHintsForDC.java | 0 .../tools/nodetool/DisableThrift.java | 0 .../cassandra/tools/nodetool/Drain.java | 0 .../tools/nodetool/EnableAutoCompaction.java | 0 .../tools/nodetool/EnableBackup.java | 0 .../tools/nodetool/EnableBinary.java | 0 .../tools/nodetool/EnableGossip.java | 0 .../tools/nodetool/EnableHandoff.java | 0 .../tools/nodetool/EnableHintsForDC.java | 0 .../tools/nodetool/EnableThrift.java | 0 .../tools/nodetool/FailureDetectorInfo.java | 0 .../cassandra/tools/nodetool/Flush.java | 0 .../cassandra/tools/nodetool/GcStats.java | 0 .../nodetool/GetCompactionThreshold.java | 0 .../nodetool/GetCompactionThroughput.java | 0 .../tools/nodetool/GetEndpoints.java | 0 .../nodetool/GetInterDCStreamThroughput.java | 0 .../tools/nodetool/GetLoggingLevels.java | 0 .../cassandra/tools/nodetool/GetSSTables.java | 0 .../tools/nodetool/GetStreamThroughput.java | 0 .../cassandra/tools/nodetool/GetTimeout.java | 0 .../tools/nodetool/GetTraceProbability.java | 0 .../cassandra/tools/nodetool/GossipInfo.java | 0 .../cassandra/tools/nodetool/HostStat.java | 0 .../apache/cassandra/tools/nodetool/Info.java | 0 .../nodetool/InvalidateCounterCache.java | 0 .../tools/nodetool/InvalidateKeyCache.java | 0 .../tools/nodetool/InvalidateRowCache.java | 0 .../apache/cassandra/tools/nodetool/Join.java | 0 .../tools/nodetool/ListSnapshots.java | 0 .../apache/cassandra/tools/nodetool/Move.java | 0 .../cassandra/tools/nodetool/NetStats.java | 0 .../tools/nodetool/PauseHandoff.java | 0 .../tools/nodetool/ProxyHistograms.java | 0 .../tools/nodetool/RangeKeySample.java | 0 .../cassandra/tools/nodetool/Rebuild.java | 0 .../tools/nodetool/RebuildIndex.java | 0 .../cassandra/tools/nodetool/Refresh.java | 0 .../tools/nodetool/RefreshSizeEstimates.java | 0 .../tools/nodetool/ReloadTriggers.java | 0 .../tools/nodetool/RelocateSSTables.java | 0 .../cassandra/tools/nodetool/RemoveNode.java | 0 .../cassandra/tools/nodetool/Repair.java | 0 .../tools/nodetool/ReplayBatchlog.java | 0 .../tools/nodetool/ResetLocalSchema.java | 0 .../tools/nodetool/ResumeHandoff.java | 0 .../apache/cassandra/tools/nodetool/Ring.java | 0 .../cassandra/tools/nodetool/Scrub.java | 0 .../tools/nodetool/SetCacheCapacity.java | 0 .../tools/nodetool/SetCacheKeysToSave.java | 0 .../nodetool/SetCompactionThreshold.java | 0 .../nodetool/SetCompactionThroughput.java | 0 .../SetHintedHandoffThrottleInKB.java | 0 .../cassandra/tools/nodetool/SetHostStat.java | 0 .../nodetool/SetInterDCStreamThroughput.java | 0 .../tools/nodetool/SetLoggingLevel.java | 0 .../tools/nodetool/SetStreamThroughput.java | 0 .../cassandra/tools/nodetool/SetTimeout.java | 0 .../tools/nodetool/SetTraceProbability.java | 0 .../cassandra/tools/nodetool/Snapshot.java | 0 .../cassandra/tools/nodetool/Status.java | 0 .../tools/nodetool/StatusBackup.java | 0 .../tools/nodetool/StatusBinary.java | 0 .../tools/nodetool/StatusGossip.java | 0 .../tools/nodetool/StatusHandoff.java | 0 .../tools/nodetool/StatusThrift.java | 0 .../apache/cassandra/tools/nodetool/Stop.java | 0 .../cassandra/tools/nodetool/StopDaemon.java | 0 .../tools/nodetool/TableHistograms.java | 0 .../cassandra/tools/nodetool/TableStats.java | 0 .../tools/nodetool/TopPartitions.java | 0 .../cassandra/tools/nodetool/TpStats.java | 0 .../tools/nodetool/TruncateHints.java | 0 .../tools/nodetool/UpgradeSSTable.java | 0 .../cassandra/tools/nodetool/Verify.java | 0 .../cassandra/tools/nodetool/Version.java | 0 .../tools/nodetool/ViewBuildStatus.java | 0 .../nodetool/formatter/TableBuilder.java | 0 .../tools/nodetool/stats/StatsHolder.java | 0 .../tools/nodetool/stats/StatsKeyspace.java | 0 .../tools/nodetool/stats/StatsPrinter.java | 0 .../tools/nodetool/stats/StatsTable.java | 0 .../nodetool/stats/TableStatsPrinter.java | 0 .../cassandra/tracing/ExpiredTraceState.java | 0 .../cassandra/tracing/TraceKeyspace.java | 0 .../apache/cassandra/tracing/TraceState.java | 0 .../cassandra/tracing/TraceStateImpl.java | 0 .../org/apache/cassandra/tracing/Tracing.java | 0 .../apache/cassandra/tracing/TracingImpl.java | 0 .../apache/cassandra/transport/CBCodec.java | 0 .../apache/cassandra/transport/CBUtil.java | 0 .../apache/cassandra/transport/Client.java | 0 .../cassandra/transport/Connection.java | 0 .../transport/ConnectionLimitHandler.java | 0 .../apache/cassandra/transport/DataType.java | 0 .../org/apache/cassandra/transport/Event.java | 0 .../org/apache/cassandra/transport/Frame.java | 0 .../cassandra/transport/FrameCompressor.java | 0 .../apache/cassandra/transport/Message.java | 0 .../cassandra/transport/OptionCodec.java | 0 .../transport/ProtocolException.java | 0 .../transport/RequestThreadPoolExecutor.java | 0 .../apache/cassandra/transport/Server.java | 0 .../cassandra/transport/ServerConnection.java | 0 .../cassandra/transport/ServerError.java | 0 .../cassandra/transport/SimpleClient.java | 0 .../transport/messages/AuthChallenge.java | 0 .../transport/messages/AuthResponse.java | 0 .../transport/messages/AuthSuccess.java | 0 .../messages/AuthenticateMessage.java | 0 .../transport/messages/BatchMessage.java | 0 .../messages/CredentialsMessage.java | 0 .../transport/messages/ErrorMessage.java | 0 .../transport/messages/EventMessage.java | 0 .../transport/messages/ExecuteMessage.java | 0 .../transport/messages/OptionsMessage.java | 0 .../transport/messages/PrepareMessage.java | 0 .../transport/messages/QueryMessage.java | 0 .../transport/messages/ReadyMessage.java | 0 .../transport/messages/RegisterMessage.java | 0 .../transport/messages/ResultMessage.java | 0 .../transport/messages/StartupMessage.java | 0 .../transport/messages/SupportedMessage.java | 0 .../cassandra/triggers/CustomClassLoader.java | 0 .../apache/cassandra/triggers/ITrigger.java | 0 .../cassandra/triggers/TriggerExecutor.java | 0 .../cassandra/utils/AbstractIterator.java | 0 .../cassandra/utils/AlwaysPresentFilter.java | 0 .../cassandra/utils/AsymmetricOrdering.java | 0 .../utils/BackgroundActivityMonitor.java | 0 .../cassandra/utils/BatchRemoveIterator.java | 0 .../apache/cassandra/utils/BiMultiValMap.java | 0 .../cassandra/utils/BloomCalculations.java | 0 .../apache/cassandra/utils/BloomFilter.java | 0 .../utils/BloomFilterSerializer.java | 0 .../cassandra/utils/BooleanSerializer.java | 0 .../cassandra/utils/ByteBufferUtil.java | 0 .../org/apache/cassandra/utils/CLibrary.java | 0 .../cassandra/utils/CassandraVersion.java | 0 .../apache/cassandra/utils/ChecksumType.java | 0 .../cassandra/utils/CloseableIterator.java | 0 .../cassandra/utils/CoalescingStrategies.java | 0 .../cassandra/utils/ConcurrentBiMap.java | 0 .../org/apache/cassandra/utils/CounterId.java | 0 .../apache/cassandra/utils/DefaultValue.java | 0 .../utils/DirectorySizeCalculator.java | 0 .../apache/cassandra/utils/DynamicList.java | 0 .../cassandra/utils/EstimatedHistogram.java | 0 .../apache/cassandra/utils/ExpiringMap.java | 0 .../apache/cassandra/utils/FBUtilities.java | 0 .../cassandra/utils/FastByteOperations.java | 0 .../apache/cassandra/utils/FilterFactory.java | 0 .../apache/cassandra/utils/GuidGenerator.java | 0 .../org/apache/cassandra/utils/HeapUtils.java | 0 .../java/org/apache/cassandra/utils/Hex.java | 0 .../cassandra/utils/HistogramBuilder.java | 0 .../org/apache/cassandra/utils/IFilter.java | 0 .../cassandra/utils/IMergeIterator.java | 0 .../utils/IndexedSearchIterator.java | 0 .../cassandra/utils/IntegerInterval.java | 0 .../org/apache/cassandra/utils/Interval.java | 0 .../apache/cassandra/utils/IntervalTree.java | 0 .../utils/IteratorWithLowerBound.java | 0 .../cassandra/utils/JMXServerUtils.java | 0 .../utils/JVMStabilityInspector.java | 0 .../cassandra/utils/LockedDynamicList.java | 0 .../org/apache/cassandra/utils/MD5Digest.java | 0 .../apache/cassandra/utils/MergeIterator.java | 0 .../apache/cassandra/utils/MerkleTree.java | 0 .../apache/cassandra/utils/MerkleTrees.java | 0 .../apache/cassandra/utils/MurmurHash.java | 0 .../org/apache/cassandra/utils/Mx4jTool.java | 0 .../utils/NanoTimeToCurrentTimeMillis.java | 0 .../utils/NativeSSTableLoaderClient.java | 0 .../apache/cassandra/utils/NoSpamLogger.java | 0 .../apache/cassandra/utils/ObjectSizes.java | 0 .../apache/cassandra/utils/OutputHandler.java | 0 .../cassandra/utils/OverlapIterator.java | 0 .../java/org/apache/cassandra/utils/Pair.java | 0 .../utils/RMIServerSocketFactoryImpl.java | 0 .../cassandra/utils/ResourceWatcher.java | 0 .../cassandra/utils/SearchIterator.java | 0 .../apache/cassandra/utils/SigarLibrary.java | 0 .../cassandra/utils/SortedBiMultiValMap.java | 0 .../apache/cassandra/utils/StatusLogger.java | 0 .../cassandra/utils/StreamingHistogram.java | 0 .../org/apache/cassandra/utils/SyncUtil.java | 0 .../apache/cassandra/utils/Throwables.java | 0 .../apache/cassandra/utils/TopKSampler.java | 0 .../org/apache/cassandra/utils/UUIDGen.java | 0 .../cassandra/utils/UUIDSerializer.java | 0 .../apache/cassandra/utils/WindowsTimer.java | 0 .../cassandra/utils/WrappedRunnable.java | 0 .../apache/cassandra/utils/btree/BTree.java | 0 .../cassandra/utils/btree/BTreeRemoval.java | 0 .../utils/btree/BTreeSearchIterator.java | 0 .../cassandra/utils/btree/BTreeSet.java | 0 .../cassandra/utils/btree/NodeBuilder.java | 0 .../cassandra/utils/btree/NodeCursor.java | 0 .../cassandra/utils/btree/TreeBuilder.java | 0 .../cassandra/utils/btree/TreeCursor.java | 0 .../cassandra/utils/btree/UpdateFunction.java | 0 .../utils/concurrent/Accumulator.java | 0 .../cassandra/utils/concurrent/Blocker.java | 0 .../cassandra/utils/concurrent/Locks.java | 0 .../cassandra/utils/concurrent/OpOrder.java | 0 .../cassandra/utils/concurrent/Ref.java | 0 .../utils/concurrent/RefCounted.java | 0 .../cassandra/utils/concurrent/Refs.java | 0 .../utils/concurrent/SelfRefCounted.java | 0 .../utils/concurrent/SharedCloseable.java | 0 .../utils/concurrent/SharedCloseableImpl.java | 0 .../utils/concurrent/SimpleCondition.java | 0 .../utils/concurrent/Transactional.java | 0 .../cassandra/utils/concurrent/WaitQueue.java | 0 .../concurrent/WrappedSharedCloseable.java | 0 .../utils/memory/AbstractAllocator.java | 0 .../cassandra/utils/memory/BufferPool.java | 0 .../utils/memory/ContextAllocator.java | 0 .../cassandra/utils/memory/EnsureOnHeap.java | 0 .../cassandra/utils/memory/HeapAllocator.java | 0 .../cassandra/utils/memory/HeapPool.java | 0 .../cassandra/utils/memory/MemoryUtil.java | 0 .../utils/memory/MemtableAllocator.java | 0 .../utils/memory/MemtableBufferAllocator.java | 0 .../utils/memory/MemtableCleanerThread.java | 0 .../cassandra/utils/memory/MemtablePool.java | 0 .../utils/memory/NativeAllocator.java | 0 .../cassandra/utils/memory/NativePool.java | 0 .../cassandra/utils/memory/SlabAllocator.java | 0 .../cassandra/utils/memory/SlabPool.java | 0 .../apache/cassandra/utils/obs/BitUtil.java | 0 .../apache/cassandra/utils/obs/IBitSet.java | 0 .../cassandra/utils/obs/OffHeapBitSet.java | 0 .../cassandra/utils/obs/OpenBitSet.java | 0 .../utils/progress/ProgressEvent.java | 0 .../utils/progress/ProgressEventNotifier.java | 0 .../ProgressEventNotifierSupport.java | 0 .../utils/progress/ProgressEventType.java | 0 .../utils/progress/ProgressListener.java | 0 .../jmx/JMXNotificationProgressListener.java | 0 .../progress/jmx/JMXProgressSupport.java | 0 .../jmx/LegacyJMXProgressSupport.java | 0 .../cassandra/utils/vint/VIntCoding.java | 0 .../src/jdkoverride/java/util/zip/CRC32.class | Bin .../cql3/functions/JavaSourceUDF.txt | 0 .../index/sasi/analyzer/filter/ar_ST.txt | 0 .../index/sasi/analyzer/filter/bg_ST.txt | 0 .../index/sasi/analyzer/filter/cs_ST.txt | 0 .../index/sasi/analyzer/filter/de_ST.txt | 0 .../index/sasi/analyzer/filter/en_ST.txt | 0 .../index/sasi/analyzer/filter/es_ST.txt | 0 .../index/sasi/analyzer/filter/fi_ST.txt | 0 .../index/sasi/analyzer/filter/fr_ST.txt | 0 .../index/sasi/analyzer/filter/hi_ST.txt | 0 .../index/sasi/analyzer/filter/hu_ST.txt | 0 .../index/sasi/analyzer/filter/it_ST.txt | 0 .../index/sasi/analyzer/filter/pl_ST.txt | 0 .../index/sasi/analyzer/filter/pt_ST.txt | 0 .../index/sasi/analyzer/filter/ro_ST.txt | 0 .../index/sasi/analyzer/filter/ru_ST.txt | 0 .../index/sasi/analyzer/filter/sv_ST.txt | 0 {testes => external-tests}/jEdit/.gitaccess | 0 {testes => external-tests}/jEdit/.idea/.name | 0 .../jEdit/.idea/ant.xml | 0 .../jEdit/.idea/compiler.xml | 0 .../jEdit/.idea/copyright/GPL_v2.xml | 0 .../.idea/copyright/profiles_settings.xml | 0 .../jEdit/.idea/encodings.xml | 0 .../.idea/libraries/Compile_Dependencies.xml | 0 .../.idea/libraries/Runtime_Dependencies.xml | 0 .../.idea/libraries/Test_Dependencies.xml | 0 .../jEdit/.idea/misc.xml | 0 .../jEdit/.idea/modules.xml | 0 .../jEdit/.idea/projectCodeStyle.xml | 0 .../.idea/runConfigurations/Remote__5005_.xml | 0 .../.idea/runConfigurations/Unit_Tests.xml | 0 .../Unit_Tests__Code_Coverage_.xml | 0 .../jEdit/.idea/runConfigurations/jEdit.xml | 0 .../jEdit__Background_Mode_.xml | 0 .../jEdit__Code_Coverage_.xml | 0 .../jEdit/.idea/uiDesigner.xml | 0 .../jEdit/.idea/vcs.xml | 0 .../jEdit/README.SRC.txt | 0 .../jEdit/build.properties.sample | 0 {testes => external-tests}/jEdit/build.xml | 0 .../masters_of_disaster/ant/tasks/ar/Ar.java | 0 .../ant/tasks/ar/ArConstants.java | 0 .../ant/tasks/ar/ArEntry.java | 0 .../ant/tasks/ar/ArOutputStream.java | 0 .../ant/tasks/ar/ArUtils.java | 0 .../tasks/calculatesize/CalculateSize.java | 0 .../ant/tasks/deb/Deb.java | 0 .../jEdit/doc/Apache.LICENSE.txt | 0 .../jEdit/doc/CHANGES.txt | 0 .../jEdit/doc/COPYING.DOC.txt | 0 .../jEdit/doc/COPYING.PLUGINS.txt | 0 .../jEdit/doc/COPYING.txt | 0 .../jEdit/doc/CORE_GUIDELINES.txt | 0 .../jEdit/doc/FAQ/faq-contrib.xml | 0 .../jEdit/doc/FAQ/faq-general.xml | 0 .../jEdit/doc/FAQ/faq-install.xml | 0 .../jEdit/doc/FAQ/faq-intro.xml | 0 .../jEdit/doc/FAQ/faq-macros.xml | 0 .../jEdit/doc/FAQ/faq-plugins.xml | 0 .../jEdit/doc/FAQ/faq-problems.xml | 0 .../jEdit/doc/FAQ/faq-use.xml | 0 .../jEdit/doc/FAQ/faq.xml | 0 .../jEdit/doc/README.txt | 0 {testes => external-tests}/jEdit/doc/TODO.txt | 0 .../jEdit/doc/jedit.png | Bin .../jEdit/doc/jeditfo.xsl | 0 .../jEdit/doc/jedithtml.xsl | 0 .../jEdit/doc/release-procedure.txt | 0 .../jEdit/doc/releasing-jedit.txt | 0 .../jEdit/doc/stylesheet.css | 0 .../jEdit/doc/tips/tip0.html | 0 .../jEdit/doc/tips/tip1.html | 0 .../jEdit/doc/tips/tip10.html | 0 .../jEdit/doc/tips/tip11.html | 0 .../jEdit/doc/tips/tip12.html | 0 .../jEdit/doc/tips/tip13.html | 0 .../jEdit/doc/tips/tip14.html | 0 .../jEdit/doc/tips/tip15.html | 0 .../jEdit/doc/tips/tip16.html | 0 .../jEdit/doc/tips/tip17.html | 0 .../jEdit/doc/tips/tip18.html | 0 .../jEdit/doc/tips/tip19.html | 0 .../jEdit/doc/tips/tip2.html | 0 .../jEdit/doc/tips/tip20.html | 0 .../jEdit/doc/tips/tip21.html | 0 .../jEdit/doc/tips/tip22.html | 0 .../jEdit/doc/tips/tip23.html | 0 .../jEdit/doc/tips/tip24.html | 0 .../jEdit/doc/tips/tip25.html | 0 .../jEdit/doc/tips/tip26.html | 0 .../jEdit/doc/tips/tip27.html | 0 .../jEdit/doc/tips/tip28.html | 0 .../jEdit/doc/tips/tip29.html | 0 .../jEdit/doc/tips/tip3.html | 0 .../jEdit/doc/tips/tip30.html | 0 .../jEdit/doc/tips/tip31.html | 0 .../jEdit/doc/tips/tip32.html | 0 .../jEdit/doc/tips/tip33.html | 0 .../jEdit/doc/tips/tip34.html | 0 .../jEdit/doc/tips/tip35.html | 0 .../jEdit/doc/tips/tip36.html | 0 .../jEdit/doc/tips/tip37.html | 0 .../jEdit/doc/tips/tip38.html | 0 .../jEdit/doc/tips/tip39.html | 0 .../jEdit/doc/tips/tip4.html | 0 .../jEdit/doc/tips/tip40.html | 0 .../jEdit/doc/tips/tip41.html | 0 .../jEdit/doc/tips/tip42.html | 0 .../jEdit/doc/tips/tip43.html | 0 .../jEdit/doc/tips/tip44.html | 0 .../jEdit/doc/tips/tip45.html | 0 .../jEdit/doc/tips/tip46.html | 0 .../jEdit/doc/tips/tip47.html | 0 .../jEdit/doc/tips/tip48.html | 0 .../jEdit/doc/tips/tip49.html | 0 .../jEdit/doc/tips/tip5.html | 0 .../jEdit/doc/tips/tip50.html | 0 .../jEdit/doc/tips/tip51.html | 0 .../jEdit/doc/tips/tip52.html | 0 .../jEdit/doc/tips/tip53.html | 0 .../jEdit/doc/tips/tip54.html | 0 .../jEdit/doc/tips/tip55.html | 0 .../jEdit/doc/tips/tip56.html | 0 .../jEdit/doc/tips/tip57.html | 0 .../jEdit/doc/tips/tip58.html | 0 .../jEdit/doc/tips/tip59.html | 0 .../jEdit/doc/tips/tip6.html | 0 .../jEdit/doc/tips/tip60.html | 0 .../jEdit/doc/tips/tip61.html | 0 .../jEdit/doc/tips/tip62.html | 0 .../jEdit/doc/tips/tip63.html | 0 .../jEdit/doc/tips/tip64.html | 0 .../jEdit/doc/tips/tip65.html | 0 .../jEdit/doc/tips/tip66.html | 0 .../jEdit/doc/tips/tip67.html | 0 .../jEdit/doc/tips/tip68.html | 0 .../jEdit/doc/tips/tip69.html | 0 .../jEdit/doc/tips/tip7.html | 0 .../jEdit/doc/tips/tip70.html | 0 .../jEdit/doc/tips/tip71.html | 0 .../jEdit/doc/tips/tip72.html | 0 .../jEdit/doc/tips/tip73.html | 0 .../jEdit/doc/tips/tip74.html | 0 .../jEdit/doc/tips/tip75.html | 0 .../jEdit/doc/tips/tip76.html | 0 .../jEdit/doc/tips/tip77.html | 0 .../jEdit/doc/tips/tip78.html | 0 .../jEdit/doc/tips/tip79.html | 0 .../jEdit/doc/tips/tip8.html | 0 .../jEdit/doc/tips/tip80.html | 0 .../jEdit/doc/tips/tip81.html | 0 .../jEdit/doc/tips/tip82.html | 0 .../jEdit/doc/tips/tip83.html | 0 .../jEdit/doc/tips/tip84.html | 0 .../jEdit/doc/tips/tip85.html | 0 .../jEdit/doc/tips/tip86.html | 0 .../jEdit/doc/tips/tip87.html | 0 .../jEdit/doc/tips/tip88.html | 0 .../jEdit/doc/tips/tip89.html | 0 .../jEdit/doc/tips/tip9.html | 0 .../jEdit/doc/tips/tip90.html | 0 .../jEdit/doc/tips/tip91.html | 0 .../jEdit/doc/tips/tip92.html | 0 .../jEdit/doc/tips/tip93.html | 0 .../jEdit/doc/tips/tip94.html | 0 .../jEdit/doc/tips/tip95.html | 0 .../jEdit/doc/tips/tip96.html | 0 .../jEdit/doc/tips/tip97.html | 0 .../jEdit/doc/tips/tip98.html | 0 .../jEdit/doc/users-guide/activity-log.xml | 0 .../jEdit/doc/users-guide/basics.xml | 0 .../jEdit/doc/users-guide/bsh-commands.xml | 0 .../jEdit/doc/users-guide/conventions.xml | 0 .../jEdit/doc/users-guide/customizing.xml | 0 .../jEdit/doc/users-guide/dialog-macro.xml | 0 .../jEdit/doc/users-guide/files.xml | 0 .../jEdit/doc/users-guide/globs.xml | 0 .../jEdit/doc/users-guide/history.xml | 0 .../doc/users-guide/installing-modes.xml | 0 .../jEdit/doc/users-guide/launcher-guide.xml | 0 .../jEdit/doc/users-guide/macro-basics.xml | 0 .../jEdit/doc/users-guide/macro-index.xml | 0 .../jEdit/doc/users-guide/macro-tips.xml | 0 .../doc/users-guide/plugin-implement.xml | 0 .../jEdit/doc/users-guide/plugin-intro.xml | 0 .../jEdit/doc/users-guide/plugin-tips.xml | 0 .../jEdit/doc/users-guide/regexps.xml | 0 .../jEdit/doc/users-guide/shortcuts.xml | 0 .../jEdit/doc/users-guide/source-edit.xml | 0 .../jEdit/doc/users-guide/starting.xml | 0 .../jEdit/doc/users-guide/text-edit.xml | 0 .../jEdit/doc/users-guide/updating-modes.xml | 0 .../jEdit/doc/users-guide/users-guide.xml | 0 .../jEdit/doc/users-guide/using-macros.xml | 0 .../jEdit/doc/users-guide/using-plugins.xml | 0 .../jEdit/doc/users-guide/writing-modes.xml | 0 .../jEdit/doc/welcome.html | 0 .../jEdit/doc/whatsnew/news.xml | 0 .../jEdit/doclet/GenerateTocXML.java | 0 .../jEdit/icons/WindowsInstallerImage.bmp | Bin .../icons/WindowsInstallerSmallImage.bmp | Bin .../jEdit/icons/file.icns | Bin .../jEdit/icons/icon.icns | Bin .../jEdit/icons/jedit-file48.png | Bin .../jEdit/icons/jedit-icon48.png | Bin .../jEdit/icons/jedit.ico | Bin .../jEdit/installer/BZip2Constants.java | 0 .../jEdit/installer/CBZip2InputStream.java | 0 .../jEdit/installer/CBZip2OutputStream.java | 0 .../jEdit/installer/CRC.java | 0 .../jEdit/installer/ConsoleInstall.java | 0 .../jEdit/installer/ConsoleProgress.java | 0 .../jEdit/installer/Install.java | 0 .../jEdit/installer/InstallThread.java | 0 .../installer/InvalidHeaderException.java | 0 .../installer/NonInteractiveInstall.java | 0 .../jEdit/installer/OperatingSystem.java | 0 .../jEdit/installer/Progress.java | 0 .../jEdit/installer/ServerKiller.java | 0 .../jEdit/installer/SwingInstall.java | 0 .../jEdit/installer/TarBuffer.java | 0 .../jEdit/installer/TarEntry.java | 0 .../jEdit/installer/TarHeader.java | 0 .../jEdit/installer/TarInputStream.java | 0 .../jEdit/installer/TarOutputStream.java | 0 .../jEdit/installer/done-HalfAnOS.html | 0 .../jEdit/installer/done-MacOS.html | 0 .../jEdit/installer/done-Unix.html | 0 .../jEdit/installer/done-VMS.html | 0 .../jEdit/installer/done-Windows.html | 0 .../jEdit/installer/gpl.html | 0 .../jEdit/installer/install.mf | 0 .../jEdit/installer/install.props | 0 .../jEdit/installer/readme.html | 0 {testes => external-tests}/jEdit/ivy.xml | 0 .../jEdit/ivysettings.xml | 0 {testes => external-tests}/jEdit/jEdit.iml | 0 .../jEdit/keymaps/Alan_keys.props | 0 .../jEdit/keymaps/Emacs_keys.props | 0 .../jEdit/keymaps/German_Keyboard_keys.props | 0 .../jEdit/keymaps/IntelliJ_IDEA_keys.props | 0 .../jEdit/keymaps/Mac_OS_X_keys.props | 0 .../jEdit/keymaps/jEdit_keys.props | 0 .../jEdit/macros/C/Include_Guard.bsh | 0 .../jEdit/macros/C/Toggle_Header_Source.bsh | 0 .../jEdit/macros/Clipboard/Copy_Lines.bsh | 0 .../Clipboard/Copy_Lines_Containing.bsh | 0 .../macros/Clipboard/Copy_Visible_Lines.bsh | 0 .../jEdit/macros/Clipboard/Cut_Lines.bsh | 0 .../macros/Clipboard/Cut_Lines_Containing.bsh | 0 .../jEdit/macros/Clipboard/Paste_Indent.bsh | 0 .../macros/Editing/Duplicate_Lines_Above.bsh | 0 .../macros/Editing/Duplicate_Lines_Below.bsh | 0 .../jEdit/macros/Editing/Go_to_Column.bsh | 0 .../jEdit/macros/Editing/Go_to_Offset.bsh | 0 .../jEdit/macros/Editing/Greedy_Backspace.bsh | 0 .../jEdit/macros/Editing/Greedy_Delete.bsh | 0 .../jEdit/macros/Editing/Greedy_Left.bsh | 0 .../jEdit/macros/Editing/Greedy_Right.bsh | 0 .../macros/Editing/Keywords_to_Upper_Case.bsh | 0 .../jEdit/macros/Editing/Mode_Switcher.bsh | 0 .../jEdit/macros/Editing/Move_Lines_Down.bsh | 0 .../jEdit/macros/Editing/Move_Lines_Up.bsh | 0 .../jEdit/macros/Editing/Open_Line_Above.bsh | 0 .../jEdit/macros/Editing/Open_Line_Below.bsh | 0 .../jEdit/macros/Editing/Toggle_Fold.bsh | 0 .../jEdit/macros/Emacs/EmacsUtil.bsh | 0 .../jEdit/macros/Emacs/Emacs_Align_Decls.bsh | 0 .../macros/Emacs/Emacs_Backward_Sentence.bsh | 0 .../macros/Emacs/Emacs_Capitalize_Word.bsh | 0 .../jEdit/macros/Emacs/Emacs_Center_Line.bsh | 0 .../jEdit/macros/Emacs/Emacs_Ctrl-K.bsh | 0 .../macros/Emacs/Emacs_Downcase_Word.bsh | 0 .../Emacs/Emacs_Exchange_Point_and_Mark.bsh | 0 .../macros/Emacs/Emacs_Fixup_Whitespace.bsh | 0 .../macros/Emacs/Emacs_Forward_Sentence.bsh | 0 .../jEdit/macros/Emacs/Emacs_Insert_File.bsh | 0 .../jEdit/macros/Emacs/Emacs_Kill_Line.bsh | 0 .../jEdit/macros/Emacs/Emacs_Kill_Region.bsh | 0 .../macros/Emacs/Emacs_Kill_Ring_Save.bsh | 0 .../macros/Emacs/Emacs_Kill_Sentence.bsh | 0 .../jEdit/macros/Emacs/Emacs_Next_Line.bsh | 0 .../jEdit/macros/Emacs/Emacs_Open_Line.bsh | 0 .../macros/Emacs/Emacs_Previous_Line.bsh | 0 .../jEdit/macros/Emacs/Emacs_Set_Mark.bsh | 0 .../jEdit/macros/Emacs/Emacs_Set_Wrap.bsh | 0 .../macros/Emacs/Emacs_Transpose_Chars.bsh | 0 .../macros/Emacs/Emacs_Transpose_Lines.bsh | 0 .../jEdit/macros/Emacs/Emacs_Upcase_Word.bsh | 0 .../jEdit/macros/Emacs/LICENSE.md | 0 .../jEdit/macros/Emacs/README.md | 0 .../macros/Files/Browse_Buffer_Directory.bsh | 0 .../jEdit/macros/Files/Browse_Directory.bsh | 0 .../jEdit/macros/Files/Buffer_Switcher.bsh | 0 .../macros/Files/Copy_Name_to_Clipboard.bsh | 0 .../macros/Files/Copy_Path_to_Clipboard.bsh | 0 .../jEdit/macros/Files/Delete_Current.bsh | 0 .../jEdit/macros/Files/Duplicate_Buffer.bsh | 0 .../jEdit/macros/Files/Glob_Close.bsh | 0 .../jEdit/macros/Files/Insert_Selection.bsh | 0 .../jEdit/macros/Files/Next_Dirty_Buffer.bsh | 0 .../jEdit/macros/Files/Open_Path.bsh | 0 .../jEdit/macros/Files/Open_Selection.bsh | 0 .../Files/Open_Selection_In_Desktop.bsh | 0 .../Files/Send_Buffer_To_Next_Split.bsh | 0 .../jEdit/macros/Files/Toggle_ReadOnly.bsh | 0 .../macros/Interface/Decrease_Font_Size.bsh | 0 .../macros/Interface/Increase_Font_Size.bsh | 0 .../macros/Interface/Open_Context_Menu.bsh | 0 .../jEdit/macros/Interface/Reset_TextArea.bsh | 0 .../jEdit/macros/Interface/Splitpane_Grow.bsh | 0 .../Interface/Toggle_Bottom_Docking_Area.bsh | 0 .../Interface/Toggle_Left_Docking_Area.bsh | 0 .../Interface/Toggle_Right_Docking_Area.bsh | 0 .../Interface/Toggle_Top_Docking_Area.bsh | 0 .../jEdit/macros/Java/Create_Constructor.bsh | 0 .../jEdit/macros/Java/Get_Class_Name.bsh | 0 .../jEdit/macros/Java/Get_Package_Name.bsh | 0 .../jEdit/macros/Java/Java_File_Save.bsh | 0 .../macros/Java/Make_Get_and_Set_Methods.bsh | 0 .../Preview_JavaDoc_Of_Current_Buffer.bsh | 0 .../Misc/Buffer_to_HyperSearch_Results.bsh | 0 .../jEdit/macros/Misc/Debug_BufferSets.bsh | 0 .../macros/Misc/Display_Abbreviations.bsh | 0 .../jEdit/macros/Misc/Display_Actions.bsh | 0 .../macros/Misc/Display_Character_Code.bsh | 0 .../jEdit/macros/Misc/Display_Shortcuts.bsh | 0 .../Misc/Evaluate_Buffer_in_BeanShell.bsh | 0 .../macros/Misc/Generate Encodings List.bsh | 0 .../jEdit/macros/Misc/Generate Modes List.bsh | 0 .../jEdit/macros/Misc/Hex_Convert.bsh | 0 .../Misc/HyperSearch_Results_to_Buffer.bsh | 0 .../jEdit/macros/Misc/Insert Plugins List.bsh | 0 .../jEdit/macros/Misc/Make_Bug_Report.bsh | 0 .../jEdit/macros/Misc/Run_Script.bsh | 0 .../jEdit/macros/Misc/Show_Threads.bsh | 0 .../Properties/Create_Plugin_Announcement.bsh | 0 .../Properties/Insert_Buffer_Properties.bsh | 0 .../Properties/Look_and_Feel_Properties.bsh | 0 .../macros/Properties/System_Properties.bsh | 0 .../macros/Properties/jEdit_Properties.bsh | 0 .../macros/Text/Add_Prefix_and_Suffix.bsh | 0 .../jEdit/macros/Text/Color_Picker.bsh | 0 .../jEdit/macros/Text/Compose_Tag.bsh | 0 .../jEdit/macros/Text/Duplicate_Line.bsh | 0 .../jEdit/macros/Text/Insert_Date.bsh | 0 .../jEdit/macros/Text/Insert_Tag.bsh | 0 .../jEdit/macros/Text/Line_Filter.bsh | 0 .../jEdit/macros/Text/Next_Char.bsh | 0 .../jEdit/macros/Text/Reverse_Lines.bsh | 0 .../jEdit/macros/Text/Reverse_Selection.bsh | 0 .../jEdit/macros/Text/Single_Space_Buffer.bsh | 0 .../jEdit/misc/clojure/README.txt | 0 .../jEdit/misc/clojure/keywords.clj | 0 .../jEdit/misc/clojure/keywords.csv | 0 .../jEdit/misc/clojure/run | 0 .../jEdit/misc/debug/bench_replace.bsh | 0 .../misc/debug/edit_bus_send_exploit.bsh | 0 .../jEdit/misc/debug/info.txt | 0 .../jEdit/misc/debug/show_timing.patch | 0 .../jEdit/misc/indentation_problems/01.cpp | 0 .../jEdit/misc/indentation_problems/02.py | 0 .../jEdit/misc/indentation_problems/03.java | 0 .../jEdit/misc/indentation_problems/04.java | 0 .../jEdit/misc/indentation_problems/05.sh | 0 .../jEdit/misc/indentation_problems/info.txt | 0 .../jEdit/misc/info.txt | 0 .../jEdit/misc/mode_lint/mode_lint.xsl | 0 .../jEdit/modes/actionscript.xml | 0 .../jEdit/modes/ada.xml | 0 .../jEdit/modes/ada95.xml | 0 .../jEdit/modes/ans-forth94.xml | 0 .../jEdit/modes/ant.xml | 0 .../jEdit/modes/antlr.xml | 0 .../jEdit/modes/antlr4.xml | 0 .../jEdit/modes/apacheconf.xml | 0 .../jEdit/modes/apdl.xml | 0 .../jEdit/modes/applescript.xml | 0 .../jEdit/modes/asp.xml | 0 .../jEdit/modes/aspect-j.xml | 0 .../jEdit/modes/assembly-agc.xml | 0 .../jEdit/modes/assembly-ags.xml | 0 .../jEdit/modes/assembly-m68k.xml | 0 .../jEdit/modes/assembly-macro32.xml | 0 .../jEdit/modes/assembly-mcs51.xml | 0 .../jEdit/modes/assembly-parrot.xml | 0 .../jEdit/modes/assembly-r2000.xml | 0 .../jEdit/modes/assembly-x86.xml | 0 .../jEdit/modes/avro.xml | 0 .../jEdit/modes/awk.xml | 0 {testes => external-tests}/jEdit/modes/b.xml | 0 .../jEdit/modes/batch.xml | 0 .../jEdit/modes/bbj.xml | 0 .../jEdit/modes/bcel.xml | 0 .../jEdit/modes/bibtex.xml | 0 .../jEdit/modes/binsource-agc.xml | 0 {testes => external-tests}/jEdit/modes/c.xml | 0 .../jEdit/modes/catalog | 0 .../jEdit/modes/cfscript.xml | 0 .../jEdit/modes/chill.xml | 0 .../jEdit/modes/cil.xml | 0 .../jEdit/modes/clips.xml | 0 .../jEdit/modes/clojure.xml | 0 .../jEdit/modes/cmake.xml | 0 .../jEdit/modes/cobol.xml | 0 .../jEdit/modes/coffeescript.xml | 0 .../jEdit/modes/coldfusion.xml | 0 .../jEdit/modes/cplexlp.xml | 0 .../jEdit/modes/cplusplus.xml | 0 .../jEdit/modes/csharp.xml | 0 .../jEdit/modes/css.xml | 0 .../jEdit/modes/csv.xml | 0 .../jEdit/modes/cvs-commit.xml | 0 {testes => external-tests}/jEdit/modes/d.xml | 0 .../jEdit/modes/dart.xml | 0 .../jEdit/modes/django.xml | 0 .../jEdit/modes/dot.xml | 0 .../jEdit/modes/doxygen.xml | 0 .../jEdit/modes/dsssl.xml | 0 .../jEdit/modes/eiffel.xml | 0 .../jEdit/modes/embperl.xml | 0 .../jEdit/modes/erlang.xml | 0 .../jEdit/modes/factor.xml | 0 .../jEdit/modes/fhtml.xml | 0 .../jEdit/modes/forth.xml | 0 .../jEdit/modes/fortran.xml | 0 .../jEdit/modes/fortran90.xml | 0 .../jEdit/modes/foxpro.xml | 0 .../jEdit/modes/freemarker.xml | 0 .../jEdit/modes/gcbasic.xml | 0 .../jEdit/modes/gettext.xml | 0 .../jEdit/modes/gnuplot.xml | 0 {testes => external-tests}/jEdit/modes/go.xml | 0 .../jEdit/modes/gradle.xml | 0 .../jEdit/modes/groovy.xml | 0 .../jEdit/modes/haskell.xml | 0 .../jEdit/modes/haxe.xml | 0 .../jEdit/modes/hex.xml | 0 .../jEdit/modes/hlsl.xml | 0 .../jEdit/modes/htaccess.xml | 0 .../jEdit/modes/html.xml | 0 .../jEdit/modes/hxml.xml | 0 .../jEdit/modes/i4gl.xml | 0 .../jEdit/modes/ical.xml | 0 .../jEdit/modes/icon.xml | 0 .../jEdit/modes/idl.xml | 0 .../jEdit/modes/inform.xml | 0 .../jEdit/modes/ini.xml | 0 .../jEdit/modes/inno-setup.xml | 0 .../jEdit/modes/interlis.xml | 0 {testes => external-tests}/jEdit/modes/io.xml | 0 .../jEdit/modes/jamon.xml | 0 .../jEdit/modes/java.xml | 0 .../jEdit/modes/javacc.xml | 0 .../jEdit/modes/javafx.xml | 0 .../jEdit/modes/javascript.xml | 0 .../jEdit/modes/jcl.xml | 0 .../jEdit/modes/jedit-actions.xml | 0 .../jEdit/modes/jflex.xml | 0 .../jEdit/modes/jhtml.xml | 0 .../jEdit/modes/jmk.xml | 0 .../jEdit/modes/json.xml | 0 .../jEdit/modes/jsp.xml | 0 .../jEdit/modes/kotlin.xml | 0 .../jEdit/modes/latex.xml | 0 .../jEdit/modes/lex.xml | 0 .../jEdit/modes/lilypond.xml | 0 .../jEdit/modes/lisp.xml | 0 .../jEdit/modes/literate-haskell.xml | 0 .../jEdit/modes/logs.xml | 0 .../jEdit/modes/logtalk.xml | 0 .../jEdit/modes/lotos.xml | 0 .../jEdit/modes/lua.xml | 0 .../jEdit/modes/macroscheduler.xml | 0 .../jEdit/modes/mail.xml | 0 .../jEdit/modes/makefile.xml | 0 .../jEdit/modes/maple.xml | 0 .../jEdit/modes/markdown.xml | 0 .../jEdit/modes/maven.xml | 0 {testes => external-tests}/jEdit/modes/ml.xml | 0 .../jEdit/modes/modula3.xml | 0 .../jEdit/modes/moin.xml | 0 .../jEdit/modes/mpost.xml | 0 .../jEdit/modes/mqsc.xml | 0 .../jEdit/modes/mustache.xml | 0 .../jEdit/modes/mxml.xml | 0 .../jEdit/modes/myghty.xml | 0 .../jEdit/modes/mysql.xml | 0 {testes => external-tests}/jEdit/modes/n3.xml | 0 .../jEdit/modes/netrexx.xml | 0 .../jEdit/modes/nqc.xml | 0 .../jEdit/modes/nsis2.xml | 0 .../jEdit/modes/objective-c.xml | 0 .../jEdit/modes/objectrexx.xml | 0 .../jEdit/modes/occam.xml | 0 .../jEdit/modes/omnimark.xml | 0 .../jEdit/modes/osql.xml | 0 .../jEdit/modes/outline.xml | 0 .../jEdit/modes/pascal.xml | 0 .../jEdit/modes/patch.xml | 0 .../jEdit/modes/perl.xml | 0 .../jEdit/modes/pg-sql.xml | 0 .../jEdit/modes/php.xml | 0 .../jEdit/modes/pike.xml | 0 .../jEdit/modes/pl-sql.xml | 0 .../jEdit/modes/pl1.xml | 0 .../jEdit/modes/plaintex.xml | 0 .../jEdit/modes/pop11.xml | 0 .../jEdit/modes/postscript.xml | 0 .../jEdit/modes/povray.xml | 0 .../modes/powercenter_parameter_file.xml | 0 .../jEdit/modes/powerdynamo.xml | 0 .../jEdit/modes/powershell.xml | 0 .../jEdit/modes/progress.xml | 0 .../jEdit/modes/prolog.xml | 0 .../jEdit/modes/props.xml | 0 .../jEdit/modes/psp.xml | 0 .../jEdit/modes/ptl.xml | 0 .../jEdit/modes/pure.xml | 0 .../jEdit/modes/pvwave.xml | 0 .../jEdit/modes/pyrex.xml | 0 .../jEdit/modes/python.xml | 0 .../jEdit/modes/quake.xml | 0 .../jEdit/modes/rcp.xml | 0 {testes => external-tests}/jEdit/modes/rd.xml | 0 .../jEdit/modes/rebol.xml | 0 .../jEdit/modes/redcode.xml | 0 .../jEdit/modes/regex.xml | 0 .../jEdit/modes/relax-ng-compact.xml | 0 .../jEdit/modes/rest.xml | 0 .../jEdit/modes/rfc.xml | 0 .../jEdit/modes/rhtml.xml | 0 .../jEdit/modes/rib.xml | 0 .../jEdit/modes/roff.xml | 0 .../jEdit/modes/rpmspec.xml | 0 .../jEdit/modes/rtf.xml | 0 .../jEdit/modes/ruby.xml | 0 .../jEdit/modes/rust.xml | 0 .../jEdit/modes/rview.xml | 0 .../jEdit/modes/sas.xml | 0 .../jEdit/modes/scala.xml | 0 .../jEdit/modes/scheme.xml | 0 .../jEdit/modes/sdl_pr.xml | 0 .../jEdit/modes/sgml.xml | 0 .../jEdit/modes/shellscript.xml | 0 .../jEdit/modes/shtml.xml | 0 .../jEdit/modes/sip.xml | 0 .../jEdit/modes/slate.xml | 0 .../jEdit/modes/slax.xml | 0 .../jEdit/modes/smalltalk.xml | 0 .../jEdit/modes/smarty.xml | 0 .../jEdit/modes/smi-mib.xml | 0 .../jEdit/modes/splus.xml | 0 .../jEdit/modes/sql-loader.xml | 0 .../jEdit/modes/sqr.xml | 0 .../jEdit/modes/squidconf.xml | 0 .../jEdit/modes/ssharp.xml | 0 .../jEdit/modes/stata.xml | 0 .../jEdit/modes/svn-commit.xml | 0 .../jEdit/modes/swig.xml | 0 .../jEdit/modes/tcl.xml | 0 .../jEdit/modes/tex.xml | 0 .../jEdit/modes/texinfo.xml | 0 .../jEdit/modes/text.xml | 0 .../jEdit/modes/tld.xml | 0 .../jEdit/modes/tpl.xml | 0 .../jEdit/modes/tsp.xml | 0 .../jEdit/modes/tsql.xml | 0 .../jEdit/modes/tthtml.xml | 0 .../jEdit/modes/turbobasic.xml | 0 .../jEdit/modes/twiki.xml | 0 .../jEdit/modes/typoscript.xml | 0 .../jEdit/modes/url.xml | 0 .../jEdit/modes/uscript.xml | 0 .../jEdit/modes/vala.xml | 0 .../jEdit/modes/vbscript.xml | 0 .../jEdit/modes/velocity.xml | 0 .../jEdit/modes/velocity_pure.xml | 0 .../jEdit/modes/verilog.xml | 0 .../jEdit/modes/vhdl.xml | 0 .../jEdit/modes/visualbasic.xml | 0 .../jEdit/modes/vrml2.xml | 0 .../jEdit/modes/xml.xml | 0 {testes => external-tests}/jEdit/modes/xq.xml | 0 .../jEdit/modes/xsl.xml | 0 .../jEdit/modes/yab.xml | 0 .../jEdit/modes/yaml.xml | 0 .../jEdit/modes/zpt.xml | 0 .../jarbundler/AppBundleProperties.java | 0 .../sourceforge/jarbundler/DocumentType.java | 0 .../net/sourceforge/jarbundler/HelpBook.java | 0 .../sourceforge/jarbundler/JarBundler.java | 0 .../sourceforge/jarbundler/JavaProperty.java | 0 .../jarbundler/PropertyListWriter.java | 0 .../net/sourceforge/jarbundler/Service.java | 0 .../jEdit/org/gjt/sp/jedit/Abbrevs.java | 0 .../org/gjt/sp/jedit/AbstractOptionPane.java | 0 .../jEdit/org/gjt/sp/jedit/ActionContext.java | 0 .../org/gjt/sp/jedit/ActionListHandler.java | 0 .../jEdit/org/gjt/sp/jedit/ActionSet.java | 0 .../jEdit/org/gjt/sp/jedit/Autosave.java | 0 .../jEdit/org/gjt/sp/jedit/BeanShell.java | 0 .../org/gjt/sp/jedit/BeanShellAction.java | 0 .../org/gjt/sp/jedit/BeanShellFacade.java | 0 .../jEdit/org/gjt/sp/jedit/Buffer.java | 0 .../jEdit/org/gjt/sp/jedit/BufferHistory.java | 0 .../jEdit/org/gjt/sp/jedit/Debug.java | 0 .../jEdit/org/gjt/sp/jedit/EBComponent.java | 0 .../jEdit/org/gjt/sp/jedit/EBMessage.java | 0 .../jEdit/org/gjt/sp/jedit/EBPlugin.java | 0 .../jEdit/org/gjt/sp/jedit/EditAction.java | 0 .../jEdit/org/gjt/sp/jedit/EditBus.java | 0 .../jEdit/org/gjt/sp/jedit/EditPane.java | 0 .../jEdit/org/gjt/sp/jedit/EditPlugin.java | 0 .../jEdit/org/gjt/sp/jedit/EditServer.java | 0 .../jEdit/org/gjt/sp/jedit/GUIUtilities.java | 0 .../org/gjt/sp/jedit/IPropertyManager.java | 0 .../org/gjt/sp/jedit/JARClassLoader.java | 0 .../gjt/sp/jedit/JEditAbstractEditAction.java | 0 .../org/gjt/sp/jedit/JEditActionContext.java | 0 .../org/gjt/sp/jedit/JEditActionSet.java | 0 .../gjt/sp/jedit/JEditBeanShellAction.java | 0 .../jEdit/org/gjt/sp/jedit/JEditKillRing.java | 0 .../jEdit/org/gjt/sp/jedit/JEditMode.java | 0 .../org/gjt/sp/jedit/JEditRegisterSaver.java | 0 .../gjt/sp/jedit/JEditRegistersListener.java | 0 .../jEdit/org/gjt/sp/jedit/Macros.java | 0 .../jEdit/org/gjt/sp/jedit/Marker.java | 0 .../jEdit/org/gjt/sp/jedit/MiscUtilities.java | 0 .../jEdit/org/gjt/sp/jedit/Mode.java | 0 .../org/gjt/sp/jedit/ModeCatalogHandler.java | 0 .../org/gjt/sp/jedit/OperatingSystem.java | 0 .../jEdit/org/gjt/sp/jedit/OptionGroup.java | 0 .../jEdit/org/gjt/sp/jedit/OptionPane.java | 0 .../org/gjt/sp/jedit/PerspectiveManager.java | 0 .../jEdit/org/gjt/sp/jedit/PluginJAR.java | 0 .../org/gjt/sp/jedit/PropertyManager.java | 0 .../jEdit/org/gjt/sp/jedit/RegisterSaver.java | 0 .../jEdit/org/gjt/sp/jedit/Registers.java | 0 .../org/gjt/sp/jedit/RegistersListener.java | 0 .../org/gjt/sp/jedit/ServiceListHandler.java | 0 .../org/gjt/sp/jedit/ServiceManager.java | 0 .../org/gjt/sp/jedit/SettingsReloader.java | 0 .../jEdit/org/gjt/sp/jedit/SettingsXML.java | 0 .../org/gjt/sp/jedit/SplitConfigParser.java | 0 .../jEdit/org/gjt/sp/jedit/TextUtilities.java | 0 .../jEdit/org/gjt/sp/jedit/View.java | 0 .../jEdit/org/gjt/sp/jedit/actions.dtd | 0 .../jEdit/org/gjt/sp/jedit/actions.xml | 0 .../org/gjt/sp/jedit/browser.actions.xml | 0 .../sp/jedit/browser/AbstractBrowserTask.java | 0 .../sp/jedit/browser/BrowserCommandsMenu.java | 0 .../gjt/sp/jedit/browser/BrowserListener.java | 0 .../org/gjt/sp/jedit/browser/BrowserView.java | 0 .../sp/jedit/browser/DeleteBrowserTask.java | 0 .../sp/jedit/browser/FileCellRenderer.java | 0 .../browser/ListDirectoryBrowserTask.java | 0 .../sp/jedit/browser/MkDirBrowserTask.java | 0 .../sp/jedit/browser/RenameBrowserTask.java | 0 .../org/gjt/sp/jedit/browser/VFSBrowser.java | 0 .../jedit/browser/VFSDirectoryEntryTable.java | 0 .../browser/VFSDirectoryEntryTableModel.java | 0 .../jedit/browser/VFSFileChooserDialog.java | 0 .../sp/jedit/browser/VFSFileNameField.java | 0 .../org/gjt/sp/jedit/browser/package.html | 0 .../sp/jedit/bsh/BSHAllocationExpression.java | 0 .../gjt/sp/jedit/bsh/BSHAmbiguousName.java | 0 .../org/gjt/sp/jedit/bsh/BSHArguments.java | 0 .../gjt/sp/jedit/bsh/BSHArrayDimensions.java | 0 .../gjt/sp/jedit/bsh/BSHArrayInitializer.java | 0 .../org/gjt/sp/jedit/bsh/BSHAssignment.java | 0 .../gjt/sp/jedit/bsh/BSHBinaryExpression.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java | 0 .../gjt/sp/jedit/bsh/BSHCastExpression.java | 0 .../gjt/sp/jedit/bsh/BSHClassDeclaration.java | 0 .../sp/jedit/bsh/BSHEnhancedForStatement.java | 0 .../org/gjt/sp/jedit/bsh/BSHForStatement.java | 0 .../gjt/sp/jedit/bsh/BSHFormalComment.java | 0 .../gjt/sp/jedit/bsh/BSHFormalParameter.java | 0 .../gjt/sp/jedit/bsh/BSHFormalParameters.java | 0 .../org/gjt/sp/jedit/bsh/BSHIfStatement.java | 0 .../sp/jedit/bsh/BSHImportDeclaration.java | 0 .../org/gjt/sp/jedit/bsh/BSHLiteral.java | 0 .../sp/jedit/bsh/BSHMethodDeclaration.java | 0 .../gjt/sp/jedit/bsh/BSHMethodInvocation.java | 0 .../sp/jedit/bsh/BSHPackageDeclaration.java | 0 .../sp/jedit/bsh/BSHPrimaryExpression.java | 0 .../gjt/sp/jedit/bsh/BSHPrimarySuffix.java | 0 .../gjt/sp/jedit/bsh/BSHPrimitiveType.java | 0 .../gjt/sp/jedit/bsh/BSHReturnStatement.java | 0 .../org/gjt/sp/jedit/bsh/BSHReturnType.java | 0 .../jedit/bsh/BSHStatementExpressionList.java | 0 .../org/gjt/sp/jedit/bsh/BSHSwitchLabel.java | 0 .../gjt/sp/jedit/bsh/BSHSwitchStatement.java | 0 .../sp/jedit/bsh/BSHTernaryExpression.java | 0 .../gjt/sp/jedit/bsh/BSHThrowStatement.java | 0 .../org/gjt/sp/jedit/bsh/BSHTryStatement.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/BSHType.java | 0 .../bsh/BSHTypedVariableDeclaration.java | 0 .../gjt/sp/jedit/bsh/BSHUnaryExpression.java | 0 .../sp/jedit/bsh/BSHVariableDeclarator.java | 0 .../gjt/sp/jedit/bsh/BSHWhileStatement.java | 0 .../org/gjt/sp/jedit/bsh/BlockNameSpace.java | 0 .../org/gjt/sp/jedit/bsh/BshClass.scripted | 0 .../org/gjt/sp/jedit/bsh/BshClassManager.java | 0 .../org/gjt/sp/jedit/bsh/BshIterator.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/BshMethod.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/CallStack.java | 0 .../org/gjt/sp/jedit/bsh/Capabilities.java | 0 .../org/gjt/sp/jedit/bsh/ClassGenerator.java | 0 .../gjt/sp/jedit/bsh/ClassGeneratorImpl.java | 0 .../gjt/sp/jedit/bsh/ClassGeneratorUtil.java | 0 .../org/gjt/sp/jedit/bsh/ClassIdentifier.java | 0 .../gjt/sp/jedit/bsh/ClassNameSpace.scripted | 0 .../gjt/sp/jedit/bsh/ClassPathException.java | 0 .../gjt/sp/jedit/bsh/CollectionManager.java | 0 .../gjt/sp/jedit/bsh/CommandLineReader.java | 0 .../gjt/sp/jedit/bsh/ConsoleInterface.java | 0 .../sp/jedit/bsh/DelayedEvalBshMethod.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/EvalError.java | 0 .../gjt/sp/jedit/bsh/ExternalNameSpace.java | 0 .../org/gjt/sp/jedit/bsh/Interpreter.java | 0 .../gjt/sp/jedit/bsh/InterpreterError.java | 0 .../org/gjt/sp/jedit/bsh/JJTParserState.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/JThis.java | 0 .../org/gjt/sp/jedit/bsh/JavaCharStream.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/LHS.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Modifiers.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Name.java | 0 .../org/gjt/sp/jedit/bsh/NameSource.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/NameSpace.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Node.java | 0 .../org/gjt/sp/jedit/bsh/ParseException.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Parser.java | 0 .../org/gjt/sp/jedit/bsh/ParserConstants.java | 0 .../gjt/sp/jedit/bsh/ParserTokenManager.java | 0 .../gjt/sp/jedit/bsh/ParserTreeConstants.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Primitive.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Reflect.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Reflect.last | 0 .../org/gjt/sp/jedit/bsh/ReflectError.java | 0 .../org/gjt/sp/jedit/bsh/ReflectManager.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Remote.java | 0 .../org/gjt/sp/jedit/bsh/ReturnControl.java | 0 .../org/gjt/sp/jedit/bsh/SimpleNode.java | 0 .../org/gjt/sp/jedit/bsh/StringUtil.java | 0 .../org/gjt/sp/jedit/bsh/TargetError.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/This.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Token.java | 0 .../org/gjt/sp/jedit/bsh/TokenMgrError.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Types.java | 0 .../org/gjt/sp/jedit/bsh/UtilEvalError.java | 0 .../org/gjt/sp/jedit/bsh/UtilTargetError.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/Variable.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/XThis.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/bsh.jj | 0 .../jEdit/org/gjt/sp/jedit/bsh/bsh.jjt | 0 .../jedit/bsh/classpath/BshClassLoader.java | 0 .../sp/jedit/bsh/classpath/BshClassPath.java | 0 .../jedit/bsh/classpath/ClassManagerImpl.java | 0 .../bsh/classpath/ClassPathListener.java | 0 .../classpath/DiscreteFilesClassLoader.java | 0 .../bsh/collection/CollectionIterator.java | 0 .../bsh/collection/CollectionManagerImpl.java | 0 .../sp/jedit/bsh/commands/addClassPath.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/bg.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/bind.bsh | 0 .../gjt/sp/jedit/bsh/commands/browseClass.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/cat.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/cd.bsh | 0 .../sp/jedit/bsh/commands/classBrowser.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/clear.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/cp.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/debug.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/desktop.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/dir.java | 0 .../org/gjt/sp/jedit/bsh/commands/dirname.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/editor.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/error.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/eval.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/exec.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/exit.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/extend.bsh | 0 .../gjt/sp/jedit/bsh/commands/fontMenu.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/frame.bsh | 0 .../sp/jedit/bsh/commands/getBshPrompt.bsh | 0 .../gjt/sp/jedit/bsh/commands/getClass.bsh | 0 .../sp/jedit/bsh/commands/getClassPath.bsh | 0 .../gjt/sp/jedit/bsh/commands/getResource.bsh | 0 .../jedit/bsh/commands/getSourceFileInfo.bsh | 0 .../sp/jedit/bsh/commands/importCommands.bsh | 0 .../sp/jedit/bsh/commands/importObject.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/javap.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/load.bsh | 0 .../sp/jedit/bsh/commands/makeWorkspace.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/mv.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/object.bsh | 0 .../gjt/sp/jedit/bsh/commands/pathToFile.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/print.bsh | 0 .../gjt/sp/jedit/bsh/commands/printBanner.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/pwd.bsh | 0 .../sp/jedit/bsh/commands/reloadClasses.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/rm.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/run.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/save.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/server.bsh | 0 .../jedit/bsh/commands/setAccessibility.bsh | 0 .../sp/jedit/bsh/commands/setClassPath.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/setFont.bsh | 0 .../jedit/bsh/commands/setNameCompletion.bsh | 0 .../sp/jedit/bsh/commands/setNameSpace.bsh | 0 .../sp/jedit/bsh/commands/setStrictJava.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/show.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/source.bsh | 0 .../sp/jedit/bsh/commands/sourceRelative.bsh | 0 .../gjt/sp/jedit/bsh/commands/thinBorder.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/unset.bsh | 0 .../org/gjt/sp/jedit/bsh/commands/which.bsh | 0 .../sp/jedit/bsh/commands/workspaceEditor.bsh | 0 .../bsh/org/objectweb/asm/ByteVector.java | 0 .../bsh/org/objectweb/asm/ClassVisitor.java | 0 .../bsh/org/objectweb/asm/ClassWriter.java | 0 .../bsh/org/objectweb/asm/CodeVisitor.java | 0 .../bsh/org/objectweb/asm/CodeWriter.java | 0 .../bsh/org/objectweb/asm/Constants.java | 0 .../sp/jedit/bsh/org/objectweb/asm/Edge.java | 0 .../sp/jedit/bsh/org/objectweb/asm/Item.java | 0 .../sp/jedit/bsh/org/objectweb/asm/Label.java | 0 .../sp/jedit/bsh/org/objectweb/asm/Type.java | 0 .../jEdit/org/gjt/sp/jedit/bsh/package.html | 0 .../jedit/bsh/reflect/ReflectManagerImpl.java | 0 .../gjt/sp/jedit/buffer/BufferAdapter.java | 0 .../gjt/sp/jedit/buffer/BufferListener.java | 0 .../gjt/sp/jedit/buffer/BufferSegment.java | 0 .../sp/jedit/buffer/BufferUndoListener.java | 0 .../gjt/sp/jedit/buffer/ContentManager.java | 0 .../buffer/DefaultFoldHandlerProvider.java | 0 .../gjt/sp/jedit/buffer/DummyFoldHandler.java | 0 .../sp/jedit/buffer/ExplicitFoldHandler.java | 0 .../org/gjt/sp/jedit/buffer/FoldHandler.java | 0 .../sp/jedit/buffer/FoldHandlerProvider.java | 0 .../sp/jedit/buffer/IndentFoldHandler.java | 0 .../org/gjt/sp/jedit/buffer/JEditBuffer.java | 0 .../org/gjt/sp/jedit/buffer/KillRing.java | 0 .../org/gjt/sp/jedit/buffer/LineManager.java | 0 .../gjt/sp/jedit/buffer/PositionManager.java | 0 .../org/gjt/sp/jedit/buffer/UndoManager.java | 0 .../org/gjt/sp/jedit/buffer/package.html | 0 .../jedit/bufferio/BufferAutosaveRequest.java | 0 .../sp/jedit/bufferio/BufferIORequest.java | 0 .../jedit/bufferio/BufferInsertRequest.java | 0 .../sp/jedit/bufferio/BufferLoadRequest.java | 0 .../sp/jedit/bufferio/BufferSaveRequest.java | 0 .../org/gjt/sp/jedit/bufferio/IoTask.java | 0 .../sp/jedit/bufferio/MarkersSaveRequest.java | 0 .../org/gjt/sp/jedit/bufferio/package.html | 0 .../org/gjt/sp/jedit/bufferset/BufferSet.java | 0 .../sp/jedit/bufferset/BufferSetAdapter.java | 0 .../sp/jedit/bufferset/BufferSetListener.java | 0 .../sp/jedit/bufferset/BufferSetManager.java | 0 .../org/gjt/sp/jedit/bufferset/package.html | 0 .../jEdit/org/gjt/sp/jedit/catalog.dtd | 0 .../jedit/datatransfer/JEditDataFlavor.java | 0 .../sp/jedit/datatransfer/JEditRichText.java | 0 .../jedit/datatransfer/JEditTransferable.java | 0 .../JEditTransferableService.java | 0 .../datatransfer/ListVFSFileTransferable.java | 0 .../RichJEditTextTransferableService.java | 0 .../datatransfer/RichTextTransferable.java | 0 .../StringTransferableService.java | 0 .../jedit/datatransfer/TransferHandler.java | 0 .../gjt/sp/jedit/datatransfer/package.html | 0 .../jEdit/org/gjt/sp/jedit/default.abbrevs | 0 .../jEdit/org/gjt/sp/jedit/dockables.dtd | 0 .../jEdit/org/gjt/sp/jedit/dockables.xml | 0 .../org/gjt/sp/jedit/gui/AbbrevEditor.java | 0 .../org/gjt/sp/jedit/gui/AboutDialog.java | 0 .../jedit/gui/AbstractContextOptionPane.java | 0 .../jEdit/org/gjt/sp/jedit/gui/ActionBar.java | 0 .../org/gjt/sp/jedit/gui/AddAbbrevDialog.java | 0 .../org/gjt/sp/jedit/gui/AddModeDialog.java | 0 .../org/gjt/sp/jedit/gui/AnimatedIcon.java | 0 .../sp/jedit/gui/BeanShellErrorDialog.java | 0 .../org/gjt/sp/jedit/gui/BufferOptions.java | 0 .../org/gjt/sp/jedit/gui/BufferSwitcher.java | 0 .../org/gjt/sp/jedit/gui/CloseDialog.java | 0 .../org/gjt/sp/jedit/gui/ColorWellButton.java | 0 .../org/gjt/sp/jedit/gui/CompleteWord.java | 0 .../org/gjt/sp/jedit/gui/CompletionPopup.java | 0 .../gjt/sp/jedit/gui/ContextAddDialog.java | 0 .../sp/jedit/gui/DefaultFocusComponent.java | 0 .../gjt/sp/jedit/gui/DefaultInputHandler.java | 0 .../org/gjt/sp/jedit/gui/DockableLayout.java | 0 .../org/gjt/sp/jedit/gui/DockablePanel.java | 0 .../org/gjt/sp/jedit/gui/DockableWindow.java | 0 .../sp/jedit/gui/DockableWindowContainer.java | 0 .../sp/jedit/gui/DockableWindowFactory.java | 0 .../sp/jedit/gui/DockableWindowManager.java | 0 .../jedit/gui/DockableWindowManagerImpl.java | 0 .../gui/DockableWindowManagerProvider.java | 0 .../jedit/gui/DockingFrameworkProvider.java | 0 .../sp/jedit/gui/DockingLayoutManager.java | 0 .../jedit/gui/DynamicContextMenuService.java | 0 .../gjt/sp/jedit/gui/EditAbbrevDialog.java | 0 .../org/gjt/sp/jedit/gui/EnhancedButton.java | 0 .../org/gjt/sp/jedit/gui/EnhancedDialog.java | 0 .../org/gjt/sp/jedit/gui/ErrorListDialog.java | 0 .../gjt/sp/jedit/gui/ExtendedGridLayout.java | 0 .../gui/ExtendedGridLayoutConstraints.java | 0 .../sp/jedit/gui/FilePropertiesDialog.java | 0 .../gjt/sp/jedit/gui/FilesChangedDialog.java | 0 .../gjt/sp/jedit/gui/FilteredListModel.java | 0 .../gjt/sp/jedit/gui/FilteredTableModel.java | 0 .../sp/jedit/gui/FloatingWindowContainer.java | 0 .../org/gjt/sp/jedit/gui/FontSelector.java | 0 .../gjt/sp/jedit/gui/FontSelectorDialog.java | 0 .../org/gjt/sp/jedit/gui/GrabKeyDialog.java | 0 .../org/gjt/sp/jedit/gui/HistoryModel.java | 0 .../gjt/sp/jedit/gui/HistoryModelSaver.java | 0 .../org/gjt/sp/jedit/gui/HistoryText.java | 0 .../org/gjt/sp/jedit/gui/HistoryTextArea.java | 0 .../gjt/sp/jedit/gui/HistoryTextField.java | 0 .../org/gjt/sp/jedit/gui/InputHandler.java | 0 .../org/gjt/sp/jedit/gui/JCheckBoxList.java | 0 .../sp/jedit/gui/JEditHistoryModelSaver.java | 0 .../gjt/sp/jedit/gui/KeyEventTranslator.java | 0 .../gjt/sp/jedit/gui/KeyEventWorkaround.java | 0 .../org/gjt/sp/jedit/gui/ListModelEditor.java | 0 .../jEdit/org/gjt/sp/jedit/gui/LogViewer.java | 0 .../org/gjt/sp/jedit/gui/MarkerViewer.java | 0 .../gjt/sp/jedit/gui/MutableListModel.java | 0 .../gjt/sp/jedit/gui/NumericTextField.java | 0 .../org/gjt/sp/jedit/gui/OptionsDialog.java | 0 .../sp/jedit/gui/PanelWindowContainer.java | 0 .../gjt/sp/jedit/gui/PasteFromListDialog.java | 0 .../gjt/sp/jedit/gui/PasteSpecialDialog.java | 0 .../org/gjt/sp/jedit/gui/PingPongList.java | 0 .../org/gjt/sp/jedit/gui/RegisterViewer.java | 0 .../org/gjt/sp/jedit/gui/RolloverButton.java | 0 .../org/gjt/sp/jedit/gui/SelectLineRange.java | 0 .../jedit/gui/ShortcutPrefixActiveEvent.java | 0 .../org/gjt/sp/jedit/gui/SplashScreen.java | 0 .../jEdit/org/gjt/sp/jedit/gui/StatusBar.java | 0 .../org/gjt/sp/jedit/gui/StyleEditor.java | 0 .../org/gjt/sp/jedit/gui/TaskMonitor.java | 0 .../org/gjt/sp/jedit/gui/TextAreaDialog.java | 0 .../org/gjt/sp/jedit/gui/TipOfTheDay.java | 0 .../org/gjt/sp/jedit/gui/ToolBarManager.java | 0 .../gjt/sp/jedit/gui/VariableGridLayout.java | 0 .../jEdit/org/gjt/sp/jedit/gui/package.html | 0 .../gui/statusbar/BufferSetWidgetFactory.java | 0 .../gui/statusbar/ClockWidgetFactory.java | 0 .../gui/statusbar/EncodingWidgetFactory.java | 0 .../gui/statusbar/ErrorsWidgetFactory.java | 0 .../gui/statusbar/FoldWidgetFactory.java | 0 .../gui/statusbar/IndentWidgetFactory.java | 0 .../statusbar/LastModifiedWidgetFactory.java | 0 .../gui/statusbar/LineSepWidgetFactory.java | 0 .../statusbar/MemoryStatusWidgetFactory.java | 0 .../gui/statusbar/ModeWidgetFactory.java | 0 .../statusbar/MultiSelectWidgetFactory.java | 0 .../gui/statusbar/OverwriteWidgetFactory.java | 0 .../statusbar/RectSelectWidgetFactory.java | 0 .../SelectionLengthWidgetFactory.java | 0 .../gui/statusbar/StatusWidgetFactory.java | 0 .../statusbar/TaskMonitorWidgetFactory.java | 0 .../sp/jedit/gui/statusbar/ToolTipLabel.java | 0 .../gjt/sp/jedit/gui/statusbar/Widget.java | 0 .../gui/statusbar/WrapWidgetFactory.java | 0 .../gjt/sp/jedit/gui/statusbar/package.html | 0 .../sp/jedit/gui/tray/JEditSwingTrayIcon.java | 0 .../gjt/sp/jedit/gui/tray/JEditTrayIcon.java | 0 .../org/gjt/sp/jedit/gui/tray/JTrayIcon.java | 0 .../sp/jedit/gui/tray/JTrayIconManager.java | 0 .../org/gjt/sp/jedit/gui/tray/package.html | 0 .../gjt/sp/jedit/help/HelpHistoryModel.java | 0 .../jedit/help/HelpHistoryModelListener.java | 0 .../org/gjt/sp/jedit/help/HelpIndex.java | 0 .../gjt/sp/jedit/help/HelpSearchPanel.java | 0 .../org/gjt/sp/jedit/help/HelpTOCPanel.java | 0 .../org/gjt/sp/jedit/help/HelpViewer.java | 0 .../sp/jedit/help/HelpViewerInterface.java | 0 .../org/gjt/sp/jedit/help/HistoryButton.java | 0 .../jEdit/org/gjt/sp/jedit/help/package.html | 0 .../jEdit/org/gjt/sp/jedit/icons/splash.png | Bin .../themes/classic/10x10/actions/close.png | Bin .../classic/10x10/emblem/emblem-readonly.png | Bin .../10x10/status/document-modified.png | Bin .../classic/10x10/status/document-new.png | Bin .../10x10/status/document-unmodified.png | Bin .../classic/16x16/actions/edit-select-all.png | Bin .../classic/16x16/actions/group-collapse.png | Bin .../classic/16x16/actions/group-expand.png | Bin .../classic/16x16/actions/view-reload.png | Bin .../classic/16x16/devices/drive-harddisk.png | Bin .../16x16/mimetypes/text-x-generic.png | Bin .../themes/classic/16x16/places/folder.png | Bin .../classic/16x16/status/folder-open.png | Bin .../22x22/actions/application-run-again.png | Bin .../classic/22x22/actions/application-run.png | Bin .../classic/22x22/actions/copy-to-buffer.png | Bin .../classic/22x22/actions/document-close.png | Bin .../classic/22x22/actions/document-new.png | Bin .../classic/22x22/actions/document-open.png | Bin .../classic/22x22/actions/document-print.png | Bin .../22x22/actions/document-properties.png | Bin .../22x22/actions/document-reload2.png | Bin .../22x22/actions/document-save-all.png | Bin .../22x22/actions/document-save-as.png | Bin .../classic/22x22/actions/document-save.png | Bin .../classic/22x22/actions/edit-clear.png | Bin .../classic/22x22/actions/edit-copy.png | Bin .../themes/classic/22x22/actions/edit-cut.png | Bin .../classic/22x22/actions/edit-delete.png | Bin .../actions/edit-find-highlight-match.png | Bin .../22x22/actions/edit-find-in-folder.png | Bin .../22x22/actions/edit-find-multiple.png | Bin .../classic/22x22/actions/edit-find-next.png | Bin .../22x22/actions/edit-find-normal-match.png | Bin .../22x22/actions/edit-find-single.png | Bin .../classic/22x22/actions/edit-find.png | Bin .../classic/22x22/actions/edit-paste.png | Bin .../classic/22x22/actions/edit-redo.png | Bin .../classic/22x22/actions/edit-undo.png | Bin .../classic/22x22/actions/folder-new.png | Bin .../themes/classic/22x22/actions/go-down.png | Bin .../themes/classic/22x22/actions/go-first.png | Bin .../themes/classic/22x22/actions/go-home.png | Bin .../themes/classic/22x22/actions/go-last.png | Bin .../themes/classic/22x22/actions/go-next.png | Bin .../classic/22x22/actions/go-parent.png | Bin .../classic/22x22/actions/go-previous.png | Bin .../themes/classic/22x22/actions/go-up.png | Bin .../themes/classic/22x22/actions/list-add.png | Bin .../classic/22x22/actions/list-remove.png | Bin .../22x22/actions/media-playback-pause.png | Bin .../22x22/actions/media-playback-start.png | Bin .../classic/22x22/actions/printer-setup.png | Bin .../classic/22x22/actions/process-stop.png | Bin .../22x22/actions/resize-horisontal.png | Bin .../classic/22x22/actions/run-to-buffer.png | Bin .../classic/22x22/actions/view-refresh.png | Bin .../classic/22x22/actions/window-new.png | Bin .../22x22/actions/window-split-horizontal.png | Bin .../22x22/actions/window-split-vertical.png | Bin .../classic/22x22/actions/window-unsplit.png | Bin .../themes/classic/22x22/actions/zoom-in.png | Bin .../themes/classic/22x22/actions/zoom-out.png | Bin .../classic/22x22/apps/help-browser.png | Bin .../classic/22x22/apps/system-installer.png | Bin .../22x22/categories/preferences-system.png | Bin .../classic/22x22/devices/drive-harddisk.png | Bin .../classic/22x22/devices/media-floppy.png | Bin .../themes/classic/22x22/devices/printer.png | Bin .../themes/classic/22x22/places/plugins.png | Bin .../classic/22x22/status/folder-visiting.png | Bin .../classic/22x22/status/image-missing.png | Bin .../icons/themes/classic/32x32/apps/jedit.png | Bin .../sp/jedit/icons/themes/classic/Blank24.gif | Bin .../icons/themes/classic/ToolbarMenu.gif | Bin .../sp/jedit/icons/themes/classic/about.png | Bin .../jedit/icons/themes/classic/arrow-asc.png | Bin .../jedit/icons/themes/classic/arrow-desc.png | Bin .../icons/themes/classic/dock_layout1.png | Bin .../icons/themes/classic/dock_layout2.png | Bin .../icons/themes/classic/dock_layout3.png | Bin .../icons/themes/classic/dock_layout4.png | Bin .../sp/jedit/icons/themes/classic/loader.gif | Bin .../themes/tango/10x10/actions/close.png | Bin .../tango/10x10/emblem/emblem-readonly.png | Bin .../tango/10x10/status/document-modified.png | Bin .../tango/10x10/status/document-new.png | Bin .../10x10/status/document-unmodified.png | Bin .../tango/16x16/actions/document-close.png | Bin .../tango/16x16/actions/document-new.png | Bin .../tango/16x16/actions/document-open.png | Bin .../16x16/actions/document-print-preview.png | Bin .../tango/16x16/actions/document-print.png | Bin .../16x16/actions/document-properties.png | Bin .../tango/16x16/actions/document-save-all.png | Bin .../tango/16x16/actions/document-save-as.png | Bin .../tango/16x16/actions/document-save.png | Bin .../themes/tango/16x16/actions/edit-copy.png | Bin .../themes/tango/16x16/actions/edit-cut.png | Bin .../tango/16x16/actions/edit-delete.png | Bin .../tango/16x16/actions/edit-find-replace.png | Bin .../themes/tango/16x16/actions/edit-find.png | Bin .../themes/tango/16x16/actions/edit-paste.png | Bin .../themes/tango/16x16/actions/edit-redo.png | Bin .../tango/16x16/actions/edit-select-all.png | Bin .../themes/tango/16x16/actions/edit-undo.png | Bin .../themes/tango/16x16/actions/folder-new.png | Bin .../tango/16x16/actions/group-collapse.png | Bin .../tango/16x16/actions/group-expand.png | Bin .../themes/tango/16x16/actions/list-add.png | Bin .../tango/16x16/actions/list-remove.png | Bin .../16x16/actions/media-playback-stop.png | Bin .../tango/16x16/actions/media-record.png | Bin .../tango/16x16/actions/process-stop.png | Bin .../tango/16x16/actions/view-refresh.png | Bin .../themes/tango/16x16/actions/window-new.png | Bin .../16x16/animations/process-working.png | Bin .../icons/themes/tango/16x16/apps/jedit.png | Bin .../tango/16x16/apps/system-file-manager.png | Bin .../16x16/categories/applications-system.png | Bin .../16x16/categories/preferences-system.png | Bin .../tango/16x16/devices/drive-harddisk.png | Bin .../tango/16x16/emblem/emblem-favorite.png | Bin .../tango/16x16/emblem/emblem-important.png | Bin .../tango/16x16/emblem/emblem-photos.png | Bin .../tango/16x16/emblem/emblem-readonly.png | Bin .../16x16/emblem/emblem-symbolic-link.png | Bin .../tango/16x16/emblem/emblem-system.png | Bin .../tango/16x16/emblem/emblem-unreadable.png | Bin .../mimetypes/application-x-executable.png | Bin .../tango/16x16/mimetypes/text-x-generic.png | Bin .../themes/tango/16x16/places/folder.png | Bin .../tango/16x16/status/dialog-error.png | Bin .../tango/16x16/status/dialog-information.png | Bin .../tango/16x16/status/dialog-warning.png | Bin .../tango/16x16/status/document-empty.png | Bin .../tango/16x16/status/document-open.png | Bin .../tango/16x16/status/folder-drag-accept.png | Bin .../themes/tango/16x16/status/folder-open.png | Bin .../tango/16x16/status/folder-visiting.png | Bin .../tango/16x16/status/image-loading.png | Bin .../tango/16x16/status/image-missing.png | Bin .../22x22/actions/application-run-again.png | Bin .../tango/22x22/actions/application-run.png | Bin .../tango/22x22/actions/bookmark-new.png | Bin .../tango/22x22/actions/copy-to-buffer.png | Bin .../tango/22x22/actions/document-close.png | Bin .../tango/22x22/actions/document-new.png | Bin .../tango/22x22/actions/document-open.png | Bin .../22x22/actions/document-print-preview.png | Bin .../tango/22x22/actions/document-print.png | Bin .../22x22/actions/document-properties.png | Bin .../tango/22x22/actions/document-reload.png | Bin .../tango/22x22/actions/document-reload2.png | Bin .../tango/22x22/actions/document-save-all.png | Bin .../tango/22x22/actions/document-save-as.png | Bin .../tango/22x22/actions/document-save.png | Bin .../themes/tango/22x22/actions/edit-clear.png | Bin .../themes/tango/22x22/actions/edit-copy.png | Bin .../themes/tango/22x22/actions/edit-cut.png | Bin .../tango/22x22/actions/edit-delete.png | Bin .../actions/edit-find-highlight-match.png | Bin .../22x22/actions/edit-find-in-folder.png | Bin .../22x22/actions/edit-find-multiple.png | Bin .../tango/22x22/actions/edit-find-next.png | Bin .../22x22/actions/edit-find-normal-match.png | Bin .../tango/22x22/actions/edit-find-replace.png | Bin .../tango/22x22/actions/edit-find-single.png | Bin .../themes/tango/22x22/actions/edit-find.png | Bin .../themes/tango/22x22/actions/edit-paste.png | Bin .../themes/tango/22x22/actions/edit-redo.png | Bin .../themes/tango/22x22/actions/edit-undo.png | Bin .../themes/tango/22x22/actions/folder-new.png | Bin .../themes/tango/22x22/actions/go-bottom.png | Bin .../themes/tango/22x22/actions/go-down.png | Bin .../themes/tango/22x22/actions/go-first.png | Bin .../themes/tango/22x22/actions/go-home.png | Bin .../themes/tango/22x22/actions/go-jump.png | Bin .../themes/tango/22x22/actions/go-last.png | Bin .../themes/tango/22x22/actions/go-next.png | Bin .../themes/tango/22x22/actions/go-parent.png | Bin .../tango/22x22/actions/go-previous.png | Bin .../themes/tango/22x22/actions/go-top.png | Bin .../themes/tango/22x22/actions/go-up.png | Bin .../themes/tango/22x22/actions/list-add.png | Bin .../tango/22x22/actions/list-remove.png | Bin .../tango/22x22/actions/media-eject.png | Bin .../22x22/actions/media-playback-pause.png | Bin .../22x22/actions/media-playback-start.png | Bin .../22x22/actions/media-playback-stop.png | Bin .../tango/22x22/actions/media-record.png | Bin .../22x22/actions/media-seek-backward.png | Bin .../22x22/actions/media-seek-forward.png | Bin .../22x22/actions/media-skip-backward.png | Bin .../22x22/actions/media-skip-forward.png | Bin .../tango/22x22/actions/printer-setup.png | Bin .../tango/22x22/actions/process-stop.png | Bin .../tango/22x22/actions/resize-horisontal.png | Bin .../tango/22x22/actions/run-to-buffer.png | Bin .../tango/22x22/actions/system-log-out.png | Bin .../tango/22x22/actions/system-search.png | Bin .../tango/22x22/actions/view-fullscreen.png | Bin .../tango/22x22/actions/view-refresh.png | Bin .../themes/tango/22x22/actions/window-new.png | Bin .../22x22/actions/window-split-horizontal.png | Bin .../22x22/actions/window-split-vertical.png | Bin .../tango/22x22/actions/window-unsplit.png | Bin .../themes/tango/22x22/actions/zoom-in.png | Bin .../themes/tango/22x22/actions/zoom-out.png | Bin .../22x22/animations/process-working.png | Bin .../themes/tango/22x22/apps/help-browser.png | Bin .../tango/22x22/apps/internet-web-browser.png | Bin .../tango/22x22/apps/system-file-manager.png | Bin .../tango/22x22/apps/system-installer.png | Bin .../tango/22x22/apps/utilities-terminal.png | Bin .../22x22/categories/applications-system.png | Bin .../22x22/categories/preferences-desktop.png | Bin .../22x22/categories/preferences-system.png | Bin .../tango/22x22/devices/drive-harddisk.png | Bin .../tango/22x22/devices/media-floppy.png | Bin .../themes/tango/22x22/devices/printer.png | Bin .../tango/22x22/emblems/emblem-important.png | Bin .../tango/22x22/emblems/emblem-readonly.png | Bin .../22x22/emblems/emblem-symbolic-link.png | Bin .../tango/22x22/emblems/emblem-system.png | Bin .../tango/22x22/emblems/emblem-unreadable.png | Bin .../tango/22x22/mimetypes/image-x-generic.png | Bin .../tango/22x22/mimetypes/text-html.png | Bin .../mimetypes/text-x-generic-template.png | Bin .../tango/22x22/mimetypes/text-x-generic.png | Bin .../tango/22x22/mimetypes/text-x-script.png | Bin .../22x22/places/folder-saved-search.png | Bin .../themes/tango/22x22/places/folder.png | Bin .../themes/tango/22x22/places/plugins.png | Bin .../themes/tango/22x22/places/user-home.png | Bin .../tango/22x22/status/dialog-error.png | Bin .../tango/22x22/status/dialog-information.png | Bin .../tango/22x22/status/dialog-warning.png | Bin .../tango/22x22/status/folder-drag-accept.png | Bin .../themes/tango/22x22/status/folder-open.png | Bin .../tango/22x22/status/folder-visiting.png | Bin .../tango/22x22/status/image-loading.png | Bin .../tango/22x22/status/image-missing.png | Bin .../icons/themes/tango/32x32/apps/jedit.png | Bin .../sp/jedit/icons/themes/tango/Blank24.gif | Bin .../jedit/icons/themes/tango/ToolbarMenu.gif | Bin .../gjt/sp/jedit/icons/themes/tango/about.png | Bin .../sp/jedit/icons/themes/tango/arrow-asc.png | Bin .../jedit/icons/themes/tango/arrow-desc.png | Bin .../jedit/icons/themes/tango/dock_layout1.png | Bin .../jedit/icons/themes/tango/dock_layout2.png | Bin .../jedit/icons/themes/tango/dock_layout3.png | Bin .../jedit/icons/themes/tango/dock_layout4.png | Bin .../sp/jedit/icons/themes/tango/loader.gif | Bin .../sp/jedit/indent/BracketIndentRule.java | 0 .../jedit/indent/CloseBracketIndentRule.java | 0 .../gjt/sp/jedit/indent/DeepIndentRule.java | 0 .../org/gjt/sp/jedit/indent/IndentAction.java | 0 .../org/gjt/sp/jedit/indent/IndentRule.java | 0 .../sp/jedit/indent/IndentRuleFactory.java | 0 .../jedit/indent/OpenBracketIndentRule.java | 0 .../gjt/sp/jedit/indent/RegexpIndentRule.java | 0 .../gjt/sp/jedit/indent/WhitespaceRule.java | 0 .../org/gjt/sp/jedit/indent/package.html | 0 .../sp/jedit/input/AbstractInputHandler.java | 0 .../input/DefaultInputHandlerProvider.java | 0 .../sp/jedit/input/InputHandlerProvider.java | 0 .../sp/jedit/input/TextAreaInputHandler.java | 0 .../jEdit/org/gjt/sp/jedit/input/package.html | 0 .../org/gjt/sp/jedit/io/AutoDetection.java | 0 .../org/gjt/sp/jedit/io/CharsetEncoding.java | 0 .../org/gjt/sp/jedit/io/CopyFileWorker.java | 0 .../jEdit/org/gjt/sp/jedit/io/Encoding.java | 0 .../org/gjt/sp/jedit/io/EncodingDetector.java | 0 .../org/gjt/sp/jedit/io/EncodingServer.java | 0 .../org/gjt/sp/jedit/io/EncodingWithBOM.java | 0 .../org/gjt/sp/jedit/io/FavoritesVFS.java | 0 .../org/gjt/sp/jedit/io/FileRootsVFS.java | 0 .../jEdit/org/gjt/sp/jedit/io/FileVFS.java | 0 .../gjt/sp/jedit/io/GlobVFSFileFilter.java | 0 .../gjt/sp/jedit/io/LocalFileSaveTask.java | 0 .../sp/jedit/io/RegexEncodingDetector.java | 0 .../jEdit/org/gjt/sp/jedit/io/UrlVFS.java | 0 .../jEdit/org/gjt/sp/jedit/io/VFS.java | 0 .../jEdit/org/gjt/sp/jedit/io/VFSFile.java | 0 .../org/gjt/sp/jedit/io/VFSFileFilter.java | 0 .../jEdit/org/gjt/sp/jedit/io/VFSManager.java | 0 .../gjt/sp/jedit/io/XMLEncodingDetector.java | 0 .../jEdit/org/gjt/sp/jedit/io/package.html | 0 .../jEdit/org/gjt/sp/jedit/jEdit.java | 0 .../jEdit/org/gjt/sp/jedit/jedit.manifest | 0 .../jEdit/org/gjt/sp/jedit/jedit.props | 0 .../jEdit/org/gjt/sp/jedit/jedit_gui.props | 0 .../jEdit/org/gjt/sp/jedit/killring.dtd | 0 .../gjt/sp/jedit/menu/DirectoryProvider.java | 0 .../sp/jedit/menu/DynamicMenuProvider.java | 0 .../jedit/menu/EnhancedCheckBoxMenuItem.java | 0 .../org/gjt/sp/jedit/menu/EnhancedMenu.java | 0 .../gjt/sp/jedit/menu/EnhancedMenuItem.java | 0 .../gjt/sp/jedit/menu/FavoritesProvider.java | 0 .../org/gjt/sp/jedit/menu/MacrosProvider.java | 0 .../gjt/sp/jedit/menu/MarkersProvider.java | 0 .../sp/jedit/menu/MenuItemTextComparator.java | 0 .../gjt/sp/jedit/menu/PluginsProvider.java | 0 .../jedit/menu/RecentDirectoriesProvider.java | 0 .../sp/jedit/menu/RecentFilesProvider.java | 0 .../menu/ReloadWithEncodingProvider.java | 0 .../jEdit/org/gjt/sp/jedit/menu/package.html | 0 .../org/gjt/sp/jedit/msg/BufferChanging.java | 0 .../org/gjt/sp/jedit/msg/BufferUpdate.java | 0 .../sp/jedit/msg/DockableWindowUpdate.java | 0 .../gjt/sp/jedit/msg/DynamicMenuChanged.java | 0 .../org/gjt/sp/jedit/msg/EditPaneUpdate.java | 0 .../gjt/sp/jedit/msg/EditorExitRequested.java | 0 .../org/gjt/sp/jedit/msg/EditorExiting.java | 0 .../org/gjt/sp/jedit/msg/EditorStarted.java | 0 .../org/gjt/sp/jedit/msg/PluginUpdate.java | 0 .../gjt/sp/jedit/msg/PositionChanging.java | 0 .../gjt/sp/jedit/msg/PropertiesChanged.java | 0 .../gjt/sp/jedit/msg/PropertiesChanging.java | 0 .../org/gjt/sp/jedit/msg/RegisterChanged.java | 0 .../sp/jedit/msg/SearchSettingsChanged.java | 0 .../org/gjt/sp/jedit/msg/VFSPathSelected.java | 0 .../jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java | 0 .../org/gjt/sp/jedit/msg/ViewUpdate.java | 0 .../jEdit/org/gjt/sp/jedit/msg/package.html | 0 .../sp/jedit/options/AbbrevsOptionPane.java | 0 .../jedit/options/AppearanceOptionPane.java | 0 .../options/BrowserColorsOptionPane.java | 0 .../options/BrowserContextOptionPane.java | 0 .../sp/jedit/options/BrowserOptionPane.java | 0 .../sp/jedit/options/BufferOptionPane.java | 0 .../sp/jedit/options/ContextOptionPane.java | 0 .../sp/jedit/options/DockingOptionPane.java | 0 .../sp/jedit/options/EditingOptionPane.java | 0 .../sp/jedit/options/EncodingsOptionPane.java | 0 .../sp/jedit/options/FirewallOptionPane.java | 0 .../sp/jedit/options/GeneralOptionPane.java | 0 .../gjt/sp/jedit/options/GlobalOptions.java | 0 .../sp/jedit/options/GutterOptionPane.java | 0 .../org/gjt/sp/jedit/options/IconTheme.java | 0 .../jedit/options/IntegerInputVerifier.java | 0 .../jedit/options/LargeFilesOptionPane.java | 0 .../gjt/sp/jedit/options/MouseOptionPane.java | 0 .../options/PluginManagerOptionPane.java | 0 .../gjt/sp/jedit/options/PluginOptions.java | 0 .../gjt/sp/jedit/options/PrintOptionPane.java | 0 .../jedit/options/SaveBackupOptionPane.java | 0 .../sp/jedit/options/ShortcutsOptionPane.java | 0 .../sp/jedit/options/StatusBarOptionPane.java | 0 .../jedit/options/SyntaxHiliteOptionPane.java | 0 .../sp/jedit/options/TextAreaOptionPane.java | 0 .../sp/jedit/options/ToolBarOptionPane.java | 0 .../gjt/sp/jedit/options/ViewOptionPane.java | 0 .../org/gjt/sp/jedit/options/mirrors.dtd | 0 .../org/gjt/sp/jedit/options/package.html | 0 .../jEdit/org/gjt/sp/jedit/package.html | 0 .../jEdit/org/gjt/sp/jedit/perspective.dtd | 0 .../gjt/sp/jedit/pluginmgr/InstallPanel.java | 0 .../sp/jedit/pluginmgr/KeyboardCommand.java | 0 .../gjt/sp/jedit/pluginmgr/ManagePanel.java | 0 .../gjt/sp/jedit/pluginmgr/MirrorList.java | 0 .../sp/jedit/pluginmgr/MirrorListHandler.java | 0 .../sp/jedit/pluginmgr/PluginDetailPanel.java | 0 .../gjt/sp/jedit/pluginmgr/PluginList.java | 0 .../sp/jedit/pluginmgr/PluginListHandler.java | 0 .../gjt/sp/jedit/pluginmgr/PluginManager.java | 0 .../pluginmgr/PluginManagerProgress.java | 0 .../org/gjt/sp/jedit/pluginmgr/Roster.java | 0 .../org/gjt/sp/jedit/pluginmgr/package.html | 0 .../org/gjt/sp/jedit/pluginmgr/plugins.dtd | 0 .../gjt/sp/jedit/print/BufferPrintable.java | 0 .../gjt/sp/jedit/print/BufferPrinter1_3.java | 0 .../gjt/sp/jedit/print/BufferPrinter1_4.java | 0 .../jEdit/org/gjt/sp/jedit/print/package.html | 0 .../sp/jedit/proto/jeditresource/Handler.java | 0 .../jeditresource/PluginResURLConnection.java | 0 .../sp/jedit/proto/jeditresource/package.html | 0 .../jEdit/org/gjt/sp/jedit/recent.dtd | 0 .../jEdit/org/gjt/sp/jedit/registers.dtd | 0 .../org/gjt/sp/jedit/search/AllBufferSet.java | 0 .../jedit/search/BoyerMooreSearchMatcher.java | 0 .../gjt/sp/jedit/search/BufferListSet.java | 0 .../gjt/sp/jedit/search/CurrentBufferSet.java | 0 .../gjt/sp/jedit/search/DirectoryListSet.java | 0 .../sp/jedit/search/HyperSearchFileNode.java | 0 .../jedit/search/HyperSearchFolderNode.java | 0 .../gjt/sp/jedit/search/HyperSearchNode.java | 0 .../search/HyperSearchOperationNode.java | 0 .../sp/jedit/search/HyperSearchRequest.java | 0 .../sp/jedit/search/HyperSearchResult.java | 0 .../sp/jedit/search/HyperSearchResults.java | 0 .../search/HyperSearchTreeNodeCallback.java | 0 .../sp/jedit/search/PatternSearchMatcher.java | 0 .../gjt/sp/jedit/search/SearchAndReplace.java | 0 .../org/gjt/sp/jedit/search/SearchBar.java | 0 .../org/gjt/sp/jedit/search/SearchDialog.java | 0 .../gjt/sp/jedit/search/SearchFileSet.java | 0 .../gjt/sp/jedit/search/SearchMatcher.java | 0 .../org/gjt/sp/jedit/search/package.html | 0 .../jEdit/org/gjt/sp/jedit/services.dtd | 0 .../jEdit/org/gjt/sp/jedit/services.xml | 0 .../jEdit/org/gjt/sp/jedit/syntax/Chunk.java | 0 .../sp/jedit/syntax/DefaultTokenHandler.java | 0 .../sp/jedit/syntax/DisplayTokenHandler.java | 0 .../sp/jedit/syntax/DummyTokenHandler.java | 0 .../org/gjt/sp/jedit/syntax/KeywordMap.java | 0 .../org/gjt/sp/jedit/syntax/ModeProvider.java | 0 .../org/gjt/sp/jedit/syntax/ParserRule.java | 0 .../gjt/sp/jedit/syntax/ParserRuleSet.java | 0 .../org/gjt/sp/jedit/syntax/SyntaxStyle.java | 0 .../gjt/sp/jedit/syntax/SyntaxUtilities.java | 0 .../jEdit/org/gjt/sp/jedit/syntax/Token.java | 0 .../org/gjt/sp/jedit/syntax/TokenHandler.java | 0 .../org/gjt/sp/jedit/syntax/TokenMarker.java | 0 .../org/gjt/sp/jedit/syntax/XModeHandler.java | 0 .../org/gjt/sp/jedit/syntax/package.html | 0 .../jEdit/org/gjt/sp/jedit/syntax/xmode.dtd | 0 .../org/gjt/sp/jedit/textarea/Anchor.java | 0 .../org/gjt/sp/jedit/textarea/AntiAlias.java | 0 .../gjt/sp/jedit/textarea/BufferHandler.java | 0 .../org/gjt/sp/jedit/textarea/ChunkCache.java | 0 .../sp/jedit/textarea/CircleFoldPainter.java | 0 .../gjt/sp/jedit/textarea/ColumnBlock.java | 0 .../sp/jedit/textarea/ColumnBlockLine.java | 0 .../gjt/sp/jedit/textarea/DisplayManager.java | 0 .../ElasticTabStopBufferListener.java | 0 .../textarea/ElasticTabstopsTabExpander.java | 0 .../sp/jedit/textarea/ExtensionManager.java | 0 .../org/gjt/sp/jedit/textarea/FirstLine.java | 0 .../gjt/sp/jedit/textarea/FoldPainter.java | 0 .../org/gjt/sp/jedit/textarea/Gutter.java | 0 .../sp/jedit/textarea/GutterPopupHandler.java | 0 .../sp/jedit/textarea/InputMethodSupport.java | 0 .../jedit/textarea/JEditEmbeddedTextArea.java | 0 .../gjt/sp/jedit/textarea/JEditTextArea.java | 0 .../gjt/sp/jedit/textarea/MouseActions.java | 0 .../jedit/textarea/MouseActionsProvider.java | 0 .../gjt/sp/jedit/textarea/MouseHandler.java | 0 .../jEdit/org/gjt/sp/jedit/textarea/Node.java | 0 .../org/gjt/sp/jedit/textarea/RangeMap.java | 0 .../sp/jedit/textarea/ScreenLineManager.java | 0 .../gjt/sp/jedit/textarea/ScrollLayout.java | 0 .../sp/jedit/textarea/ScrollLineCount.java | 0 .../gjt/sp/jedit/textarea/ScrollListener.java | 0 .../org/gjt/sp/jedit/textarea/Selection.java | 0 .../sp/jedit/textarea/SelectionManager.java | 0 .../sp/jedit/textarea/ShapedFoldPainter.java | 0 .../sp/jedit/textarea/SquareFoldPainter.java | 0 .../sp/jedit/textarea/StandaloneTextArea.java | 0 .../gjt/sp/jedit/textarea/StatusListener.java | 0 .../sp/jedit/textarea/StructureMatcher.java | 0 .../org/gjt/sp/jedit/textarea/TextArea.java | 0 .../gjt/sp/jedit/textarea/TextAreaBorder.java | 0 .../jedit/textarea/TextAreaDropHandler.java | 0 .../sp/jedit/textarea/TextAreaException.java | 0 .../sp/jedit/textarea/TextAreaExtension.java | 0 .../jedit/textarea/TextAreaMouseHandler.java | 0 .../sp/jedit/textarea/TextAreaPainter.java | 0 .../textarea/TextAreaTransferHandler.java | 0 .../jedit/textarea/TriangleFoldPainter.java | 0 .../org/gjt/sp/jedit/textarea/package.html | 0 .../sp/jedit/textarea/textarea.actions.xml | 0 .../gjt/sp/jedit/visitors/JEditVisitor.java | 0 .../jedit/visitors/JEditVisitorAdapter.java | 0 .../jedit/visitors/SaveCaretInfoVisitor.java | 0 .../org/gjt/sp/jedit/visitors/package.html | 0 .../org/gjt/sp/util/AwtRunnableQueue.java | 0 .../gjt/sp/util/EnhancedTreeCellRenderer.java | 0 .../jEdit/org/gjt/sp/util/HtmlUtilities.java | 0 .../jEdit/org/gjt/sp/util/IOUtilities.java | 0 .../jEdit/org/gjt/sp/util/IntegerArray.java | 0 .../jEdit/org/gjt/sp/util/Log.java | 0 .../org/gjt/sp/util/ProgressObserver.java | 0 .../jEdit/org/gjt/sp/util/PropertiesBean.java | 0 .../org/gjt/sp/util/ReverseCharSequence.java | 0 .../jEdit/org/gjt/sp/util/SegmentBuffer.java | 0 .../org/gjt/sp/util/SegmentCharSequence.java | 0 .../org/gjt/sp/util/StandardUtilities.java | 0 .../jEdit/org/gjt/sp/util/StringList.java | 0 .../jEdit/org/gjt/sp/util/StringModel.java | 0 .../org/gjt/sp/util/SyntaxUtilities.java | 0 .../jEdit/org/gjt/sp/util/Task.java | 0 .../jEdit/org/gjt/sp/util/TaskAdapter.java | 0 .../jEdit/org/gjt/sp/util/TaskListener.java | 0 .../jEdit/org/gjt/sp/util/TaskManager.java | 0 .../org/gjt/sp/util/ThreadAbortMonitor.java | 0 .../org/gjt/sp/util/ThreadUtilities.java | 0 .../jEdit/org/gjt/sp/util/XMLUtilities.java | 0 .../jEdit/org/gjt/sp/util/package.html | 0 .../org/jedit/core/FileOpenerService.java | 0 .../org/jedit/core/MigrationService.java | 0 .../jEdit/org/jedit/core/package.html | 0 .../org/jedit/io/Native2ASCIIEncoding.java | 0 .../jEdit/org/jedit/keymap/EmacsUtil.java | 0 .../jEdit/org/jedit/keymap/Keymap.java | 0 .../org/jedit/keymap/KeymapFileFilter.java | 0 .../jEdit/org/jedit/keymap/KeymapImpl.java | 0 .../jEdit/org/jedit/keymap/KeymapManager.java | 0 .../org/jedit/keymap/KeymapManagerImpl.java | 0 .../jEdit/org/jedit/keymap/package.html | 0 .../org/jedit/localization/jedit_cs.props | 0 .../org/jedit/localization/jedit_de.props | 0 .../org/jedit/localization/jedit_en.props | 0 .../org/jedit/localization/jedit_fr.props | 0 .../org/jedit/localization/jedit_ja.props | 0 .../org/jedit/localization/jedit_ko.props | 0 .../org/jedit/localization/jedit_ru.props | 0 .../org/jedit/localization/jedit_zh.props | 0 .../jEdit/org/jedit/localization/package.html | 0 .../org/jedit/migration/CheckFileStatus.java | 0 .../org/jedit/migration/KeymapMigration.java | 0 .../migration/OneTimeMigrationService.java | 0 .../jEdit/org/jedit/migration/package.html | 0 .../org/jedit/options/CombinedOptions.java | 0 .../org/jedit/options/GlobalOptionGroup.java | 0 .../org/jedit/options/OptionGroupPane.java | 0 .../org/jedit/options/PluginOptionGroup.java | 0 .../org/jedit/options/TabbedOptionDialog.java | 0 .../jEdit/org/jedit/options/package.html | 0 .../jEdit/org/jedit/package.html | 0 .../jEdit/package-files/linux/deb/Packages | 0 .../jEdit/package-files/linux/deb/control | 0 .../jEdit/package-files/linux/deb/jedit | 0 .../package-files/linux/deb/jedit.desktop | 0 .../jEdit/package-files/linux/deb/postinst | 0 .../jEdit/package-files/linux/deb/postrm | 0 .../jEdit/package-files/linux/jedit | 0 .../jEdit/package-files/linux/jedit.1 | 0 .../jEdit/package-files/linux/rpm/jedit.spec | 0 .../package-files/linux/slackware/doinst.sh | 0 .../linux/slackware/jEdit.desktop | 0 .../package-files/linux/slackware/slack-desc | 0 .../linux/slackware/slack-required | 0 .../jEdit/package-files/os2/jedit.cmd | 0 .../osx/.background/background.png | Bin .../jEdit/package-files/osx/DS_Store | Bin .../jEdit/package-files/osx/jedit | Bin .../jEdit/package-files/windows/jEdit.url | 0 .../package-files/windows/jedit.launch4j.xml | 0 .../package-files/windows/win32installer.iss | 0 .../jEdit/properties/README.txt | 0 .../jEdit/startup/README.txt | 0 .../jEdit/startup/startup.bsh | 0 .../jedit/io/Native2ASCIIEncodingTest.java | 0 src/Driver.rsc | 10 +-------- .../java/analysis}/ParseTreeVisualization.rsc | 2 +- .../java/analysis}/SimpleMetrics.rsc | 2 +- src/lang/java/refactoring/FilterPattern.rsc | 12 +++++++++-- src/lang/java/syntax/Java18.rsc | 4 +++- src/{AllTestes.rsc => tests/Parser.rsc} | 2 +- testes/di.csv | 5 ----- testes/projects.csv | 19 ------------------ 2973 files changed, 17 insertions(+), 39 deletions(-) rename {testes => external-tests}/AnonymousInnerClassTeste.java (100%) rename {testes => external-tests}/BasicTest.java (100%) rename {testes => external-tests}/Cassandra/src/antlr/Cql.g (100%) rename {testes => external-tests}/Cassandra/src/antlr/Lexer.g (100%) rename {testes => external-tests}/Cassandra/src/antlr/Parser.g (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthorizer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AllowAllInternodeAuthenticator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AuthCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AuthCacheMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AuthKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AuthMigrationListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/AuthenticatedUser.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/CassandraLoginModule.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/CassandraPrincipal.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/CassandraRoleManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/DataResource.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/FunctionResource.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/IAuthenticator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/IAuthorizer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/IInternodeAuthenticator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/IResource.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/IRoleManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/JMXResource.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/Permission.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/PermissionDetails.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCacheMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/Resources.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/RoleOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/RoleResource.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/Roles.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/RolesCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/RolesCacheMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthenticationProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthorizationProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/Batch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/BatchRemoveVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/BatchStoreVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManagerMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/batchlog/LegacyBatchlogMigrator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/AutoSavingCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/CacheKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/CacheProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/CacheSize.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/ChunkCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/CounterCacheKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/ICache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/IMeasurableMemory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/IRowCacheEntry.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/InstrumentingCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/KeyCacheKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/NopCacheProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/OHCProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/RefCountedMemory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/RowCacheKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/RowCacheSentinel.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/SerializingCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/client/RingCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/AbstractLocalAwareExecutorService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocal.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocals.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutorMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/LocalAwareExecutorService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/NamedThreadFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/SEPExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/SEPWorker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/ScheduledExecutors.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/Stage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/concurrent/StageManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/CFMetaData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/ColumnDefinition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/Config.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/ConfigurationLoader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/EncryptionOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/ParameterizedClass.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/ReadRepairDecision.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/RequestSchedulerOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/Schema.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/TransparentDataEncryptionOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/ViewDefinition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/AbstractConditions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/AbstractMarker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/AssignmentTestable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Attributes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/BatchQueryOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/CFName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/CQL3Type.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/CQLFragmentParser.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/CQLStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ColumnCondition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ColumnConditions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ColumnSpecification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Conditions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Constants.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/CustomPayloadMirroringQueryHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ErrorCollector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ErrorListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/FieldIdentifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/IfExistsCondition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/IfNotExistsCondition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/IndexName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Json.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/KeyspaceElementName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Lists.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Maps.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/MultiColumnRelation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Operation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Operations.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Operator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/QueryHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/QueryOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/QueryProcessor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Relation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/ResultSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/RoleName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Sets.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Term.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Terms.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/TokenRelation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/Tuples.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/TypeCast.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/UTName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/UntypedResultSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/UpdateParameters.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/UserTypes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/VariableSpecifications.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/WhereClause.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/AbstractFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/CastFcts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/Function.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionName.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionResolver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeAggregateFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeScalarFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/SecurityThreadGroup.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/TimeFcts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/ToJsonFct.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/TokenFct.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFByteCodeVerifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContext.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContextImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/functions/UuidFcts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/CustomIndexExpression.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/IndexRestrictions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeySingleRestrictionSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restriction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSetWrapper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restrictions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleColumnRestriction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleRestriction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TermSlice.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenRestriction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/AbstractFunctionSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/AggregateFunctionSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/FieldSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/RawSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/ScalarFunctionSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selectable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumnMapping.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumns.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectorFactories.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/SimpleSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/TermSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/selection/WritetimeOrTTLSelector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterRoleStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatementColumn.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTypeStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthenticationStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthorizationStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/Bound.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFProperties.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateFunctionStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateKeyspaceStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateRoleStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTriggerStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropAggregateStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropFunctionStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropKeyspaceStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropRoleStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTableStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTriggerStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTypeStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropViewStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantPermissionsStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantRoleStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexPropDefs.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexTarget.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/KeyspaceAttributes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListRolesStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListUsersStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/ParsedStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/PermissionsManagementStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/PropertyDefinitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/RequestValidations.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokePermissionsStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokeRoleStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/RoleManagementStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/StatementType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdatesCollector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/cql3/statements/UseStatement.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/AbstractBufferClusteringPrefix.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/AbstractClusteringPrefix.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectories.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectoriesMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/BufferClustering.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/BufferDecoratedKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/CBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/CachedHashDecoratedKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClockAndCount.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Clusterable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Clustering.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClusteringBound.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundOrBoundary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClusteringComparator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ClusteringPrefix.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ColumnIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Columns.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/CompactTables.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Conflicts.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ConsistencyLevel.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/CounterMutation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/CounterMutationVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DataRange.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DecoratedKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DefinitionsUpdateVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DeletionInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DeletionPurger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/DeletionTime.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Directories.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/EmptyIterators.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/IMutation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Keyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/KeyspaceNotDefinedException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/LegacyLayout.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/LivenessInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Memtable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/MultiCBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/MutableDeletionInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Mutation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/MutationVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/NativeClustering.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/NativeDecoratedKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/PartitionColumns.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/PartitionPosition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/PartitionRangeReadCommand.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/PreHashedDecoratedKey.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/RangeSliceVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/RangeTombstone.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/RangeTombstoneList.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadCommand.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadExecutionController.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadQuery.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadRepairVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/ReadResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/RowIndexEntry.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SchemaCheckVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SerializationHeader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Serializers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SimpleBuilders.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Slice.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Slices.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SnapshotCommand.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SnapshotDetailsTabularData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/StorageHook.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/SystemKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/TruncateResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/TruncateVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/Truncation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/TypeSizes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/UnfilteredDeserializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnFamilyException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/WindowsFailedSnapshotTracker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/WriteResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/WriteType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableReversedIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/BatchCommitLogService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLog.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogPosition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReadHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerCDC.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerStandard.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/CompressedSegment.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedFileSegmentInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedSegment.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/FileDirectSegment.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/IntervalSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/commitlog/SimpleCachedBufferPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionController.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionHistoryTabularData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInterruptedException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionLogger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/OperationType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/Scrubber.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategyOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/Upgrader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/Verifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/DefaultCompactionWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MajorLeveledCompactionWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MaxSSTableSizeWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/SplittingSizeTieredCompactionWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/context/CounterContext.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/AbstractClusteringIndexFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexSliceFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnSubselection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/DataLimits.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/RowFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Helpers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogAwareFileLister.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplica.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplicaSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableIntervalTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Tracker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/lifecycle/View.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/AsciiType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/BooleanType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/ByteType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/BytesType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/CollectionType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/CompositeType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/DateType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/DecimalType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/DoubleType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/EmptyType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/FloatType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/FrozenType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/InetAddressType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/Int32Type.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/IntegerType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/ListType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/LongType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/MapType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/ReversedType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/SetType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/ShortType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/TimestampType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/TupleType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/TypeParser.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/UTF8Type.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/UUIDType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/marshal/UserType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/ApproximateTime.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/ConstructionTime.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/Monitorable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitorableImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractUnfilteredPartitionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/BasePartitionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedBTreePartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedPartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/FilteredPartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/ImmutableBTreePartition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/Partition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterators.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionStatisticsCollector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/PurgeFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/SingletonUnfilteredPartitionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterators.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractCell.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRangeTombstoneMarker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRow.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractUnfilteredRowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/BTreeRow.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/BaseRowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/BufferCell.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/Cell.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/CellPath.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/Cells.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/ColumnData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/ComplexColumnData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/CounterCells.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/EncodingStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/LazilyInitializedUnfilteredRowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/NativeCell.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundMarker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneMarker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/Row.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RowDiffListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterators.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/Rows.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/SerializationHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/Unfiltered.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorWithLowerBound.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/WithOnlyQueriedData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/rows/WrappingUnfilteredRowIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/BaseIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/BasePartitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/BaseRows.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/Filter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredPartitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredRows.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/MoreContents.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/MorePartitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/MoreRows.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/Stack.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/Transformation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredPartitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredRows.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/TableViews.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/View.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/ViewBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/ViewManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/db/view/ViewUtils.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/AbstractBounds.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/BootStrapper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/Bounds.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/ComparableObjectToken.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/ExcludingBounds.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/IPartitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/IPartitionerDependentSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/LocalPartitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/RandomPartitioner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/Range.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/RangeStreamer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/RingPosition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/Splitter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/StreamStateStore.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/Token.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationAwareTokenAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/AlreadyExistsException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/AuthenticationException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/CassandraException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/ConfigurationException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/ExceptionCode.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/FunctionExecutionException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/InvalidRequestException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/IsBootstrappingException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/OverloadedException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/PreparedQueryNotFoundException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/ReadFailureException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/ReadTimeoutException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/RepairException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/RequestExecutionException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/RequestFailureException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/RequestTimeoutException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/RequestValidationException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/StartupException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/SyntaxException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/TransportException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/TruncateException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/UnauthorizedException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/UnavailableException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/WriteFailureException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/exceptions/WriteTimeoutException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/ApplicationState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/EchoMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/EndpointState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/FailureDetector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/FailureDetectorMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSyn.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossipShutdownVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/Gossiper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/GossiperMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/HeartBeatState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/TokenSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/VersionGenerator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/gms/VersionedValue.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/ConfigHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/HadoopCompat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/ReporterWrapper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlConfigHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlOutputFormat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/LimitedLocalNodeFirstLocalBalancingPolicy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/CompressedHintsWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/EncodedHintMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/EncryptedHintsWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/Hint.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsBuffer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsBufferPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsCatalog.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsDescriptor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatcher.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsServiceMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsStore.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsWriteExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/HintsWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/hints/package-info.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/Index.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/IndexNotAvailableException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/IndexRegistry.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/TargetParser.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexFunctions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexSearcher.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/CollatedViewIndexBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/IndexEntry.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/ClusteringColumnIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionEntryIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndexBase.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionValueIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/PartitionKeyIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/composites/RegularColumnIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysSearcher.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndexBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/Term.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/TermIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/AbstractAnalyzer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NoOpAnalyzer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingAnalyzer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/SUPPLEMENTARY.jflex-macro (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerInterface.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/BasicResultFilters.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmerFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmingFilters.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFilters.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/ColumnIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/IndexMode.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/PrefixTermTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/RangeTermTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/TermTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/View.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/AbstractTokenTreeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Descriptor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskBlock.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Token.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/exceptions/TimeQuotaExceededException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/MemIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Expression.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Operation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/ByteTerm.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/CharTerm.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IndexedTerm.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IntegralSA.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SA.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SuffixSA.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/Term.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/TermIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/AbstractIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTerm.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTermIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedValue.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/MappedBuffer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/OnDiskIndexIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/TypeUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractPatriciaTrie.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractTrie.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Cursor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/KeyAnalyzer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Trie.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Tries.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/transactions/CleanupTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/transactions/CompactionTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/transactions/IndexTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/index/transactions/UpdateTransaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/FSError.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/FSErrorHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/FSReadError.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/FSWriteError.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/ForwardingVersionedSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/ISSTableSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/ISerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/IVersionedSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/BufferType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/CorruptBlockException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/ICompressor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/LZ4Compressor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/Component.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/CorruptSSTableException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/Descriptor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/Downsampling.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/ISSTableScanner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManagerMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/KeyIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableMultiWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SimpleSSTableMultiWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/SnapshotDeletingTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/RangeAwareSSTableWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFlushObserver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFormat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/Version.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/CompactionMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataComponentSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/LegacyMetadataSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataComponent.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/ValidationMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/AbstractReaderFileProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/BufferManagingRebufferer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/BytesReadTracker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ChannelProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ChecksumWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedSequentialWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ChunkReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataInputBuffer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataInputPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputStreamPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/DataPosition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/FastByteArrayInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/FileDataInput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/FileSegmentInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/FileUtils.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ICompressedFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/LengthAvailableInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/LimitingRebufferer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/Memory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/MemoryInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/MemoryOutputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/MmapRebufferer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/MmappedRegions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/MmappedSegmentedFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/NIODataInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/RandomAccessReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/ReaderFileProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/Rebufferer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/RebuffererFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/RebufferingInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInputStreamPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemoryWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SegmentedFile.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriterOption.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/SimpleChunkReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/TrackedDataInputPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/TrackedInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/UnbufferedDataOutputStreamPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/io/util/WrappedDataOutputStreamPlus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/AbstractEndpointSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/AbstractNetworkTopologySnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/CloudstackSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitchMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/Ec2Snitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfoMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/GoogleCloudSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/GossipingPropertyFileSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/IEndpointSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/ILatencySubscriber.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/LocalStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/PendingRangeMaps.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/RackInferringSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/SeedProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/SimpleSnitch.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/SimpleStrategy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/SnitchProperties.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/locator/TokenMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/BufferPoolMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CQLMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CacheMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CacheMissMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ClearableHistogram.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ClientMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ClientRequestMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CommitLogMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/CompactionMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ConnectionMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/DefaultNameFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/HintsServiceMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/LatencyMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/MessagingMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/MetricNameFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/RestorableMeter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/SEPMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/StorageMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/StreamingMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/TableMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetricNameFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/metrics/ViewWriteMetrics.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/AsyncOneResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/CallbackInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallbackWithFailure.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IMessageSink.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/IncomingTcpConnection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/MessageDeliveryTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/MessageIn.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/MessageOut.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/MessagingService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/MessagingServiceMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/ResponseVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/net/WriteCallbackInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/INotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/INotificationConsumer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/MemtableDiscardedNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/MemtableRenewedNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/MemtableSwitchedNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/SSTableAddedNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/SSTableDeletingNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/SSTableListChangedNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/SSTableRepairStatusChanged.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/notifications/TruncationNotification.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/AnticompactionTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/LocalSyncTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/NodePair.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RemoteSyncTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairJob.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairJobDesc.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairParallelism.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairResult.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairRunnable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairSession.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/RepairSessionResult.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/SnapshotTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/StreamingRepairTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/SyncStat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/SyncTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/TreeResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/ValidationTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/Validator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/AnticompactionRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/CleanupMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairOption.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/SnapshotMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncComplete.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationComplete.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/scheduler/IRequestScheduler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/scheduler/NoScheduler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/scheduler/WeightedQueue.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/CQLTypeParser.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/CachingParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/CompactionParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/CompressionParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Functions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/IndexMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Indexes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Keyspaces.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/LegacySchemaMigrator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/ReplicationParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/SchemaKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/SpeculativeRetryParam.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/TableParams.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Tables.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/TriggerMetadata.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Triggers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Types.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/UnknownIndexException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/schema/Views.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/CipherFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/EncryptionContext.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/EncryptionUtils.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/JKSKeyProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/KeyProvider.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/security/SSLFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/AsciiSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/BooleanSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/ByteSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/BytesSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/CollectionSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/CounterSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/DecimalSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/DoubleSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/EmptySerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/FloatSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/Int32Serializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/IntegerSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/ListSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/LongSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/MapSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/MarshalException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/SetSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/ShortSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/SimpleDateSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/TimeSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/TimestampSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/TypeSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/UTF8Serializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/serializers/UUIDSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/AbstractReadExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/ActiveRepairService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/AsyncRepairCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/BatchlogResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/CASRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/CacheService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/CacheServiceMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/CassandraDaemon.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/ClientState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/ClientWarn.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DataResolver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DefaultFSErrorHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DigestMismatchException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/DigestResolver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/EchoVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/GCInspector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/GCInspectorMXBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/IEndpointLifecycleSubscriber.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/LoadBroadcaster.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/MigrationListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/MigrationManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/MigrationTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/NativeAccessMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/NativeTransportService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/PendingRangeCalculatorService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/QueryState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/ReadCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/ResponseResolver.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StartupCheck.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StartupChecks.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StorageProxy.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StorageProxyMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StorageService.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/StorageServiceMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/TruncateResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/WriteResponseHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/PagingState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/PartitionRangeQueryPager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPagers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/pager/SinglePartitionPager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/AbstractPaxosCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/Commit.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/CommitVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/PaxosState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeCallback.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/ConnectionHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/DefaultConnectionFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/ProgressInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/ReplicationFinishedVerbHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/SessionInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamConnectionFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamCoordinator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamEvent.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamEventHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamHook.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamManagerMBean.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamPlan.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamReceiveTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamRequest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamResultFuture.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamSession.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamSummary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamTransferTask.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/StreamWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamReader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamWriter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressionInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamEventJMXNotifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamStateCompositeData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamSummaryCompositeData.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/CompleteMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/PrepareMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/ReceivedMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/RetryMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/SessionFailedMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamInitMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/CassandraServer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ITransportFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/SSLTransportFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TCustomServerSocket.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TCustomSocket.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TFramedTransportFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/THsHaDisruptorServer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TServerCustomFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/TServerFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftClientState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftConversion.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftResultsMerger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftServer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/thrift/ThriftValidation.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/AbstractJmxClient.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/BootstrapMonitor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadConnectionFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/BulkLoader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/GetVersion.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/JsonTransformer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/LoaderOptions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/NodeProbe.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/NodeTool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/RepairRunner.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableExport.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableLevelResetter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/StandaloneScrubber.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSplitter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/StandaloneUpgrader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/StandaloneVerifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/Util.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Assassinate.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/BootstrapResume.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfHistograms.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Cleanup.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Compact.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionHistory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Decommission.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeCluster.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeRing.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableAutoCompaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBackup.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBinary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableGossip.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHandoff.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHintsForDC.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableThrift.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Drain.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableAutoCompaction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBackup.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBinary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableGossip.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHandoff.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHintsForDC.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableThrift.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/FailureDetectorInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Flush.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GcStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThreshold.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetEndpoints.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetLoggingLevels.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetSSTables.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetStreamThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTimeout.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTraceProbability.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GossipInfo.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/HostStat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Info.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateCounterCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateKeyCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateRowCache.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Join.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ListSnapshots.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Move.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/NetStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/PauseHandoff.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ProxyHistograms.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RangeKeySample.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Rebuild.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RebuildIndex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Refresh.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RefreshSizeEstimates.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReloadTriggers.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RelocateSSTables.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RemoveNode.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Repair.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReplayBatchlog.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResetLocalSchema.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResumeHandoff.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Ring.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Scrub.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheCapacity.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheKeysToSave.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThreshold.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHostStat.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetLoggingLevel.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetStreamThroughput.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTimeout.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTraceProbability.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Snapshot.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Status.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBackup.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBinary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusGossip.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusHandoff.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusThrift.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Stop.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableHistograms.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TopPartitions.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TpStats.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TruncateHints.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/UpgradeSSTable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Verify.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Version.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ViewBuildStatus.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/formatter/TableBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsHolder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsPrinter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsTable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsPrinter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/ExpiredTraceState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/TraceKeyspace.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/TraceState.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/TraceStateImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/Tracing.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/tracing/TracingImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/CBCodec.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/CBUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Client.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Connection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/ConnectionLimitHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/DataType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Event.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Frame.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/FrameCompressor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Message.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/OptionCodec.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/ProtocolException.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/RequestThreadPoolExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/Server.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/ServerConnection.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/ServerError.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/SimpleClient.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthChallenge.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthResponse.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthenticateMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/BatchMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/CredentialsMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/EventMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/OptionsMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/QueryMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/ReadyMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/RegisterMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/ResultMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/StartupMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/transport/messages/SupportedMessage.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/triggers/CustomClassLoader.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/triggers/ITrigger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/triggers/TriggerExecutor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/AbstractIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/AsymmetricOrdering.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BackgroundActivityMonitor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BatchRemoveIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BiMultiValMap.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BloomCalculations.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BloomFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/BooleanSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ByteBufferUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/CLibrary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/CassandraVersion.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ChecksumType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/CloseableIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/CoalescingStrategies.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ConcurrentBiMap.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/CounterId.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/DefaultValue.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/DirectorySizeCalculator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/DynamicList.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/EstimatedHistogram.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ExpiringMap.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/FBUtilities.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/FastByteOperations.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/FilterFactory.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/GuidGenerator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/HeapUtils.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/Hex.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/HistogramBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IFilter.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IMergeIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IndexedSearchIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IntegerInterval.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/Interval.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IntervalTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/IteratorWithLowerBound.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/LockedDynamicList.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/MD5Digest.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/MergeIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/MerkleTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/MerkleTrees.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/MurmurHash.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/Mx4jTool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/NanoTimeToCurrentTimeMillis.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/NoSpamLogger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ObjectSizes.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/OutputHandler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/OverlapIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/Pair.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/ResourceWatcher.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/SearchIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/SigarLibrary.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/SortedBiMultiValMap.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/StatusLogger.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/StreamingHistogram.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/SyncUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/Throwables.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/TopKSampler.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/UUIDGen.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/UUIDSerializer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/WindowsTimer.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/WrappedRunnable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/BTree.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeRemoval.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSearchIterator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeCursor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeBuilder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeCursor.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/btree/UpdateFunction.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Accumulator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Blocker.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Locks.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/OpOrder.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Ref.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/RefCounted.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Refs.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SelfRefCounted.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseableImpl.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SimpleCondition.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Transactional.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WrappedSharedCloseable.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/AbstractAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/BufferPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/ContextAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/EnsureOnHeap.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/MemoryUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableBufferAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableCleanerThread.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtablePool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/NativePool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabPool.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/obs/BitUtil.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/obs/IBitSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEvent.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifier.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifierSupport.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventType.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXNotificationProgressListener.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXProgressSupport.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java (100%) rename {testes => external-tests}/Cassandra/src/java/org/apache/cassandra/utils/vint/VIntCoding.java (100%) rename {testes => external-tests}/Cassandra/src/jdkoverride/java/util/zip/CRC32.class (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/cql3/functions/JavaSourceUDF.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ar_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/bg_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/cs_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/de_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/en_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/es_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fi_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fr_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hi_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hu_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/it_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pl_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pt_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ro_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ru_ST.txt (100%) rename {testes => external-tests}/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/sv_ST.txt (100%) rename {testes => external-tests}/jEdit/.gitaccess (100%) rename {testes => external-tests}/jEdit/.idea/.name (100%) rename {testes => external-tests}/jEdit/.idea/ant.xml (100%) rename {testes => external-tests}/jEdit/.idea/compiler.xml (100%) rename {testes => external-tests}/jEdit/.idea/copyright/GPL_v2.xml (100%) rename {testes => external-tests}/jEdit/.idea/copyright/profiles_settings.xml (100%) rename {testes => external-tests}/jEdit/.idea/encodings.xml (100%) rename {testes => external-tests}/jEdit/.idea/libraries/Compile_Dependencies.xml (100%) rename {testes => external-tests}/jEdit/.idea/libraries/Runtime_Dependencies.xml (100%) rename {testes => external-tests}/jEdit/.idea/libraries/Test_Dependencies.xml (100%) rename {testes => external-tests}/jEdit/.idea/misc.xml (100%) rename {testes => external-tests}/jEdit/.idea/modules.xml (100%) rename {testes => external-tests}/jEdit/.idea/projectCodeStyle.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/Remote__5005_.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/Unit_Tests.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/Unit_Tests__Code_Coverage_.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/jEdit.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/jEdit__Background_Mode_.xml (100%) rename {testes => external-tests}/jEdit/.idea/runConfigurations/jEdit__Code_Coverage_.xml (100%) rename {testes => external-tests}/jEdit/.idea/uiDesigner.xml (100%) rename {testes => external-tests}/jEdit/.idea/vcs.xml (100%) rename {testes => external-tests}/jEdit/README.SRC.txt (100%) rename {testes => external-tests}/jEdit/build.properties.sample (100%) rename {testes => external-tests}/jEdit/build.xml (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/ar/Ar.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/ar/ArConstants.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/ar/ArEntry.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/ar/ArOutputStream.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/ar/ArUtils.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/calculatesize/CalculateSize.java (100%) rename {testes => external-tests}/jEdit/de/masters_of_disaster/ant/tasks/deb/Deb.java (100%) rename {testes => external-tests}/jEdit/doc/Apache.LICENSE.txt (100%) rename {testes => external-tests}/jEdit/doc/CHANGES.txt (100%) rename {testes => external-tests}/jEdit/doc/COPYING.DOC.txt (100%) rename {testes => external-tests}/jEdit/doc/COPYING.PLUGINS.txt (100%) rename {testes => external-tests}/jEdit/doc/COPYING.txt (100%) rename {testes => external-tests}/jEdit/doc/CORE_GUIDELINES.txt (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-contrib.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-general.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-install.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-intro.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-macros.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-plugins.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-problems.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq-use.xml (100%) rename {testes => external-tests}/jEdit/doc/FAQ/faq.xml (100%) rename {testes => external-tests}/jEdit/doc/README.txt (100%) rename {testes => external-tests}/jEdit/doc/TODO.txt (100%) rename {testes => external-tests}/jEdit/doc/jedit.png (100%) rename {testes => external-tests}/jEdit/doc/jeditfo.xsl (100%) rename {testes => external-tests}/jEdit/doc/jedithtml.xsl (100%) rename {testes => external-tests}/jEdit/doc/release-procedure.txt (100%) rename {testes => external-tests}/jEdit/doc/releasing-jedit.txt (100%) rename {testes => external-tests}/jEdit/doc/stylesheet.css (100%) rename {testes => external-tests}/jEdit/doc/tips/tip0.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip1.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip10.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip11.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip12.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip13.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip14.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip15.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip16.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip17.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip18.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip19.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip2.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip20.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip21.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip22.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip23.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip24.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip25.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip26.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip27.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip28.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip29.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip3.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip30.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip31.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip32.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip33.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip34.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip35.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip36.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip37.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip38.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip39.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip4.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip40.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip41.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip42.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip43.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip44.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip45.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip46.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip47.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip48.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip49.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip5.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip50.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip51.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip52.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip53.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip54.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip55.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip56.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip57.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip58.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip59.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip6.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip60.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip61.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip62.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip63.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip64.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip65.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip66.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip67.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip68.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip69.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip7.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip70.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip71.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip72.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip73.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip74.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip75.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip76.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip77.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip78.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip79.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip8.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip80.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip81.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip82.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip83.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip84.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip85.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip86.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip87.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip88.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip89.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip9.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip90.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip91.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip92.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip93.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip94.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip95.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip96.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip97.html (100%) rename {testes => external-tests}/jEdit/doc/tips/tip98.html (100%) rename {testes => external-tests}/jEdit/doc/users-guide/activity-log.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/basics.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/bsh-commands.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/conventions.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/customizing.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/dialog-macro.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/files.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/globs.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/history.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/installing-modes.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/launcher-guide.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/macro-basics.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/macro-index.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/macro-tips.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/plugin-implement.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/plugin-intro.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/plugin-tips.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/regexps.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/shortcuts.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/source-edit.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/starting.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/text-edit.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/updating-modes.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/users-guide.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/using-macros.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/using-plugins.xml (100%) rename {testes => external-tests}/jEdit/doc/users-guide/writing-modes.xml (100%) rename {testes => external-tests}/jEdit/doc/welcome.html (100%) rename {testes => external-tests}/jEdit/doc/whatsnew/news.xml (100%) rename {testes => external-tests}/jEdit/doclet/GenerateTocXML.java (100%) rename {testes => external-tests}/jEdit/icons/WindowsInstallerImage.bmp (100%) rename {testes => external-tests}/jEdit/icons/WindowsInstallerSmallImage.bmp (100%) rename {testes => external-tests}/jEdit/icons/file.icns (100%) rename {testes => external-tests}/jEdit/icons/icon.icns (100%) rename {testes => external-tests}/jEdit/icons/jedit-file48.png (100%) rename {testes => external-tests}/jEdit/icons/jedit-icon48.png (100%) rename {testes => external-tests}/jEdit/icons/jedit.ico (100%) rename {testes => external-tests}/jEdit/installer/BZip2Constants.java (100%) rename {testes => external-tests}/jEdit/installer/CBZip2InputStream.java (100%) rename {testes => external-tests}/jEdit/installer/CBZip2OutputStream.java (100%) rename {testes => external-tests}/jEdit/installer/CRC.java (100%) rename {testes => external-tests}/jEdit/installer/ConsoleInstall.java (100%) rename {testes => external-tests}/jEdit/installer/ConsoleProgress.java (100%) rename {testes => external-tests}/jEdit/installer/Install.java (100%) rename {testes => external-tests}/jEdit/installer/InstallThread.java (100%) rename {testes => external-tests}/jEdit/installer/InvalidHeaderException.java (100%) rename {testes => external-tests}/jEdit/installer/NonInteractiveInstall.java (100%) rename {testes => external-tests}/jEdit/installer/OperatingSystem.java (100%) rename {testes => external-tests}/jEdit/installer/Progress.java (100%) rename {testes => external-tests}/jEdit/installer/ServerKiller.java (100%) rename {testes => external-tests}/jEdit/installer/SwingInstall.java (100%) rename {testes => external-tests}/jEdit/installer/TarBuffer.java (100%) rename {testes => external-tests}/jEdit/installer/TarEntry.java (100%) rename {testes => external-tests}/jEdit/installer/TarHeader.java (100%) rename {testes => external-tests}/jEdit/installer/TarInputStream.java (100%) rename {testes => external-tests}/jEdit/installer/TarOutputStream.java (100%) rename {testes => external-tests}/jEdit/installer/done-HalfAnOS.html (100%) rename {testes => external-tests}/jEdit/installer/done-MacOS.html (100%) rename {testes => external-tests}/jEdit/installer/done-Unix.html (100%) rename {testes => external-tests}/jEdit/installer/done-VMS.html (100%) rename {testes => external-tests}/jEdit/installer/done-Windows.html (100%) rename {testes => external-tests}/jEdit/installer/gpl.html (100%) rename {testes => external-tests}/jEdit/installer/install.mf (100%) rename {testes => external-tests}/jEdit/installer/install.props (100%) rename {testes => external-tests}/jEdit/installer/readme.html (100%) rename {testes => external-tests}/jEdit/ivy.xml (100%) rename {testes => external-tests}/jEdit/ivysettings.xml (100%) rename {testes => external-tests}/jEdit/jEdit.iml (100%) rename {testes => external-tests}/jEdit/keymaps/Alan_keys.props (100%) rename {testes => external-tests}/jEdit/keymaps/Emacs_keys.props (100%) rename {testes => external-tests}/jEdit/keymaps/German_Keyboard_keys.props (100%) rename {testes => external-tests}/jEdit/keymaps/IntelliJ_IDEA_keys.props (100%) rename {testes => external-tests}/jEdit/keymaps/Mac_OS_X_keys.props (100%) rename {testes => external-tests}/jEdit/keymaps/jEdit_keys.props (100%) rename {testes => external-tests}/jEdit/macros/C/Include_Guard.bsh (100%) rename {testes => external-tests}/jEdit/macros/C/Toggle_Header_Source.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Copy_Lines.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Copy_Lines_Containing.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Copy_Visible_Lines.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Cut_Lines.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Cut_Lines_Containing.bsh (100%) rename {testes => external-tests}/jEdit/macros/Clipboard/Paste_Indent.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Duplicate_Lines_Above.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Duplicate_Lines_Below.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Go_to_Column.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Go_to_Offset.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Greedy_Backspace.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Greedy_Delete.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Greedy_Left.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Greedy_Right.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Keywords_to_Upper_Case.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Mode_Switcher.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Move_Lines_Down.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Move_Lines_Up.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Open_Line_Above.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Open_Line_Below.bsh (100%) rename {testes => external-tests}/jEdit/macros/Editing/Toggle_Fold.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/EmacsUtil.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Align_Decls.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Backward_Sentence.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Capitalize_Word.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Center_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Ctrl-K.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Downcase_Word.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Exchange_Point_and_Mark.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Fixup_Whitespace.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Forward_Sentence.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Insert_File.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Kill_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Kill_Region.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Kill_Ring_Save.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Kill_Sentence.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Next_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Open_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Previous_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Set_Mark.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Set_Wrap.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Transpose_Chars.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Transpose_Lines.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/Emacs_Upcase_Word.bsh (100%) rename {testes => external-tests}/jEdit/macros/Emacs/LICENSE.md (100%) rename {testes => external-tests}/jEdit/macros/Emacs/README.md (100%) rename {testes => external-tests}/jEdit/macros/Files/Browse_Buffer_Directory.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Browse_Directory.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Buffer_Switcher.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Copy_Name_to_Clipboard.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Copy_Path_to_Clipboard.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Delete_Current.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Duplicate_Buffer.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Glob_Close.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Insert_Selection.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Next_Dirty_Buffer.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Open_Path.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Open_Selection.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Open_Selection_In_Desktop.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Send_Buffer_To_Next_Split.bsh (100%) rename {testes => external-tests}/jEdit/macros/Files/Toggle_ReadOnly.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Decrease_Font_Size.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Increase_Font_Size.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Open_Context_Menu.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Reset_TextArea.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Splitpane_Grow.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Toggle_Bottom_Docking_Area.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Toggle_Left_Docking_Area.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Toggle_Right_Docking_Area.bsh (100%) rename {testes => external-tests}/jEdit/macros/Interface/Toggle_Top_Docking_Area.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Create_Constructor.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Get_Class_Name.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Get_Package_Name.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Java_File_Save.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Make_Get_and_Set_Methods.bsh (100%) rename {testes => external-tests}/jEdit/macros/Java/Preview_JavaDoc_Of_Current_Buffer.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Buffer_to_HyperSearch_Results.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Debug_BufferSets.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Display_Abbreviations.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Display_Actions.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Display_Character_Code.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Display_Shortcuts.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Evaluate_Buffer_in_BeanShell.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Generate Encodings List.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Generate Modes List.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Hex_Convert.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/HyperSearch_Results_to_Buffer.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Insert Plugins List.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Make_Bug_Report.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Run_Script.bsh (100%) rename {testes => external-tests}/jEdit/macros/Misc/Show_Threads.bsh (100%) rename {testes => external-tests}/jEdit/macros/Properties/Create_Plugin_Announcement.bsh (100%) rename {testes => external-tests}/jEdit/macros/Properties/Insert_Buffer_Properties.bsh (100%) rename {testes => external-tests}/jEdit/macros/Properties/Look_and_Feel_Properties.bsh (100%) rename {testes => external-tests}/jEdit/macros/Properties/System_Properties.bsh (100%) rename {testes => external-tests}/jEdit/macros/Properties/jEdit_Properties.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Add_Prefix_and_Suffix.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Color_Picker.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Compose_Tag.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Duplicate_Line.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Insert_Date.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Insert_Tag.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Line_Filter.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Next_Char.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Reverse_Lines.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Reverse_Selection.bsh (100%) rename {testes => external-tests}/jEdit/macros/Text/Single_Space_Buffer.bsh (100%) rename {testes => external-tests}/jEdit/misc/clojure/README.txt (100%) rename {testes => external-tests}/jEdit/misc/clojure/keywords.clj (100%) rename {testes => external-tests}/jEdit/misc/clojure/keywords.csv (100%) rename {testes => external-tests}/jEdit/misc/clojure/run (100%) rename {testes => external-tests}/jEdit/misc/debug/bench_replace.bsh (100%) rename {testes => external-tests}/jEdit/misc/debug/edit_bus_send_exploit.bsh (100%) rename {testes => external-tests}/jEdit/misc/debug/info.txt (100%) rename {testes => external-tests}/jEdit/misc/debug/show_timing.patch (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/01.cpp (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/02.py (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/03.java (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/04.java (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/05.sh (100%) rename {testes => external-tests}/jEdit/misc/indentation_problems/info.txt (100%) rename {testes => external-tests}/jEdit/misc/info.txt (100%) rename {testes => external-tests}/jEdit/misc/mode_lint/mode_lint.xsl (100%) rename {testes => external-tests}/jEdit/modes/actionscript.xml (100%) rename {testes => external-tests}/jEdit/modes/ada.xml (100%) rename {testes => external-tests}/jEdit/modes/ada95.xml (100%) rename {testes => external-tests}/jEdit/modes/ans-forth94.xml (100%) rename {testes => external-tests}/jEdit/modes/ant.xml (100%) rename {testes => external-tests}/jEdit/modes/antlr.xml (100%) rename {testes => external-tests}/jEdit/modes/antlr4.xml (100%) rename {testes => external-tests}/jEdit/modes/apacheconf.xml (100%) rename {testes => external-tests}/jEdit/modes/apdl.xml (100%) rename {testes => external-tests}/jEdit/modes/applescript.xml (100%) rename {testes => external-tests}/jEdit/modes/asp.xml (100%) rename {testes => external-tests}/jEdit/modes/aspect-j.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-agc.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-ags.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-m68k.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-macro32.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-mcs51.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-parrot.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-r2000.xml (100%) rename {testes => external-tests}/jEdit/modes/assembly-x86.xml (100%) rename {testes => external-tests}/jEdit/modes/avro.xml (100%) rename {testes => external-tests}/jEdit/modes/awk.xml (100%) rename {testes => external-tests}/jEdit/modes/b.xml (100%) rename {testes => external-tests}/jEdit/modes/batch.xml (100%) rename {testes => external-tests}/jEdit/modes/bbj.xml (100%) rename {testes => external-tests}/jEdit/modes/bcel.xml (100%) rename {testes => external-tests}/jEdit/modes/bibtex.xml (100%) rename {testes => external-tests}/jEdit/modes/binsource-agc.xml (100%) rename {testes => external-tests}/jEdit/modes/c.xml (100%) rename {testes => external-tests}/jEdit/modes/catalog (100%) rename {testes => external-tests}/jEdit/modes/cfscript.xml (100%) rename {testes => external-tests}/jEdit/modes/chill.xml (100%) rename {testes => external-tests}/jEdit/modes/cil.xml (100%) rename {testes => external-tests}/jEdit/modes/clips.xml (100%) rename {testes => external-tests}/jEdit/modes/clojure.xml (100%) rename {testes => external-tests}/jEdit/modes/cmake.xml (100%) rename {testes => external-tests}/jEdit/modes/cobol.xml (100%) rename {testes => external-tests}/jEdit/modes/coffeescript.xml (100%) rename {testes => external-tests}/jEdit/modes/coldfusion.xml (100%) rename {testes => external-tests}/jEdit/modes/cplexlp.xml (100%) rename {testes => external-tests}/jEdit/modes/cplusplus.xml (100%) rename {testes => external-tests}/jEdit/modes/csharp.xml (100%) rename {testes => external-tests}/jEdit/modes/css.xml (100%) rename {testes => external-tests}/jEdit/modes/csv.xml (100%) rename {testes => external-tests}/jEdit/modes/cvs-commit.xml (100%) rename {testes => external-tests}/jEdit/modes/d.xml (100%) rename {testes => external-tests}/jEdit/modes/dart.xml (100%) rename {testes => external-tests}/jEdit/modes/django.xml (100%) rename {testes => external-tests}/jEdit/modes/dot.xml (100%) rename {testes => external-tests}/jEdit/modes/doxygen.xml (100%) rename {testes => external-tests}/jEdit/modes/dsssl.xml (100%) rename {testes => external-tests}/jEdit/modes/eiffel.xml (100%) rename {testes => external-tests}/jEdit/modes/embperl.xml (100%) rename {testes => external-tests}/jEdit/modes/erlang.xml (100%) rename {testes => external-tests}/jEdit/modes/factor.xml (100%) rename {testes => external-tests}/jEdit/modes/fhtml.xml (100%) rename {testes => external-tests}/jEdit/modes/forth.xml (100%) rename {testes => external-tests}/jEdit/modes/fortran.xml (100%) rename {testes => external-tests}/jEdit/modes/fortran90.xml (100%) rename {testes => external-tests}/jEdit/modes/foxpro.xml (100%) rename {testes => external-tests}/jEdit/modes/freemarker.xml (100%) rename {testes => external-tests}/jEdit/modes/gcbasic.xml (100%) rename {testes => external-tests}/jEdit/modes/gettext.xml (100%) rename {testes => external-tests}/jEdit/modes/gnuplot.xml (100%) rename {testes => external-tests}/jEdit/modes/go.xml (100%) rename {testes => external-tests}/jEdit/modes/gradle.xml (100%) rename {testes => external-tests}/jEdit/modes/groovy.xml (100%) rename {testes => external-tests}/jEdit/modes/haskell.xml (100%) rename {testes => external-tests}/jEdit/modes/haxe.xml (100%) rename {testes => external-tests}/jEdit/modes/hex.xml (100%) rename {testes => external-tests}/jEdit/modes/hlsl.xml (100%) rename {testes => external-tests}/jEdit/modes/htaccess.xml (100%) rename {testes => external-tests}/jEdit/modes/html.xml (100%) rename {testes => external-tests}/jEdit/modes/hxml.xml (100%) rename {testes => external-tests}/jEdit/modes/i4gl.xml (100%) rename {testes => external-tests}/jEdit/modes/ical.xml (100%) rename {testes => external-tests}/jEdit/modes/icon.xml (100%) rename {testes => external-tests}/jEdit/modes/idl.xml (100%) rename {testes => external-tests}/jEdit/modes/inform.xml (100%) rename {testes => external-tests}/jEdit/modes/ini.xml (100%) rename {testes => external-tests}/jEdit/modes/inno-setup.xml (100%) rename {testes => external-tests}/jEdit/modes/interlis.xml (100%) rename {testes => external-tests}/jEdit/modes/io.xml (100%) rename {testes => external-tests}/jEdit/modes/jamon.xml (100%) rename {testes => external-tests}/jEdit/modes/java.xml (100%) rename {testes => external-tests}/jEdit/modes/javacc.xml (100%) rename {testes => external-tests}/jEdit/modes/javafx.xml (100%) rename {testes => external-tests}/jEdit/modes/javascript.xml (100%) rename {testes => external-tests}/jEdit/modes/jcl.xml (100%) rename {testes => external-tests}/jEdit/modes/jedit-actions.xml (100%) rename {testes => external-tests}/jEdit/modes/jflex.xml (100%) rename {testes => external-tests}/jEdit/modes/jhtml.xml (100%) rename {testes => external-tests}/jEdit/modes/jmk.xml (100%) rename {testes => external-tests}/jEdit/modes/json.xml (100%) rename {testes => external-tests}/jEdit/modes/jsp.xml (100%) rename {testes => external-tests}/jEdit/modes/kotlin.xml (100%) rename {testes => external-tests}/jEdit/modes/latex.xml (100%) rename {testes => external-tests}/jEdit/modes/lex.xml (100%) rename {testes => external-tests}/jEdit/modes/lilypond.xml (100%) rename {testes => external-tests}/jEdit/modes/lisp.xml (100%) rename {testes => external-tests}/jEdit/modes/literate-haskell.xml (100%) rename {testes => external-tests}/jEdit/modes/logs.xml (100%) rename {testes => external-tests}/jEdit/modes/logtalk.xml (100%) rename {testes => external-tests}/jEdit/modes/lotos.xml (100%) rename {testes => external-tests}/jEdit/modes/lua.xml (100%) rename {testes => external-tests}/jEdit/modes/macroscheduler.xml (100%) rename {testes => external-tests}/jEdit/modes/mail.xml (100%) rename {testes => external-tests}/jEdit/modes/makefile.xml (100%) rename {testes => external-tests}/jEdit/modes/maple.xml (100%) rename {testes => external-tests}/jEdit/modes/markdown.xml (100%) rename {testes => external-tests}/jEdit/modes/maven.xml (100%) rename {testes => external-tests}/jEdit/modes/ml.xml (100%) rename {testes => external-tests}/jEdit/modes/modula3.xml (100%) rename {testes => external-tests}/jEdit/modes/moin.xml (100%) rename {testes => external-tests}/jEdit/modes/mpost.xml (100%) rename {testes => external-tests}/jEdit/modes/mqsc.xml (100%) rename {testes => external-tests}/jEdit/modes/mustache.xml (100%) rename {testes => external-tests}/jEdit/modes/mxml.xml (100%) rename {testes => external-tests}/jEdit/modes/myghty.xml (100%) rename {testes => external-tests}/jEdit/modes/mysql.xml (100%) rename {testes => external-tests}/jEdit/modes/n3.xml (100%) rename {testes => external-tests}/jEdit/modes/netrexx.xml (100%) rename {testes => external-tests}/jEdit/modes/nqc.xml (100%) rename {testes => external-tests}/jEdit/modes/nsis2.xml (100%) rename {testes => external-tests}/jEdit/modes/objective-c.xml (100%) rename {testes => external-tests}/jEdit/modes/objectrexx.xml (100%) rename {testes => external-tests}/jEdit/modes/occam.xml (100%) rename {testes => external-tests}/jEdit/modes/omnimark.xml (100%) rename {testes => external-tests}/jEdit/modes/osql.xml (100%) rename {testes => external-tests}/jEdit/modes/outline.xml (100%) rename {testes => external-tests}/jEdit/modes/pascal.xml (100%) rename {testes => external-tests}/jEdit/modes/patch.xml (100%) rename {testes => external-tests}/jEdit/modes/perl.xml (100%) rename {testes => external-tests}/jEdit/modes/pg-sql.xml (100%) rename {testes => external-tests}/jEdit/modes/php.xml (100%) rename {testes => external-tests}/jEdit/modes/pike.xml (100%) rename {testes => external-tests}/jEdit/modes/pl-sql.xml (100%) rename {testes => external-tests}/jEdit/modes/pl1.xml (100%) rename {testes => external-tests}/jEdit/modes/plaintex.xml (100%) rename {testes => external-tests}/jEdit/modes/pop11.xml (100%) rename {testes => external-tests}/jEdit/modes/postscript.xml (100%) rename {testes => external-tests}/jEdit/modes/povray.xml (100%) rename {testes => external-tests}/jEdit/modes/powercenter_parameter_file.xml (100%) rename {testes => external-tests}/jEdit/modes/powerdynamo.xml (100%) rename {testes => external-tests}/jEdit/modes/powershell.xml (100%) rename {testes => external-tests}/jEdit/modes/progress.xml (100%) rename {testes => external-tests}/jEdit/modes/prolog.xml (100%) rename {testes => external-tests}/jEdit/modes/props.xml (100%) rename {testes => external-tests}/jEdit/modes/psp.xml (100%) rename {testes => external-tests}/jEdit/modes/ptl.xml (100%) rename {testes => external-tests}/jEdit/modes/pure.xml (100%) rename {testes => external-tests}/jEdit/modes/pvwave.xml (100%) rename {testes => external-tests}/jEdit/modes/pyrex.xml (100%) rename {testes => external-tests}/jEdit/modes/python.xml (100%) rename {testes => external-tests}/jEdit/modes/quake.xml (100%) rename {testes => external-tests}/jEdit/modes/rcp.xml (100%) rename {testes => external-tests}/jEdit/modes/rd.xml (100%) rename {testes => external-tests}/jEdit/modes/rebol.xml (100%) rename {testes => external-tests}/jEdit/modes/redcode.xml (100%) rename {testes => external-tests}/jEdit/modes/regex.xml (100%) rename {testes => external-tests}/jEdit/modes/relax-ng-compact.xml (100%) rename {testes => external-tests}/jEdit/modes/rest.xml (100%) rename {testes => external-tests}/jEdit/modes/rfc.xml (100%) rename {testes => external-tests}/jEdit/modes/rhtml.xml (100%) rename {testes => external-tests}/jEdit/modes/rib.xml (100%) rename {testes => external-tests}/jEdit/modes/roff.xml (100%) rename {testes => external-tests}/jEdit/modes/rpmspec.xml (100%) rename {testes => external-tests}/jEdit/modes/rtf.xml (100%) rename {testes => external-tests}/jEdit/modes/ruby.xml (100%) rename {testes => external-tests}/jEdit/modes/rust.xml (100%) rename {testes => external-tests}/jEdit/modes/rview.xml (100%) rename {testes => external-tests}/jEdit/modes/sas.xml (100%) rename {testes => external-tests}/jEdit/modes/scala.xml (100%) rename {testes => external-tests}/jEdit/modes/scheme.xml (100%) rename {testes => external-tests}/jEdit/modes/sdl_pr.xml (100%) rename {testes => external-tests}/jEdit/modes/sgml.xml (100%) rename {testes => external-tests}/jEdit/modes/shellscript.xml (100%) rename {testes => external-tests}/jEdit/modes/shtml.xml (100%) rename {testes => external-tests}/jEdit/modes/sip.xml (100%) rename {testes => external-tests}/jEdit/modes/slate.xml (100%) rename {testes => external-tests}/jEdit/modes/slax.xml (100%) rename {testes => external-tests}/jEdit/modes/smalltalk.xml (100%) rename {testes => external-tests}/jEdit/modes/smarty.xml (100%) rename {testes => external-tests}/jEdit/modes/smi-mib.xml (100%) rename {testes => external-tests}/jEdit/modes/splus.xml (100%) rename {testes => external-tests}/jEdit/modes/sql-loader.xml (100%) rename {testes => external-tests}/jEdit/modes/sqr.xml (100%) rename {testes => external-tests}/jEdit/modes/squidconf.xml (100%) rename {testes => external-tests}/jEdit/modes/ssharp.xml (100%) rename {testes => external-tests}/jEdit/modes/stata.xml (100%) rename {testes => external-tests}/jEdit/modes/svn-commit.xml (100%) rename {testes => external-tests}/jEdit/modes/swig.xml (100%) rename {testes => external-tests}/jEdit/modes/tcl.xml (100%) rename {testes => external-tests}/jEdit/modes/tex.xml (100%) rename {testes => external-tests}/jEdit/modes/texinfo.xml (100%) rename {testes => external-tests}/jEdit/modes/text.xml (100%) rename {testes => external-tests}/jEdit/modes/tld.xml (100%) rename {testes => external-tests}/jEdit/modes/tpl.xml (100%) rename {testes => external-tests}/jEdit/modes/tsp.xml (100%) rename {testes => external-tests}/jEdit/modes/tsql.xml (100%) rename {testes => external-tests}/jEdit/modes/tthtml.xml (100%) rename {testes => external-tests}/jEdit/modes/turbobasic.xml (100%) rename {testes => external-tests}/jEdit/modes/twiki.xml (100%) rename {testes => external-tests}/jEdit/modes/typoscript.xml (100%) rename {testes => external-tests}/jEdit/modes/url.xml (100%) rename {testes => external-tests}/jEdit/modes/uscript.xml (100%) rename {testes => external-tests}/jEdit/modes/vala.xml (100%) rename {testes => external-tests}/jEdit/modes/vbscript.xml (100%) rename {testes => external-tests}/jEdit/modes/velocity.xml (100%) rename {testes => external-tests}/jEdit/modes/velocity_pure.xml (100%) rename {testes => external-tests}/jEdit/modes/verilog.xml (100%) rename {testes => external-tests}/jEdit/modes/vhdl.xml (100%) rename {testes => external-tests}/jEdit/modes/visualbasic.xml (100%) rename {testes => external-tests}/jEdit/modes/vrml2.xml (100%) rename {testes => external-tests}/jEdit/modes/xml.xml (100%) rename {testes => external-tests}/jEdit/modes/xq.xml (100%) rename {testes => external-tests}/jEdit/modes/xsl.xml (100%) rename {testes => external-tests}/jEdit/modes/yab.xml (100%) rename {testes => external-tests}/jEdit/modes/yaml.xml (100%) rename {testes => external-tests}/jEdit/modes/zpt.xml (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/AppBundleProperties.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/DocumentType.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/HelpBook.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/JarBundler.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/JavaProperty.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/PropertyListWriter.java (100%) rename {testes => external-tests}/jEdit/net/sourceforge/jarbundler/Service.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Abbrevs.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/AbstractOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ActionContext.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ActionListHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ActionSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Autosave.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/BeanShell.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/BeanShellAction.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/BeanShellFacade.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Buffer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/BufferHistory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Debug.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EBComponent.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EBMessage.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EBPlugin.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EditAction.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EditBus.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EditPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EditPlugin.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/EditServer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/GUIUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/IPropertyManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JARClassLoader.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditAbstractEditAction.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditActionContext.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditActionSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditBeanShellAction.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditKillRing.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditMode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditRegisterSaver.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/JEditRegistersListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Macros.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Marker.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/MiscUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Mode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ModeCatalogHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/OperatingSystem.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/OptionGroup.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/OptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/PerspectiveManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/PluginJAR.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/PropertyManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/RegisterSaver.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/Registers.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/RegistersListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ServiceListHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/ServiceManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/SettingsReloader.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/SettingsXML.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/SplitConfigParser.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/TextUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/View.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/actions.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/actions.xml (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser.actions.xml (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/AbstractBrowserTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/BrowserCommandsMenu.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/BrowserListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/BrowserView.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/DeleteBrowserTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/FileCellRenderer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/ListDirectoryBrowserTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/MkDirBrowserTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/RenameBrowserTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/VFSBrowser.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTableModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/VFSFileChooserDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/VFSFileNameField.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/browser/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHAllocationExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHAmbiguousName.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHArguments.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHArrayDimensions.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHArrayInitializer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHAssignment.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHBinaryExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHCastExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHClassDeclaration.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHEnhancedForStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHForStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHFormalComment.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameters.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHIfStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHImportDeclaration.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHLiteral.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHMethodDeclaration.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHMethodInvocation.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHPackageDeclaration.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHPrimaryExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHPrimarySuffix.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHPrimitiveType.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHReturnStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHReturnType.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHStatementExpressionList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchLabel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHTernaryExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHThrowStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHTryStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHType.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHTypedVariableDeclaration.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHUnaryExpression.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHVariableDeclarator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BSHWhileStatement.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BlockNameSpace.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BshClass.scripted (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BshClassManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BshIterator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/BshMethod.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/CallStack.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Capabilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassGenerator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorImpl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorUtil.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassIdentifier.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassNameSpace.scripted (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ClassPathException.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/CollectionManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/CommandLineReader.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ConsoleInterface.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/DelayedEvalBshMethod.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/EvalError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ExternalNameSpace.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Interpreter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/InterpreterError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/JJTParserState.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/JThis.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/JavaCharStream.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/LHS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Modifiers.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Name.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/NameSource.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/NameSpace.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Node.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ParseException.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Parser.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ParserConstants.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ParserTokenManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ParserTreeConstants.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Primitive.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Reflect.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Reflect.last (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ReflectError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ReflectManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Remote.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/ReturnControl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/SimpleNode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/StringUtil.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/TargetError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/This.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Token.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/TokenMgrError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Types.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/UtilEvalError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/UtilTargetError.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/Variable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/XThis.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/bsh.jj (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/bsh.jjt (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassLoader.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassPath.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassManagerImpl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassPathListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/classpath/DiscreteFilesClassLoader.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionIterator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionManagerImpl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/addClassPath.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/bg.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/bind.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/browseClass.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/cat.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/cd.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/classBrowser.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/clear.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/cp.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/debug.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/desktop.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/dir.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/dirname.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/editor.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/error.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/eval.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/exec.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/exit.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/extend.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/fontMenu.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/frame.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/getBshPrompt.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/getClass.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/getClassPath.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/getResource.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/getSourceFileInfo.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/importCommands.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/importObject.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/javap.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/load.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/makeWorkspace.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/mv.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/object.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/pathToFile.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/print.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/printBanner.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/pwd.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/reloadClasses.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/rm.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/run.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/save.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/server.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setAccessibility.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setClassPath.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setFont.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setNameCompletion.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setNameSpace.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/setStrictJava.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/show.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/source.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/sourceRelative.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/thinBorder.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/unset.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/which.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/commands/workspaceEditor.bsh (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ByteVector.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassVisitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassWriter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeVisitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeWriter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Constants.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Edge.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Item.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Label.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Type.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bsh/reflect/ReflectManagerImpl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/BufferAdapter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/BufferListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/BufferSegment.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/BufferUndoListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/ContentManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/DummyFoldHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/FoldHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/FoldHandlerProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/IndentFoldHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/JEditBuffer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/KillRing.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/LineManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/PositionManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/UndoManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/buffer/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/BufferAutosaveRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/BufferIORequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/BufferInsertRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/BufferLoadRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/IoTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/MarkersSaveRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferio/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferset/BufferSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferset/BufferSetAdapter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferset/BufferSetListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferset/BufferSetManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/bufferset/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/catalog.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/JEditRichText.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferableService.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/ListVFSFileTransferable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/RichTextTransferable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/StringTransferableService.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/TransferHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/datatransfer/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/default.abbrevs (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/dockables.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/dockables.xml (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AbbrevEditor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AboutDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AbstractContextOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ActionBar.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AddAbbrevDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AddModeDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/AnimatedIcon.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/BeanShellErrorDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/BufferOptions.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/BufferSwitcher.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/CloseDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ColorWellButton.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/CompleteWord.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/CompletionPopup.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ContextAddDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DefaultFocusComponent.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DefaultInputHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableLayout.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockablePanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindow.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindowContainer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindowFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindowManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerImpl.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockingFrameworkProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DockingLayoutManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/DynamicContextMenuService.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/EditAbbrevDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/EnhancedButton.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/EnhancedDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ErrorListDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayout.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayoutConstraints.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FilePropertiesDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FilesChangedDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FilteredListModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FilteredTableModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FloatingWindowContainer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FontSelector.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/FontSelectorDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/GrabKeyDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/HistoryModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/HistoryModelSaver.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/HistoryText.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/HistoryTextArea.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/HistoryTextField.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/InputHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/JCheckBoxList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/JEditHistoryModelSaver.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/KeyEventTranslator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/KeyEventWorkaround.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ListModelEditor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/LogViewer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/MarkerViewer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/MutableListModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/NumericTextField.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/OptionsDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/PanelWindowContainer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/PasteFromListDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/PasteSpecialDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/PingPongList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/RegisterViewer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/RolloverButton.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/SelectLineRange.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/SplashScreen.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/StatusBar.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/StyleEditor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/TaskMonitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/TextAreaDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/TipOfTheDay.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/ToolBarManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/VariableGridLayout.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/BufferSetWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/ClockWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/EncodingWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/ErrorsWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/FoldWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/IndentWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/LastModifiedWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/LineSepWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/MemoryStatusWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/ModeWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/MultiSelectWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/OverwriteWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/RectSelectWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/SelectionLengthWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/StatusWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/TaskMonitorWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/ToolTipLabel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/Widget.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/statusbar/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/tray/JEditTrayIcon.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIcon.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIconManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/gui/tray/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpHistoryModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpHistoryModelListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpIndex.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpSearchPanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpTOCPanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpViewer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HelpViewerInterface.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/HistoryButton.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/help/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/splash.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/actions/close.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/emblem/emblem-readonly.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-modified.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-unmodified.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/edit-select-all.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-collapse.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-expand.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/view-reload.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/devices/drive-harddisk.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/mimetypes/text-x-generic.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/places/folder.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/status/folder-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run-again.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/copy-to-buffer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-close.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-print.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-properties.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-reload2.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-all.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-as.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-clear.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-copy.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-cut.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-delete.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-highlight-match.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-in-folder.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-multiple.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-next.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-normal-match.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-single.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-paste.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-redo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-undo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/folder-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-down.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-first.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-home.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-last.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-next.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-parent.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-previous.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-up.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-add.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-remove.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-pause.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-start.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/printer-setup.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/process-stop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/resize-horisontal.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/run-to-buffer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/view-refresh.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-horizontal.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-vertical.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-unsplit.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-in.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-out.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/help-browser.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/system-installer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/categories/preferences-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/drive-harddisk.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/media-floppy.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/printer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/places/plugins.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/folder-visiting.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/image-missing.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/32x32/apps/jedit.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/Blank24.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/ToolbarMenu.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/about.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-asc.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-desc.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout1.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout2.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout3.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout4.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/classic/loader.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/actions/close.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/emblem/emblem-readonly.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-modified.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-unmodified.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-close.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print-preview.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-properties.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-all.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-as.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-copy.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-cut.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-delete.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find-replace.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-paste.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-redo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-select-all.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-undo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/folder-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-collapse.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-expand.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-add.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-remove.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-playback-stop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-record.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/process-stop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/view-refresh.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/window-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/animations/process-working.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/jedit.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/system-file-manager.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/applications-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/preferences-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/devices/drive-harddisk.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-favorite.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-important.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-photos.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-readonly.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-symbolic-link.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-unreadable.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/application-x-executable.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/text-x-generic.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/places/folder.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-error.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-information.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-warning.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-empty.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-drag-accept.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-visiting.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-loading.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-missing.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run-again.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/bookmark-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/copy-to-buffer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-close.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print-preview.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-properties.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload2.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-all.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-as.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-clear.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-copy.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-cut.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-delete.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-highlight-match.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-in-folder.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-multiple.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-next.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-normal-match.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-replace.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-single.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-paste.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-redo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-undo.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/folder-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-bottom.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-down.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-first.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-home.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-jump.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-last.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-next.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-parent.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-previous.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-top.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-up.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-add.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-remove.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-eject.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-pause.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-start.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-stop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-record.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-backward.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-forward.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-backward.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-forward.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/printer-setup.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/process-stop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/resize-horisontal.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/run-to-buffer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-log-out.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-search.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-fullscreen.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-refresh.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-new.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-horizontal.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-vertical.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-unsplit.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-in.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-out.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/animations/process-working.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/help-browser.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/internet-web-browser.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-file-manager.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-installer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/utilities-terminal.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/applications-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-desktop.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/drive-harddisk.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/media-floppy.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/printer.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-important.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-readonly.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-symbolic-link.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-system.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-unreadable.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/image-x-generic.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-html.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic-template.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-script.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder-saved-search.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/plugins.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/user-home.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-error.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-information.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-warning.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-drag-accept.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-open.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-visiting.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-loading.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-missing.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/32x32/apps/jedit.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/Blank24.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/ToolbarMenu.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/about.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-asc.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-desc.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout1.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout2.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout3.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout4.png (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/icons/themes/tango/loader.gif (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/BracketIndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/CloseBracketIndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/DeepIndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/IndentAction.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/IndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/IndentRuleFactory.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/OpenBracketIndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/RegexpIndentRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/WhitespaceRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/indent/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/input/AbstractInputHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/input/InputHandlerProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/input/TextAreaInputHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/input/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/AutoDetection.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/CharsetEncoding.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/CopyFileWorker.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/Encoding.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/EncodingDetector.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/EncodingServer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/EncodingWithBOM.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/FavoritesVFS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/FileRootsVFS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/FileVFS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/GlobVFSFileFilter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/LocalFileSaveTask.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/RegexEncodingDetector.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/UrlVFS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/VFS.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/VFSFile.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/VFSFileFilter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/VFSManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/XMLEncodingDetector.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/io/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/jEdit.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/jedit.manifest (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/jedit.props (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/jedit_gui.props (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/killring.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/DirectoryProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/DynamicMenuProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/EnhancedCheckBoxMenuItem.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/EnhancedMenu.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/EnhancedMenuItem.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/FavoritesProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/MacrosProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/MarkersProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/MenuItemTextComparator.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/PluginsProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/RecentDirectoriesProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/RecentFilesProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/ReloadWithEncodingProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/menu/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/BufferChanging.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/BufferUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/DockableWindowUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/DynamicMenuChanged.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/EditPaneUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/EditorExitRequested.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/EditorExiting.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/EditorStarted.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/PluginUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/PositionChanging.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/PropertiesChanged.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/PropertiesChanging.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/RegisterChanged.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/SearchSettingsChanged.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/VFSPathSelected.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/ViewUpdate.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/msg/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/AbbrevsOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/AppearanceOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/BrowserColorsOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/BrowserContextOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/BrowserOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/BufferOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/ContextOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/DockingOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/EditingOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/EncodingsOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/FirewallOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/GeneralOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/GlobalOptions.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/GutterOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/IconTheme.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/IntegerInputVerifier.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/LargeFilesOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/MouseOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/PluginManagerOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/PluginOptions.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/PrintOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/SaveBackupOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/ShortcutsOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/StatusBarOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/SyntaxHiliteOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/TextAreaOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/ToolBarOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/ViewOptionPane.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/mirrors.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/options/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/perspective.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/InstallPanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/KeyboardCommand.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/ManagePanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorListHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/PluginDetailPanel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/PluginList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/PluginListHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManagerProgress.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/Roster.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/pluginmgr/plugins.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/print/BufferPrintable.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_3.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_4.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/print/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/proto/jeditresource/Handler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/proto/jeditresource/PluginResURLConnection.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/proto/jeditresource/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/recent.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/registers.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/AllBufferSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/BoyerMooreSearchMatcher.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/BufferListSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/CurrentBufferSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/DirectoryListSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchFileNode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchFolderNode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchNode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchOperationNode.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchRequest.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchResult.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchResults.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/HyperSearchTreeNodeCallback.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/PatternSearchMatcher.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/SearchAndReplace.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/SearchBar.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/SearchDialog.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/SearchFileSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/SearchMatcher.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/search/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/services.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/services.xml (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/Chunk.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/DefaultTokenHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/DisplayTokenHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/DummyTokenHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/KeywordMap.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/ModeProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/ParserRule.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/ParserRuleSet.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/SyntaxStyle.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/SyntaxUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/Token.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/TokenHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/TokenMarker.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/XModeHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/syntax/xmode.dtd (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/Anchor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/AntiAlias.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/BufferHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ChunkCache.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/CircleFoldPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ColumnBlock.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ColumnBlockLine.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ExtensionManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/FirstLine.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/FoldPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/Gutter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/GutterPopupHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/InputMethodSupport.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/JEditEmbeddedTextArea.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/JEditTextArea.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/MouseActions.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/MouseActionsProvider.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/MouseHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/Node.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/RangeMap.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ScreenLineManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ScrollLayout.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ScrollLineCount.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ScrollListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/Selection.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/SelectionManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/ShapedFoldPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/SquareFoldPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/StandaloneTextArea.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/StatusListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/StructureMatcher.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextArea.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaBorder.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaDropHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaException.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaExtension.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TextAreaTransferHandler.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/TriangleFoldPainter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/textarea/textarea.actions.xml (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/visitors/JEditVisitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/visitors/JEditVisitorAdapter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/visitors/SaveCaretInfoVisitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/jedit/visitors/package.html (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/AwtRunnableQueue.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/EnhancedTreeCellRenderer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/HtmlUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/IOUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/IntegerArray.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/Log.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/ProgressObserver.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/PropertiesBean.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/ReverseCharSequence.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/SegmentBuffer.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/SegmentCharSequence.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/StandardUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/StringList.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/StringModel.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/SyntaxUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/Task.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/TaskAdapter.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/TaskListener.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/TaskManager.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/ThreadAbortMonitor.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/ThreadUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/XMLUtilities.java (100%) rename {testes => external-tests}/jEdit/org/gjt/sp/util/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/core/FileOpenerService.java (100%) rename {testes => external-tests}/jEdit/org/jedit/core/MigrationService.java (100%) rename {testes => external-tests}/jEdit/org/jedit/core/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/io/Native2ASCIIEncoding.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/EmacsUtil.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/Keymap.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/KeymapFileFilter.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/KeymapImpl.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/KeymapManager.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/KeymapManagerImpl.java (100%) rename {testes => external-tests}/jEdit/org/jedit/keymap/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_cs.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_de.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_en.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_fr.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_ja.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_ko.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_ru.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/jedit_zh.props (100%) rename {testes => external-tests}/jEdit/org/jedit/localization/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/migration/CheckFileStatus.java (100%) rename {testes => external-tests}/jEdit/org/jedit/migration/KeymapMigration.java (100%) rename {testes => external-tests}/jEdit/org/jedit/migration/OneTimeMigrationService.java (100%) rename {testes => external-tests}/jEdit/org/jedit/migration/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/options/CombinedOptions.java (100%) rename {testes => external-tests}/jEdit/org/jedit/options/GlobalOptionGroup.java (100%) rename {testes => external-tests}/jEdit/org/jedit/options/OptionGroupPane.java (100%) rename {testes => external-tests}/jEdit/org/jedit/options/PluginOptionGroup.java (100%) rename {testes => external-tests}/jEdit/org/jedit/options/TabbedOptionDialog.java (100%) rename {testes => external-tests}/jEdit/org/jedit/options/package.html (100%) rename {testes => external-tests}/jEdit/org/jedit/package.html (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/Packages (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/control (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/jedit (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/jedit.desktop (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/postinst (100%) rename {testes => external-tests}/jEdit/package-files/linux/deb/postrm (100%) rename {testes => external-tests}/jEdit/package-files/linux/jedit (100%) rename {testes => external-tests}/jEdit/package-files/linux/jedit.1 (100%) rename {testes => external-tests}/jEdit/package-files/linux/rpm/jedit.spec (100%) rename {testes => external-tests}/jEdit/package-files/linux/slackware/doinst.sh (100%) rename {testes => external-tests}/jEdit/package-files/linux/slackware/jEdit.desktop (100%) rename {testes => external-tests}/jEdit/package-files/linux/slackware/slack-desc (100%) rename {testes => external-tests}/jEdit/package-files/linux/slackware/slack-required (100%) rename {testes => external-tests}/jEdit/package-files/os2/jedit.cmd (100%) rename {testes => external-tests}/jEdit/package-files/osx/.background/background.png (100%) rename {testes => external-tests}/jEdit/package-files/osx/DS_Store (100%) rename {testes => external-tests}/jEdit/package-files/osx/jedit (100%) rename {testes => external-tests}/jEdit/package-files/windows/jEdit.url (100%) rename {testes => external-tests}/jEdit/package-files/windows/jedit.launch4j.xml (100%) rename {testes => external-tests}/jEdit/package-files/windows/win32installer.iss (100%) rename {testes => external-tests}/jEdit/properties/README.txt (100%) rename {testes => external-tests}/jEdit/startup/README.txt (100%) rename {testes => external-tests}/jEdit/startup/startup.bsh (100%) rename {testes => external-tests}/jEdit/test/org/jedit/io/Native2ASCIIEncodingTest.java (100%) rename src/{ => lang/java/analysis}/ParseTreeVisualization.rsc (78%) rename src/{ => lang/java/analysis}/SimpleMetrics.rsc (98%) rename src/{AllTestes.rsc => tests/Parser.rsc} (98%) delete mode 100644 testes/di.csv delete mode 100644 testes/projects.csv diff --git a/testes/AnonymousInnerClassTeste.java b/external-tests/AnonymousInnerClassTeste.java similarity index 100% rename from testes/AnonymousInnerClassTeste.java rename to external-tests/AnonymousInnerClassTeste.java diff --git a/testes/BasicTest.java b/external-tests/BasicTest.java similarity index 100% rename from testes/BasicTest.java rename to external-tests/BasicTest.java diff --git a/testes/Cassandra/src/antlr/Cql.g b/external-tests/Cassandra/src/antlr/Cql.g similarity index 100% rename from testes/Cassandra/src/antlr/Cql.g rename to external-tests/Cassandra/src/antlr/Cql.g diff --git a/testes/Cassandra/src/antlr/Lexer.g b/external-tests/Cassandra/src/antlr/Lexer.g similarity index 100% rename from testes/Cassandra/src/antlr/Lexer.g rename to external-tests/Cassandra/src/antlr/Lexer.g diff --git a/testes/Cassandra/src/antlr/Parser.g b/external-tests/Cassandra/src/antlr/Parser.g similarity index 100% rename from testes/Cassandra/src/antlr/Parser.g rename to external-tests/Cassandra/src/antlr/Parser.g diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthorizer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthorizer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthorizer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllAuthorizer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllInternodeAuthenticator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllInternodeAuthenticator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AllowAllInternodeAuthenticator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AllowAllInternodeAuthenticator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AuthCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AuthCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AuthCacheMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthCacheMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AuthCacheMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthCacheMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AuthKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AuthKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AuthMigrationListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthMigrationListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AuthMigrationListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthMigrationListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/AuthenticatedUser.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthenticatedUser.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/AuthenticatedUser.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/AuthenticatedUser.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraLoginModule.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraLoginModule.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraLoginModule.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraLoginModule.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraPrincipal.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraPrincipal.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraPrincipal.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraPrincipal.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraRoleManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraRoleManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/CassandraRoleManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/CassandraRoleManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/DataResource.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/DataResource.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/DataResource.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/DataResource.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/FunctionResource.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/FunctionResource.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/FunctionResource.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/FunctionResource.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/IAuthenticator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/IAuthenticator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/IAuthenticator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/IAuthenticator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/IAuthorizer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/IAuthorizer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/IAuthorizer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/IAuthorizer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/IInternodeAuthenticator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/IInternodeAuthenticator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/IInternodeAuthenticator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/IInternodeAuthenticator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/IResource.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/IResource.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/IResource.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/IResource.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/IRoleManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/IRoleManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/IRoleManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/IRoleManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/JMXResource.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/JMXResource.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/JMXResource.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/JMXResource.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/Permission.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/Permission.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/Permission.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/Permission.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionDetails.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionDetails.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionDetails.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionDetails.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCacheMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCacheMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCacheMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/PermissionsCacheMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/Resources.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/Resources.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/Resources.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/Resources.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/RoleOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/RoleOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/RoleOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/RoleOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/RoleResource.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/RoleResource.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/RoleResource.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/RoleResource.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/Roles.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/Roles.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/Roles.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/Roles.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/RolesCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/RolesCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/RolesCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/RolesCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/RolesCacheMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/RolesCacheMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/RolesCacheMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/RolesCacheMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthenticationProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthenticationProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthenticationProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthenticationProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthorizationProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthorizationProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthorizationProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/auth/jmx/AuthorizationProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/Batch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/Batch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/Batch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/Batch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchRemoveVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchRemoveVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchRemoveVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchRemoveVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchStoreVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchStoreVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchStoreVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchStoreVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManagerMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManagerMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManagerMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/BatchlogManagerMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/batchlog/LegacyBatchlogMigrator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/LegacyBatchlogMigrator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/batchlog/LegacyBatchlogMigrator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/batchlog/LegacyBatchlogMigrator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/AutoSavingCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/AutoSavingCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/AutoSavingCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/AutoSavingCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/CacheKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/CacheKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/CacheProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/CacheProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/CacheSize.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheSize.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/CacheSize.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/CacheSize.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/ChunkCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/ChunkCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/ChunkCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/ChunkCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/ConcurrentLinkedHashCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/CounterCacheKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/CounterCacheKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/CounterCacheKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/CounterCacheKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/ICache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/ICache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/ICache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/ICache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/IMeasurableMemory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/IMeasurableMemory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/IMeasurableMemory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/IMeasurableMemory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/IRowCacheEntry.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/IRowCacheEntry.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/IRowCacheEntry.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/IRowCacheEntry.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/InstrumentingCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/InstrumentingCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/InstrumentingCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/InstrumentingCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/KeyCacheKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/KeyCacheKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/KeyCacheKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/KeyCacheKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/NopCacheProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/NopCacheProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/NopCacheProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/NopCacheProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/OHCProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/OHCProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/OHCProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/OHCProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/RefCountedMemory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/RefCountedMemory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/RefCountedMemory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/RefCountedMemory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/RowCacheKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/RowCacheKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/RowCacheKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/RowCacheKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/RowCacheSentinel.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/RowCacheSentinel.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/RowCacheSentinel.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/RowCacheSentinel.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/SerializingCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/SerializingCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/SerializingCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/SerializingCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/client/RingCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/client/RingCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/client/RingCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/client/RingCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/AbstractLocalAwareExecutorService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/AbstractLocalAwareExecutorService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/AbstractLocalAwareExecutorService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/AbstractLocalAwareExecutorService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/DebuggableThreadPoolExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocal.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocal.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocal.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocal.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocals.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocals.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocals.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ExecutorLocals.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutorMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutorMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutorMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXConfigurableThreadPoolExecutorMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/JMXEnabledThreadPoolExecutorMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/LocalAwareExecutorService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/LocalAwareExecutorService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/LocalAwareExecutorService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/LocalAwareExecutorService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/NamedThreadFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/NamedThreadFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/NamedThreadFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/NamedThreadFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/SEPExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SEPExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/SEPExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SEPExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/SEPWorker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SEPWorker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/SEPWorker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SEPWorker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/ScheduledExecutors.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ScheduledExecutors.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/ScheduledExecutors.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/ScheduledExecutors.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/Stage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/Stage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/Stage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/Stage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/concurrent/StageManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/StageManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/concurrent/StageManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/concurrent/StageManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/CFMetaData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/CFMetaData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/CFMetaData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/CFMetaData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/ColumnDefinition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/ColumnDefinition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/ColumnDefinition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/ColumnDefinition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/Config.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/Config.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/Config.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/Config.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/ConfigurationLoader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/ConfigurationLoader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/ConfigurationLoader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/ConfigurationLoader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/DatabaseDescriptor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/DatabaseDescriptor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/DatabaseDescriptor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/EncryptionOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/EncryptionOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/EncryptionOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/EncryptionOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/ParameterizedClass.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/ParameterizedClass.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/ParameterizedClass.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/ParameterizedClass.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/ReadRepairDecision.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/ReadRepairDecision.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/ReadRepairDecision.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/ReadRepairDecision.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/RequestSchedulerOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/RequestSchedulerOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/RequestSchedulerOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/RequestSchedulerOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/Schema.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/Schema.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/Schema.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/Schema.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/TransparentDataEncryptionOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/TransparentDataEncryptionOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/TransparentDataEncryptionOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/TransparentDataEncryptionOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/ViewDefinition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/ViewDefinition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/ViewDefinition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/ViewDefinition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/AbstractConditions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AbstractConditions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/AbstractConditions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AbstractConditions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/AbstractMarker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AbstractMarker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/AbstractMarker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AbstractMarker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/AssignmentTestable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AssignmentTestable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/AssignmentTestable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/AssignmentTestable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Attributes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Attributes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Attributes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Attributes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/BatchQueryOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/BatchQueryOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/BatchQueryOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/BatchQueryOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/CFName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CFName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/CFName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CFName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/CQL3Type.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQL3Type.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/CQL3Type.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQL3Type.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/CQLFragmentParser.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQLFragmentParser.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/CQLFragmentParser.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQLFragmentParser.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/CQLStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQLStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/CQLStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CQLStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnCondition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnCondition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnCondition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnCondition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnConditions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnConditions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnConditions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnConditions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnSpecification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnSpecification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ColumnSpecification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ColumnSpecification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Conditions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Conditions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Conditions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Conditions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Constants.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Constants.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Constants.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Constants.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/CustomPayloadMirroringQueryHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CustomPayloadMirroringQueryHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/CustomPayloadMirroringQueryHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/CustomPayloadMirroringQueryHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ErrorCollector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ErrorCollector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ErrorCollector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ErrorCollector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ErrorListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ErrorListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ErrorListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ErrorListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/FieldIdentifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/FieldIdentifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/FieldIdentifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/FieldIdentifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/IfExistsCondition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IfExistsCondition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/IfExistsCondition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IfExistsCondition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/IfNotExistsCondition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IfNotExistsCondition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/IfNotExistsCondition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IfNotExistsCondition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/IndexName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IndexName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/IndexName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/IndexName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Json.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Json.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Json.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Json.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/KeyspaceElementName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/KeyspaceElementName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/KeyspaceElementName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/KeyspaceElementName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Lists.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Lists.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Lists.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Lists.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Maps.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Maps.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Maps.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Maps.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/MultiColumnRelation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/MultiColumnRelation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/MultiColumnRelation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/MultiColumnRelation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Operation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Operation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Operations.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operations.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Operations.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operations.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Operator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Operator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Operator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryProcessor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/QueryProcessor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/QueryProcessor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Relation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Relation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Relation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Relation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/ResultSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ResultSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/ResultSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/ResultSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/RoleName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/RoleName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/RoleName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/RoleName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Sets.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Sets.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Sets.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Sets.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/SingleColumnRelation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Term.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Term.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Term.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Term.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Terms.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Terms.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Terms.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Terms.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/TokenRelation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/TokenRelation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/TokenRelation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/TokenRelation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/Tuples.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Tuples.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/Tuples.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/Tuples.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/TypeCast.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/TypeCast.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/TypeCast.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/TypeCast.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/UTName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UTName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/UTName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UTName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/UntypedResultSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UntypedResultSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/UntypedResultSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UntypedResultSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/UpdateParameters.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UpdateParameters.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/UpdateParameters.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UpdateParameters.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/UserTypes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UserTypes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/UserTypes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/UserTypes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/VariableSpecifications.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/VariableSpecifications.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/VariableSpecifications.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/VariableSpecifications.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/WhereClause.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/WhereClause.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/WhereClause.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/WhereClause.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AbstractFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AbstractFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AbstractFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AbstractFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFcts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/AggregateFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/BytesConversionFcts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/CastFcts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/CastFcts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/CastFcts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/CastFcts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FromJsonFct.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/Function.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/Function.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/Function.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/Function.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionCall.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionName.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionName.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionName.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionName.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionResolver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionResolver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionResolver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/FunctionResolver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaBasedUDFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/JavaUDF.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeAggregateFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeAggregateFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeAggregateFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeAggregateFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeScalarFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeScalarFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeScalarFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/NativeScalarFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScalarFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ScriptBasedUDFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/SecurityThreadGroup.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/SecurityThreadGroup.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/SecurityThreadGroup.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/SecurityThreadGroup.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/TimeFcts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/TimeFcts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/TimeFcts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/TimeFcts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ToJsonFct.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ToJsonFct.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/ToJsonFct.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/ToJsonFct.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/TokenFct.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/TokenFct.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/TokenFct.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/TokenFct.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFByteCodeVerifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFByteCodeVerifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFByteCodeVerifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFByteCodeVerifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContext.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContext.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContext.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContext.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContextImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContextImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContextImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFContextImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UDHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UuidFcts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UuidFcts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/functions/UuidFcts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/functions/UuidFcts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/ClusteringColumnRestrictions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/CustomIndexExpression.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/CustomIndexExpression.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/CustomIndexExpression.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/CustomIndexExpression.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/IndexRestrictions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/IndexRestrictions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/IndexRestrictions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/IndexRestrictions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/MultiColumnRestriction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeyRestrictions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeySingleRestrictionSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeySingleRestrictionSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeySingleRestrictionSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/PartitionKeySingleRestrictionSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restriction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restriction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restriction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restriction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSetWrapper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSetWrapper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSetWrapper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/RestrictionSetWrapper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restrictions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restrictions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restrictions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/Restrictions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleColumnRestriction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleColumnRestriction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleColumnRestriction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleColumnRestriction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleRestriction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleRestriction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleRestriction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/SingleRestriction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/StatementRestrictions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TermSlice.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TermSlice.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TermSlice.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TermSlice.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenRestriction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenRestriction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenRestriction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/restrictions/TokenRestriction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/AbstractFunctionSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/AbstractFunctionSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/AbstractFunctionSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/AbstractFunctionSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/AggregateFunctionSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/AggregateFunctionSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/AggregateFunctionSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/AggregateFunctionSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/FieldSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/FieldSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/FieldSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/FieldSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/RawSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/RawSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/RawSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/RawSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/ScalarFunctionSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/ScalarFunctionSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/ScalarFunctionSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/ScalarFunctionSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selectable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selectable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selectable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selectable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumnMapping.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumnMapping.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumnMapping.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumnMapping.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumns.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumns.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumns.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectionColumns.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/Selector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectorFactories.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectorFactories.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectorFactories.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SelectorFactories.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SimpleSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SimpleSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/SimpleSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/SimpleSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/TermSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/TermSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/TermSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/TermSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/WritetimeOrTTLSelector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/WritetimeOrTTLSelector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/selection/WritetimeOrTTLSelector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/selection/WritetimeOrTTLSelector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterKeyspaceStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterRoleStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterRoleStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterRoleStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterRoleStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatementColumn.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatementColumn.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatementColumn.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTableStatementColumn.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTypeStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTypeStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTypeStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterTypeStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AlterViewStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthenticationStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthenticationStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthenticationStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthenticationStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthorizationStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthorizationStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthorizationStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/AuthorizationStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/Bound.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/Bound.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/Bound.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/Bound.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFProperties.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFProperties.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFProperties.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFProperties.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CFStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CQL3CasRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateFunctionStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateFunctionStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateFunctionStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateFunctionStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateKeyspaceStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateKeyspaceStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateKeyspaceStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateKeyspaceStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateRoleStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateRoleStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateRoleStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateRoleStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTriggerStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTriggerStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTriggerStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTriggerStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateTypeStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/CreateViewStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropAggregateStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropAggregateStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropAggregateStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropAggregateStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropFunctionStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropFunctionStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropFunctionStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropFunctionStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropIndexStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropKeyspaceStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropKeyspaceStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropKeyspaceStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropKeyspaceStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropRoleStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropRoleStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropRoleStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropRoleStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTableStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTableStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTableStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTableStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTriggerStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTriggerStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTriggerStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTriggerStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTypeStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTypeStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTypeStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropTypeStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropViewStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropViewStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropViewStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/DropViewStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantPermissionsStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantPermissionsStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantPermissionsStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantPermissionsStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantRoleStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantRoleStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantRoleStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/GrantRoleStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexPropDefs.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexPropDefs.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexPropDefs.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexPropDefs.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexTarget.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexTarget.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexTarget.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/IndexTarget.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/KeyspaceAttributes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/KeyspaceAttributes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/KeyspaceAttributes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/KeyspaceAttributes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListRolesStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListRolesStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListRolesStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListRolesStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListUsersStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListUsersStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListUsersStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ListUsersStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ParsedStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ParsedStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/ParsedStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/ParsedStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/PermissionsManagementStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/PermissionsManagementStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/PermissionsManagementStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/PermissionsManagementStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/PropertyDefinitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/PropertyDefinitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/PropertyDefinitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/PropertyDefinitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RequestValidations.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RequestValidations.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RequestValidations.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RequestValidations.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokePermissionsStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokePermissionsStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokePermissionsStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokePermissionsStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokeRoleStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokeRoleStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokeRoleStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RevokeRoleStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RoleManagementStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RoleManagementStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/RoleManagementStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/RoleManagementStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/StatementType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/StatementType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/StatementType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/StatementType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/TableAttributes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdatesCollector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdatesCollector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdatesCollector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UpdatesCollector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UseStatement.java b/external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UseStatement.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/cql3/statements/UseStatement.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/cql3/statements/UseStatement.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/AbstractBufferClusteringPrefix.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractBufferClusteringPrefix.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/AbstractBufferClusteringPrefix.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractBufferClusteringPrefix.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/AbstractClusteringPrefix.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractClusteringPrefix.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/AbstractClusteringPrefix.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractClusteringPrefix.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/AbstractReadCommandBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectories.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectories.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectories.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectories.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectoriesMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectoriesMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectoriesMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/BlacklistedDirectoriesMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/BufferClustering.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/BufferClustering.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/BufferClustering.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/BufferClustering.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/BufferDecoratedKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/BufferDecoratedKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/BufferDecoratedKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/BufferDecoratedKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/CBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/CBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/CBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/CBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/CachedHashDecoratedKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/CachedHashDecoratedKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/CachedHashDecoratedKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/CachedHashDecoratedKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClockAndCount.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClockAndCount.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClockAndCount.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClockAndCount.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Clusterable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Clusterable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Clusterable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Clusterable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Clustering.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Clustering.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Clustering.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Clustering.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBound.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBound.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBound.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBound.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundOrBoundary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundOrBoundary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundOrBoundary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundOrBoundary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringBoundary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringComparator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringComparator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringComparator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringComparator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringPrefix.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringPrefix.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ClusteringPrefix.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ClusteringPrefix.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStore.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnFamilyStoreMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ColumnIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ColumnIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ColumnIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Columns.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Columns.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Columns.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Columns.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/CompactTables.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/CompactTables.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/CompactTables.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/CompactTables.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Conflicts.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Conflicts.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Conflicts.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Conflicts.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ConsistencyLevel.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ConsistencyLevel.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ConsistencyLevel.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ConsistencyLevel.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/CounterMutation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/CounterMutation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/CounterMutation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/CounterMutation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/CounterMutationVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/CounterMutationVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/CounterMutationVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/CounterMutationVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DataRange.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DataRange.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DataRange.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DataRange.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DecoratedKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DecoratedKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DecoratedKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DecoratedKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DefinitionsUpdateVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DefinitionsUpdateVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DefinitionsUpdateVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DefinitionsUpdateVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DeletionInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DeletionInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DeletionPurger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionPurger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DeletionPurger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionPurger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/DeletionTime.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionTime.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/DeletionTime.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/DeletionTime.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Directories.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Directories.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Directories.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Directories.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/EmptyIterators.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/EmptyIterators.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/EmptyIterators.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/EmptyIterators.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/HintedHandOffManagerMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/IMutation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/IMutation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/IMutation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/IMutation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Keyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Keyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Keyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Keyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/KeyspaceNotDefinedException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/KeyspaceNotDefinedException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/KeyspaceNotDefinedException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/KeyspaceNotDefinedException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/LegacyLayout.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/LegacyLayout.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/LegacyLayout.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/LegacyLayout.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/LivenessInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/LivenessInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/LivenessInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/LivenessInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Memtable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Memtable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Memtable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Memtable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/MultiCBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/MultiCBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/MultiCBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/MultiCBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/MutableDeletionInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/MutableDeletionInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/MutableDeletionInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/MutableDeletionInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Mutation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Mutation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Mutation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Mutation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/MutationVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/MutationVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/MutationVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/MutationVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/NativeClustering.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/NativeClustering.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/NativeClustering.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/NativeClustering.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/NativeDecoratedKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/NativeDecoratedKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/NativeDecoratedKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/NativeDecoratedKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/PartitionColumns.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionColumns.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/PartitionColumns.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionColumns.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/PartitionPosition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionPosition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/PartitionPosition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionPosition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/PartitionRangeReadCommand.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionRangeReadCommand.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/PartitionRangeReadCommand.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/PartitionRangeReadCommand.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/PreHashedDecoratedKey.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/PreHashedDecoratedKey.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/PreHashedDecoratedKey.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/PreHashedDecoratedKey.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/RangeSliceVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeSliceVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/RangeSliceVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeSliceVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/RangeTombstone.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeTombstone.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/RangeTombstone.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeTombstone.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/RangeTombstoneList.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeTombstoneList.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/RangeTombstoneList.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/RangeTombstoneList.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadCommand.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadCommand.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadCommand.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadCommand.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadExecutionController.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadExecutionController.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadExecutionController.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadExecutionController.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadQuery.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadQuery.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadQuery.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadQuery.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadRepairVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadRepairVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadRepairVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadRepairVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/ReadResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/ReadResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/ReadResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/RowIndexEntry.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/RowIndexEntry.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/RowIndexEntry.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/RowIndexEntry.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SchemaCheckVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SchemaCheckVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SchemaCheckVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SchemaCheckVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SerializationHeader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SerializationHeader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SerializationHeader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SerializationHeader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Serializers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Serializers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Serializers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Serializers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SimpleBuilders.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SimpleBuilders.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SimpleBuilders.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SimpleBuilders.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SizeEstimatesRecorder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Slice.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Slice.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Slice.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Slice.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Slices.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Slices.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Slices.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Slices.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SnapshotCommand.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SnapshotCommand.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SnapshotCommand.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SnapshotCommand.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SnapshotDetailsTabularData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SnapshotDetailsTabularData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SnapshotDetailsTabularData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SnapshotDetailsTabularData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/StorageHook.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/StorageHook.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/StorageHook.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/StorageHook.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/SystemKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/SystemKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/SystemKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/SystemKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/TruncateResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/TruncateResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/TruncateResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/TruncateResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/TruncateVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/TruncateVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/TruncateVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/TruncateVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/Truncation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/Truncation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/Truncation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/Truncation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/TypeSizes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/TypeSizes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/TypeSizes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/TypeSizes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/UnfilteredDeserializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/UnfilteredDeserializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/UnfilteredDeserializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/UnfilteredDeserializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnFamilyException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnFamilyException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnFamilyException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/UnknownColumnFamilyException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/WindowsFailedSnapshotTracker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/WindowsFailedSnapshotTracker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/WindowsFailedSnapshotTracker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/WindowsFailedSnapshotTracker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/WriteResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/WriteResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/WriteResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/WriteResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/WriteType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/WriteType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/WriteType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/WriteType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/AbstractSSTableIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableReversedIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableReversedIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableReversedIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/columniterator/SSTableReversedIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/AbstractCommitLogService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/BatchCommitLogService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/BatchCommitLogService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/BatchCommitLogService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/BatchCommitLogService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLog.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLog.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLog.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLog.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogPosition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogPosition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogPosition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogPosition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReadHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReadHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReadHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReadHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerCDC.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerCDC.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerCDC.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerCDC.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerStandard.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerStandard.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerStandard.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentManagerStandard.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CompressedSegment.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CompressedSegment.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/CompressedSegment.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/CompressedSegment.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedFileSegmentInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedFileSegmentInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedFileSegmentInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedFileSegmentInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedSegment.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedSegment.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedSegment.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/EncryptedSegment.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/FileDirectSegment.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/FileDirectSegment.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/FileDirectSegment.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/FileDirectSegment.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/IntervalSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/IntervalSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/IntervalSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/IntervalSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/MemoryMappedSegment.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/PeriodicCommitLogService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/SimpleCachedBufferPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/SimpleCachedBufferPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/commitlog/SimpleCachedBufferPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/commitlog/SimpleCachedBufferPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/AbstractCompactionTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionController.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionController.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionController.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionController.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionHistoryTabularData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionHistoryTabularData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionHistoryTabularData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionHistoryTabularData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInterruptedException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInterruptedException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInterruptedException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionInterruptedException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionLogger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionLogger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionLogger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionLogger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionManagerMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/CompactionTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategyOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledCompactionTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/OperationType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/OperationType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/OperationType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/OperationType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Scrubber.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Scrubber.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Scrubber.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Scrubber.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategyOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategyOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategyOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategyOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategyOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Upgrader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Upgrader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Upgrader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Upgrader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Verifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Verifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/Verifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/Verifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/CompactionAwareWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/DefaultCompactionWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/DefaultCompactionWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/DefaultCompactionWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/DefaultCompactionWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MajorLeveledCompactionWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MajorLeveledCompactionWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MajorLeveledCompactionWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MajorLeveledCompactionWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MaxSSTableSizeWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MaxSSTableSizeWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MaxSSTableSizeWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/MaxSSTableSizeWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/SplittingSizeTieredCompactionWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/SplittingSizeTieredCompactionWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/SplittingSizeTieredCompactionWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/compaction/writers/SplittingSizeTieredCompactionWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/context/CounterContext.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/context/CounterContext.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/context/CounterContext.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/context/CounterContext.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/AbstractClusteringIndexFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/AbstractClusteringIndexFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/AbstractClusteringIndexFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/AbstractClusteringIndexFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexNamesFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexSliceFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexSliceFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexSliceFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ClusteringIndexSliceFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnSubselection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnSubselection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnSubselection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/ColumnSubselection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/DataLimits.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/DataLimits.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/DataLimits.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/DataLimits.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/RowFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/RowFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/RowFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/RowFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Helpers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Helpers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Helpers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Helpers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LifecycleTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogAwareFileLister.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogAwareFileLister.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogAwareFileLister.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogAwareFileLister.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogRecord.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplica.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplica.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplica.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplica.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplicaSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplicaSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplicaSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogReplicaSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableIntervalTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableIntervalTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableIntervalTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableIntervalTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/SSTableSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Tracker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Tracker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Tracker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/Tracker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/View.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/View.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/lifecycle/View.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/lifecycle/View.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AbstractType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AsciiType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AsciiType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/AsciiType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/AsciiType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/BooleanType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/BooleanType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/BooleanType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/BooleanType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ByteType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ByteType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ByteType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ByteType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/BytesType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/BytesType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/BytesType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/BytesType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CollectionType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CollectionType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CollectionType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CollectionType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ColumnToCollectionType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CompositeType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CompositeType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CompositeType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CompositeType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/CounterColumnType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DateType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DateType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DateType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DateType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DecimalType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DecimalType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DecimalType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DecimalType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DoubleType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DoubleType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DoubleType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DoubleType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/EmptyType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/EmptyType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/EmptyType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/EmptyType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/FloatType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/FloatType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/FloatType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/FloatType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/FrozenType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/FrozenType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/FrozenType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/FrozenType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/InetAddressType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/InetAddressType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/InetAddressType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/InetAddressType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/Int32Type.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/Int32Type.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/Int32Type.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/Int32Type.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/IntegerType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/IntegerType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/IntegerType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/IntegerType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ListType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ListType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ListType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ListType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/LongType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/LongType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/LongType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/LongType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/MapType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/MapType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/MapType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/MapType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/PartitionerDefinedOrder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ReversedType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ReversedType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ReversedType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ReversedType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/SetType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/SetType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/SetType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/SetType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ShortType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ShortType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/ShortType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/ShortType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/SimpleDateType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimestampType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimestampType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TimestampType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TimestampType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TupleType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TupleType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TupleType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TupleType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TypeParser.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TypeParser.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/TypeParser.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/TypeParser.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UTF8Type.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UTF8Type.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UTF8Type.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UTF8Type.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UUIDType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UUIDType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UUIDType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UUIDType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UserType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UserType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/marshal/UserType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/marshal/UserType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/ApproximateTime.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/ApproximateTime.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/ApproximateTime.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/ApproximateTime.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/ConstructionTime.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/ConstructionTime.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/ConstructionTime.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/ConstructionTime.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/Monitorable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/Monitorable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/Monitorable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/Monitorable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitorableImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitorableImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitorableImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitorableImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/monitoring/MonitoringTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractBTreePartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractUnfilteredPartitionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractUnfilteredPartitionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractUnfilteredPartitionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AbstractUnfilteredPartitionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/BasePartitionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/BasePartitionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/BasePartitionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/BasePartitionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedBTreePartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedBTreePartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedBTreePartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedBTreePartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedPartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedPartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedPartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/CachedPartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/FilteredPartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/FilteredPartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/FilteredPartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/FilteredPartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/ImmutableBTreePartition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/ImmutableBTreePartition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/ImmutableBTreePartition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/ImmutableBTreePartition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/Partition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/Partition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/Partition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/Partition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterators.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterators.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterators.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionIterators.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionStatisticsCollector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionStatisticsCollector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionStatisticsCollector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionStatisticsCollector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PurgeFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PurgeFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/PurgeFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/PurgeFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/SingletonUnfilteredPartitionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/SingletonUnfilteredPartitionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/SingletonUnfilteredPartitionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/SingletonUnfilteredPartitionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterators.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterators.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterators.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/partitions/UnfilteredPartitionIterators.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractCell.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractCell.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractCell.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractCell.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRangeTombstoneMarker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRangeTombstoneMarker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRangeTombstoneMarker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRangeTombstoneMarker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRow.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRow.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRow.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractRow.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractUnfilteredRowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractUnfilteredRowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractUnfilteredRowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/AbstractUnfilteredRowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/BTreeRow.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BTreeRow.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/BTreeRow.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BTreeRow.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/BaseRowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BaseRowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/BaseRowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BaseRowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/BufferCell.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BufferCell.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/BufferCell.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/BufferCell.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/Cell.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Cell.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/Cell.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Cell.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/CellPath.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/CellPath.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/CellPath.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/CellPath.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/Cells.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Cells.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/Cells.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Cells.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/ColumnData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/ColumnData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/ColumnData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/ColumnData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/ComplexColumnData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/ComplexColumnData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/ComplexColumnData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/ComplexColumnData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/CounterCells.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/CounterCells.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/CounterCells.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/CounterCells.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/EncodingStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/EncodingStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/EncodingStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/EncodingStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/LazilyInitializedUnfilteredRowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/LazilyInitializedUnfilteredRowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/LazilyInitializedUnfilteredRowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/LazilyInitializedUnfilteredRowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/NativeCell.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/NativeCell.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/NativeCell.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/NativeCell.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundMarker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundMarker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundMarker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundMarker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneBoundaryMarker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneMarker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneMarker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneMarker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RangeTombstoneMarker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/Row.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Row.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/Row.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Row.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowAndDeletionMergeIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowDiffListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowDiffListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowDiffListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowDiffListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterators.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterators.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterators.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/RowIterators.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/Rows.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Rows.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/Rows.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Rows.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/SerializationHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/SerializationHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/SerializationHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/SerializationHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/Unfiltered.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Unfiltered.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/Unfiltered.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/Unfiltered.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorWithLowerBound.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorWithLowerBound.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorWithLowerBound.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIteratorWithLowerBound.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/WithOnlyQueriedData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/WithOnlyQueriedData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/WithOnlyQueriedData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/WithOnlyQueriedData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/rows/WrappingUnfilteredRowIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/WrappingUnfilteredRowIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/rows/WrappingUnfilteredRowIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/rows/WrappingUnfilteredRowIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/BaseIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BaseIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/BaseIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BaseIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/BasePartitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BasePartitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/BasePartitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BasePartitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/BaseRows.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BaseRows.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/BaseRows.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/BaseRows.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/Filter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Filter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/Filter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Filter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredPartitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredPartitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredPartitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredPartitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredRows.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredRows.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredRows.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/FilteredRows.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/MoreContents.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MoreContents.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/MoreContents.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MoreContents.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/MorePartitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MorePartitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/MorePartitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MorePartitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/MoreRows.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MoreRows.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/MoreRows.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/MoreRows.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/Stack.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Stack.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/Stack.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Stack.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/StoppingTransformation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/Transformation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Transformation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/Transformation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/Transformation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredPartitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredPartitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredPartitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredPartitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredRows.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredRows.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredRows.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/transform/UnfilteredRows.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/TableViews.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/TableViews.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/TableViews.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/TableViews.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/View.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/View.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/View.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/View.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewUtils.java b/external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewUtils.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/db/view/ViewUtils.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/db/view/ViewUtils.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/AbstractBounds.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/AbstractBounds.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/AbstractBounds.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/AbstractBounds.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/BootStrapper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/BootStrapper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/BootStrapper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/BootStrapper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/Bounds.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/Bounds.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/Bounds.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/Bounds.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/ByteOrderedPartitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/ComparableObjectToken.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/ComparableObjectToken.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/ComparableObjectToken.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/ComparableObjectToken.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/ExcludingBounds.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/ExcludingBounds.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/ExcludingBounds.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/ExcludingBounds.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/IPartitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/IPartitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/IPartitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/IPartitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/IPartitionerDependentSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/IPartitionerDependentSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/IPartitionerDependentSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/IPartitionerDependentSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/IncludingExcludingBounds.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/LocalPartitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/LocalPartitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/LocalPartitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/LocalPartitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/Murmur3Partitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/RandomPartitioner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/RandomPartitioner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/RandomPartitioner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/RandomPartitioner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/Range.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/Range.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/Range.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/Range.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/RangeStreamer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/RangeStreamer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/RangeStreamer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/RangeStreamer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/RingPosition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/RingPosition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/RingPosition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/RingPosition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/Splitter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/Splitter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/Splitter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/Splitter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/StreamStateStore.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/StreamStateStore.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/StreamStateStore.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/StreamStateStore.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/Token.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/Token.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/Token.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/Token.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationAwareTokenAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationAwareTokenAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationAwareTokenAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationAwareTokenAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/ReplicationStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/dht/tokenallocator/TokenAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/AlreadyExistsException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/AlreadyExistsException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/AlreadyExistsException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/AlreadyExistsException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/AuthenticationException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/AuthenticationException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/AuthenticationException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/AuthenticationException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/CassandraException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/CassandraException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/CassandraException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/CassandraException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/ConfigurationException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ConfigurationException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/ConfigurationException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ConfigurationException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/ExceptionCode.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ExceptionCode.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/ExceptionCode.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ExceptionCode.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/FunctionExecutionException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/FunctionExecutionException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/FunctionExecutionException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/FunctionExecutionException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/InvalidRequestException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/InvalidRequestException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/InvalidRequestException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/InvalidRequestException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/IsBootstrappingException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/IsBootstrappingException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/IsBootstrappingException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/IsBootstrappingException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/OverloadedException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/OverloadedException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/OverloadedException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/OverloadedException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/PreparedQueryNotFoundException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/PreparedQueryNotFoundException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/PreparedQueryNotFoundException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/PreparedQueryNotFoundException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/ReadFailureException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ReadFailureException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/ReadFailureException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ReadFailureException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/ReadTimeoutException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ReadTimeoutException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/ReadTimeoutException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/ReadTimeoutException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/RepairException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RepairException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/RepairException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RepairException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestExecutionException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestExecutionException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestExecutionException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestExecutionException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestFailureException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestFailureException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestFailureException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestFailureException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestTimeoutException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestTimeoutException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestTimeoutException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestTimeoutException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestValidationException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestValidationException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/RequestValidationException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/RequestValidationException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/StartupException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/StartupException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/StartupException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/StartupException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/SyntaxException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/SyntaxException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/SyntaxException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/SyntaxException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/TransportException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/TransportException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/TransportException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/TransportException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/TruncateException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/TruncateException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/TruncateException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/TruncateException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/UnauthorizedException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/UnauthorizedException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/UnauthorizedException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/UnauthorizedException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/UnavailableException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/UnavailableException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/UnavailableException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/UnavailableException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/WriteFailureException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/WriteFailureException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/WriteFailureException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/WriteFailureException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/exceptions/WriteTimeoutException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/WriteTimeoutException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/exceptions/WriteTimeoutException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/exceptions/WriteTimeoutException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/ApplicationState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/ApplicationState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/ApplicationState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/ApplicationState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/EchoMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/EchoMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/EchoMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/EchoMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/EndpointState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/EndpointState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/EndpointState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/EndpointState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/FailureDetector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/FailureDetector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/FailureDetector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/FailureDetector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/FailureDetectorMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/FailureDetectorMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/FailureDetectorMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/FailureDetectorMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSyn.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSyn.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSyn.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSyn.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossipShutdownVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipShutdownVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossipShutdownVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossipShutdownVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/Gossiper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/Gossiper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/Gossiper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/Gossiper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/GossiperMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossiperMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/GossiperMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/GossiperMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/HeartBeatState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/HeartBeatState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/HeartBeatState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/HeartBeatState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/IEndpointStateChangeSubscriber.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetectionEventListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/IFailureDetector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/TokenSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/TokenSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/TokenSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/TokenSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/VersionGenerator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/VersionGenerator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/VersionGenerator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/VersionGenerator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/gms/VersionedValue.java b/external-tests/Cassandra/src/java/org/apache/cassandra/gms/VersionedValue.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/gms/VersionedValue.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/gms/VersionedValue.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ColumnFamilySplit.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/ConfigHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ConfigHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/ConfigHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ConfigHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/HadoopCompat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/HadoopCompat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/HadoopCompat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/HadoopCompat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/ReporterWrapper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ReporterWrapper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/ReporterWrapper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/ReporterWrapper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlConfigHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlConfigHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlConfigHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlConfigHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlInputFormat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlOutputFormat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlOutputFormat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlOutputFormat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlOutputFormat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/LimitedLocalNodeFirstLocalBalancingPolicy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/LimitedLocalNodeFirstLocalBalancingPolicy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/LimitedLocalNodeFirstLocalBalancingPolicy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hadoop/cql3/LimitedLocalNodeFirstLocalBalancingPolicy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/CompressedHintsWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/CompressedHintsWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/CompressedHintsWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/CompressedHintsWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/EncodedHintMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncodedHintMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/EncodedHintMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncodedHintMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/EncryptedHintsWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncryptedHintsWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/EncryptedHintsWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/EncryptedHintsWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/Hint.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/Hint.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/Hint.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/Hint.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsBuffer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsBuffer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsBuffer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsBuffer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsBufferPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsBufferPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsBufferPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsBufferPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsCatalog.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsCatalog.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsCatalog.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsCatalog.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDescriptor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDescriptor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDescriptor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDescriptor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatchTrigger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatcher.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatcher.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatcher.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsDispatcher.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsServiceMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsServiceMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsServiceMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsServiceMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsStore.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsStore.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsStore.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsStore.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsWriteExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsWriteExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsWriteExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsWriteExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/HintsWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/HintsWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/HintsWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/LegacyHintsMigrator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/hints/package-info.java b/external-tests/Cassandra/src/java/org/apache/cassandra/hints/package-info.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/hints/package-info.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/hints/package-info.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/Index.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/Index.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/Index.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/Index.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/IndexNotAvailableException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/IndexNotAvailableException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/IndexNotAvailableException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/IndexNotAvailableException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/IndexRegistry.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/IndexRegistry.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/IndexRegistry.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/IndexRegistry.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/SecondaryIndexManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/TargetParser.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/TargetParser.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/TargetParser.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/TargetParser.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexFunctions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexFunctions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexFunctions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexFunctions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexSearcher.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexSearcher.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexSearcher.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CassandraIndexSearcher.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/CollatedViewIndexBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CollatedViewIndexBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/CollatedViewIndexBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/CollatedViewIndexBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/IndexEntry.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/IndexEntry.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/IndexEntry.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/IndexEntry.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/ClusteringColumnIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/ClusteringColumnIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/ClusteringColumnIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/ClusteringColumnIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionEntryIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionEntryIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionEntryIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionEntryIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndexBase.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndexBase.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndexBase.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionKeyIndexBase.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionValueIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionValueIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionValueIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CollectionValueIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/PartitionKeyIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/PartitionKeyIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/PartitionKeyIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/PartitionKeyIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/RegularColumnIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/RegularColumnIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/composites/RegularColumnIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/composites/RegularColumnIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysSearcher.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysSearcher.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysSearcher.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/internal/keys/KeysSearcher.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndexBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndexBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndexBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SASIIndexBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/SSTableIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/Term.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/Term.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/Term.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/Term.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/TermIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/TermIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/TermIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/TermIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/AbstractAnalyzer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/AbstractAnalyzer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/AbstractAnalyzer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/AbstractAnalyzer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NoOpAnalyzer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NoOpAnalyzer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NoOpAnalyzer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NoOpAnalyzer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingAnalyzer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingAnalyzer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingAnalyzer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingAnalyzer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/NonTokenizingOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/SUPPLEMENTARY.jflex-macro b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/SUPPLEMENTARY.jflex-macro similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/SUPPLEMENTARY.jflex-macro rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/SUPPLEMENTARY.jflex-macro diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerImpl.jflex diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerInterface.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerInterface.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerInterface.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerInterface.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/StandardTokenizerOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/BasicResultFilters.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/BasicResultFilters.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/BasicResultFilters.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/BasicResultFilters.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/FilterPipelineTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmerFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmerFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmerFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmerFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmingFilters.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmingFilters.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmingFilters.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StemmingFilters.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFilters.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFilters.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFilters.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFilters.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/ColumnIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/ColumnIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/ColumnIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/ColumnIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/IndexMode.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/IndexMode.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/IndexMode.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/IndexMode.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/PrefixTermTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/PrefixTermTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/PrefixTermTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/PrefixTermTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/RangeTermTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/RangeTermTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/RangeTermTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/RangeTermTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/TermTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/TermTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/TermTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/TermTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/View.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/View.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/View.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/conf/view/View.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/AbstractTokenTreeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/AbstractTokenTreeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/AbstractTokenTreeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/AbstractTokenTreeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Descriptor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Descriptor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Descriptor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Descriptor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/DynamicTokenTreeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskBlock.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskBlock.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskBlock.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskBlock.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Token.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Token.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Token.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/Token.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/exceptions/TimeQuotaExceededException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/exceptions/TimeQuotaExceededException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/exceptions/TimeQuotaExceededException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/exceptions/TimeQuotaExceededException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/KeyRangeIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/MemIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/MemIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/MemIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/MemIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Expression.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Expression.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Expression.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Expression.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Operation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Operation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Operation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/Operation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/ByteTerm.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/ByteTerm.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/ByteTerm.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/ByteTerm.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/CharTerm.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/CharTerm.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/CharTerm.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/CharTerm.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IndexedTerm.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IndexedTerm.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IndexedTerm.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IndexedTerm.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IntegralSA.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IntegralSA.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IntegralSA.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/IntegralSA.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SA.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SA.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SA.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SA.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SuffixSA.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SuffixSA.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SuffixSA.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/SuffixSA.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/Term.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/Term.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/Term.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/Term.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/TermIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/TermIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/TermIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/sa/TermIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/AbstractIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/AbstractIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/AbstractIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/AbstractIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTerm.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTerm.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTerm.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTerm.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTermIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTermIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTermIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedTermIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedValue.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedValue.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedValue.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/CombinedValue.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/MappedBuffer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/MappedBuffer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/MappedBuffer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/MappedBuffer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/OnDiskIndexIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/OnDiskIndexIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/OnDiskIndexIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/OnDiskIndexIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/TypeUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/TypeUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/TypeUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/TypeUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractPatriciaTrie.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractPatriciaTrie.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractPatriciaTrie.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractPatriciaTrie.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractTrie.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractTrie.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractTrie.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/AbstractTrie.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Cursor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Cursor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Cursor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Cursor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/KeyAnalyzer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/KeyAnalyzer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/KeyAnalyzer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/KeyAnalyzer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Trie.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Trie.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Trie.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Trie.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Tries.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Tries.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Tries.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/sasi/utils/trie/Tries.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/transactions/CleanupTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/CleanupTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/transactions/CleanupTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/CleanupTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/transactions/CompactionTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/CompactionTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/transactions/CompactionTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/CompactionTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/transactions/IndexTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/IndexTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/transactions/IndexTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/IndexTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/index/transactions/UpdateTransaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/UpdateTransaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/index/transactions/UpdateTransaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/index/transactions/UpdateTransaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/FSError.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/FSError.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/FSError.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/FSError.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/FSErrorHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/FSErrorHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/FSErrorHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/FSErrorHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/FSReadError.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/FSReadError.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/FSReadError.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/FSReadError.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/FSWriteError.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/FSWriteError.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/FSWriteError.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/FSWriteError.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/ForwardingVersionedSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/ForwardingVersionedSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/ForwardingVersionedSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/ForwardingVersionedSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/ISSTableSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/ISSTableSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/ISSTableSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/ISSTableSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/ISerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/ISerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/ISerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/ISerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/IVersionedSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/IVersionedSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/IVersionedSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/IVersionedSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/BufferType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/BufferType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/BufferType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/BufferType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/CorruptBlockException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CorruptBlockException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/CorruptBlockException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/CorruptBlockException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/DeflateCompressor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/ICompressor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/ICompressor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/ICompressor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/ICompressor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/LZ4Compressor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/LZ4Compressor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/LZ4Compressor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/LZ4Compressor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/compress/SnappyCompressor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/AbstractSSTableSimpleWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/BloomFilterTracker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Component.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Component.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Component.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Component.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/CorruptSSTableException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/CorruptSSTableException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/CorruptSSTableException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/CorruptSSTableException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Descriptor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Descriptor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Descriptor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Descriptor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Downsampling.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Downsampling.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/Downsampling.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/Downsampling.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/ISSTableScanner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/ISSTableScanner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/ISSTableScanner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/ISSTableScanner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManagerMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManagerMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManagerMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryManagerMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/IndexSummaryRedistribution.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/KeyIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/KeyIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/KeyIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/KeyIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/ReducingKeyIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableIdentityIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableMultiWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableMultiWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableMultiWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableMultiWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableSimpleWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SimpleSSTableMultiWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SimpleSSTableMultiWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SimpleSSTableMultiWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SimpleSSTableMultiWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SnapshotDeletingTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SnapshotDeletingTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/SnapshotDeletingTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/SnapshotDeletingTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/RangeAwareSSTableWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/RangeAwareSSTableWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/RangeAwareSSTableWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/RangeAwareSSTableWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFlushObserver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFlushObserver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFlushObserver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFlushObserver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFormat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFormat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFormat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableFormat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/SSTableWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/Version.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/Version.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/Version.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/Version.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigFormat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/CompactionMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/CompactionMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/CompactionMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/CompactionMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataComponentSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataComponentSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataComponentSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataComponentSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/IMetadataSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/LegacyMetadataSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/LegacyMetadataSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/LegacyMetadataSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/LegacyMetadataSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataComponent.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataComponent.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataComponent.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataComponent.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/MetadataType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/ValidationMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/ValidationMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/ValidationMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/sstable/metadata/ValidationMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/AbstractReaderFileProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/AbstractReaderFileProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/AbstractReaderFileProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/AbstractReaderFileProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferManagingRebufferer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferManagingRebufferer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferManagingRebufferer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferManagingRebufferer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferedDataOutputStreamPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BufferedSegmentedFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/BytesReadTracker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BytesReadTracker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/BytesReadTracker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/BytesReadTracker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ChannelProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChannelProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ChannelProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChannelProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksumWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksumWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksumWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksumWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedSequentialWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedSequentialWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedSequentialWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChecksummedSequentialWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ChunkReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChunkReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ChunkReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ChunkReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/CompressedSegmentedFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataInputBuffer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataInputBuffer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataInputBuffer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataInputBuffer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataInputPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataInputPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataInputPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataInputPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputBufferFixed.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputStreamPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputStreamPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputStreamPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataOutputStreamPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/DataPosition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataPosition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/DataPosition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/DataPosition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/FastByteArrayInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FastByteArrayInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/FastByteArrayInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FastByteArrayInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/FileDataInput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileDataInput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/FileDataInput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileDataInput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/FileSegmentInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileSegmentInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/FileSegmentInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileSegmentInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/FileUtils.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileUtils.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/FileUtils.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/FileUtils.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ICompressedFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ICompressedFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ICompressedFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ICompressedFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/LengthAvailableInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/LengthAvailableInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/LengthAvailableInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/LengthAvailableInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/LimitingRebufferer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/LimitingRebufferer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/LimitingRebufferer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/LimitingRebufferer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/Memory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/Memory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/Memory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/Memory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/MemoryInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MemoryInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/MemoryInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MemoryInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/MemoryOutputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MemoryOutputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/MemoryOutputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MemoryOutputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/MmapRebufferer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmapRebufferer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/MmapRebufferer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmapRebufferer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/MmappedRegions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmappedRegions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/MmappedRegions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmappedRegions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/MmappedSegmentedFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmappedSegmentedFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/MmappedSegmentedFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/MmappedSegmentedFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/NIODataInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/NIODataInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/NIODataInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/NIODataInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/RandomAccessReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RandomAccessReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/RandomAccessReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RandomAccessReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/ReaderFileProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ReaderFileProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/ReaderFileProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/ReaderFileProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/Rebufferer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/Rebufferer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/Rebufferer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/Rebufferer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/RebuffererFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RebuffererFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/RebuffererFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RebuffererFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/RebufferingInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RebufferingInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/RebufferingInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RebufferingInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInputStreamPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInputStreamPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInputStreamPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/RewindableDataInputStreamPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemoryWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemoryWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemoryWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SafeMemoryWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SegmentedFile.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SegmentedFile.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SegmentedFile.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SegmentedFile.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriterOption.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriterOption.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriterOption.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SequentialWriterOption.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/SimpleChunkReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SimpleChunkReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/SimpleChunkReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/SimpleChunkReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/TrackedDataInputPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/TrackedDataInputPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/TrackedDataInputPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/TrackedDataInputPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/TrackedInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/TrackedInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/TrackedInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/TrackedInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/UnbufferedDataOutputStreamPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/UnbufferedDataOutputStreamPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/UnbufferedDataOutputStreamPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/UnbufferedDataOutputStreamPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/io/util/WrappedDataOutputStreamPlus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/io/util/WrappedDataOutputStreamPlus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/io/util/WrappedDataOutputStreamPlus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/io/util/WrappedDataOutputStreamPlus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractEndpointSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractEndpointSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractEndpointSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractEndpointSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractNetworkTopologySnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractNetworkTopologySnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractNetworkTopologySnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractNetworkTopologySnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/CloudstackSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/CloudstackSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/CloudstackSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/CloudstackSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitchMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitchMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitchMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/DynamicEndpointSnitchMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/Ec2Snitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/Ec2Snitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/Ec2Snitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/Ec2Snitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfoMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfoMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfoMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/EndpointSnitchInfoMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/GoogleCloudSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/GoogleCloudSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/GoogleCloudSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/GoogleCloudSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/GossipingPropertyFileSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/GossipingPropertyFileSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/GossipingPropertyFileSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/GossipingPropertyFileSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/IEndpointSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/IEndpointSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/IEndpointSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/IEndpointSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/ILatencySubscriber.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/ILatencySubscriber.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/ILatencySubscriber.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/ILatencySubscriber.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/LocalStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/LocalStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/LocalStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/LocalStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/PendingRangeMaps.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/PendingRangeMaps.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/PendingRangeMaps.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/PendingRangeMaps.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/RackInferringSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/RackInferringSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/RackInferringSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/RackInferringSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/SeedProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/SeedProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/SeedProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/SeedProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleSeedProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleSnitch.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleSnitch.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleSnitch.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleSnitch.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleStrategy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleStrategy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/SimpleStrategy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/SimpleStrategy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/SnitchProperties.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/SnitchProperties.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/SnitchProperties.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/SnitchProperties.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/locator/TokenMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/locator/TokenMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/locator/TokenMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/locator/TokenMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/BufferPoolMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/BufferPoolMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/BufferPoolMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/BufferPoolMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CASClientRequestMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CQLMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CQLMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CQLMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CQLMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CacheMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CacheMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CacheMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CacheMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CacheMissMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CacheMissMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CacheMissMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CacheMissMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ClearableHistogram.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClearableHistogram.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ClearableHistogram.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClearableHistogram.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ClientMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClientMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ClientMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClientMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ClientRequestMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClientRequestMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ClientRequestMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ClientRequestMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CommitLogMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CommitLogMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CommitLogMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CommitLogMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/CompactionMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CompactionMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/CompactionMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/CompactionMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ConnectionMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ConnectionMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ConnectionMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ConnectionMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DecayingEstimatedHistogramReservoir.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/DefaultNameFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DefaultNameFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/DefaultNameFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DefaultNameFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/DroppedMessageMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/HintedHandoffMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/HintsServiceMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/HintsServiceMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/HintsServiceMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/HintsServiceMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/LatencyMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/LatencyMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/LatencyMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/LatencyMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/MessagingMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/MessagingMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/MessagingMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/MessagingMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/MetricNameFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/MetricNameFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/MetricNameFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/MetricNameFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ReadRepairMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/RestorableMeter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/RestorableMeter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/RestorableMeter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/RestorableMeter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/SEPMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/SEPMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/SEPMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/SEPMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/StorageMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/StorageMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/StorageMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/StorageMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/StreamingMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/StreamingMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/StreamingMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/StreamingMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/TableMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/TableMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/TableMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/TableMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetricNameFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetricNameFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetricNameFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetricNameFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ThreadPoolMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/metrics/ViewWriteMetrics.java b/external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ViewWriteMetrics.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/metrics/ViewWriteMetrics.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/metrics/ViewWriteMetrics.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/AsyncOneResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/AsyncOneResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/AsyncOneResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/AsyncOneResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/CallbackInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/CallbackInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/CallbackInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/CallbackInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/CompactEndpointSerializationHelper.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallbackWithFailure.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallbackWithFailure.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallbackWithFailure.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IAsyncCallbackWithFailure.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IMessageSink.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IMessageSink.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IMessageSink.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IMessageSink.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/IncomingTcpConnection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/IncomingTcpConnection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/IncomingTcpConnection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/IncomingTcpConnection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/MessageDeliveryTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageDeliveryTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/MessageDeliveryTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageDeliveryTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/MessageIn.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageIn.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/MessageIn.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageIn.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/MessageOut.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageOut.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/MessageOut.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/MessageOut.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/MessagingService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/MessagingService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/MessagingService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/MessagingService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/MessagingServiceMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/MessagingServiceMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/MessagingServiceMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/MessagingServiceMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/OutboundTcpConnectionPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/ResponseVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/ResponseVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/ResponseVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/ResponseVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/net/WriteCallbackInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/net/WriteCallbackInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/net/WriteCallbackInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/net/WriteCallbackInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/INotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/INotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/INotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/INotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/INotificationConsumer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/INotificationConsumer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/INotificationConsumer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/INotificationConsumer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableDiscardedNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableDiscardedNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableDiscardedNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableDiscardedNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableRenewedNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableRenewedNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableRenewedNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableRenewedNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableSwitchedNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableSwitchedNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/MemtableSwitchedNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/MemtableSwitchedNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableAddedNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableAddedNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableAddedNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableAddedNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableDeletingNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableDeletingNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableDeletingNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableDeletingNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableListChangedNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableListChangedNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableListChangedNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableListChangedNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableRepairStatusChanged.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableRepairStatusChanged.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/SSTableRepairStatusChanged.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/SSTableRepairStatusChanged.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/notifications/TruncationNotification.java b/external-tests/Cassandra/src/java/org/apache/cassandra/notifications/TruncationNotification.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/notifications/TruncationNotification.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/notifications/TruncationNotification.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/AnticompactionTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/AnticompactionTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/AnticompactionTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/AnticompactionTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/LocalSyncTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/LocalSyncTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/LocalSyncTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/LocalSyncTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/NodePair.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/NodePair.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/NodePair.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/NodePair.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RemoteSyncTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RemoteSyncTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RemoteSyncTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RemoteSyncTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairJob.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairJob.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairJob.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairJob.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairJobDesc.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairJobDesc.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairJobDesc.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairJobDesc.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairParallelism.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairParallelism.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairParallelism.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairParallelism.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairResult.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairResult.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairResult.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairResult.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairRunnable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairRunnable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairRunnable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairRunnable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairSession.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairSession.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairSession.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairSession.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/RepairSessionResult.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairSessionResult.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/RepairSessionResult.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/RepairSessionResult.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/SnapshotTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/SnapshotTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/SnapshotTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/SnapshotTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/StreamingRepairTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/StreamingRepairTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/StreamingRepairTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/StreamingRepairTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/SyncStat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/SyncStat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/SyncStat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/SyncStat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/SyncTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/SyncTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/SyncTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/SyncTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/TreeResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/TreeResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/TreeResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/TreeResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/ValidationTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/ValidationTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/ValidationTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/ValidationTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/Validator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/Validator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/Validator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/Validator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/AnticompactionRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/AnticompactionRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/AnticompactionRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/AnticompactionRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/CleanupMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/CleanupMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/CleanupMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/CleanupMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/PrepareMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairOption.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairOption.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairOption.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/RepairOption.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SnapshotMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SnapshotMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SnapshotMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SnapshotMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncComplete.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncComplete.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncComplete.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncComplete.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/SyncRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationComplete.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationComplete.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationComplete.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationComplete.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/repair/messages/ValidationRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/scheduler/IRequestScheduler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/IRequestScheduler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/scheduler/IRequestScheduler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/IRequestScheduler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/scheduler/NoScheduler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/NoScheduler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/scheduler/NoScheduler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/NoScheduler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/RoundRobinScheduler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/scheduler/WeightedQueue.java b/external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/WeightedQueue.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/scheduler/WeightedQueue.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/scheduler/WeightedQueue.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/CQLTypeParser.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/CQLTypeParser.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/CQLTypeParser.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/CQLTypeParser.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/CachingParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/CachingParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/CachingParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/CachingParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/CompactionParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/CompactionParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/CompactionParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/CompactionParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/CompressionParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/CompressionParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/CompressionParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/CompressionParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Functions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Functions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Functions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Functions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/IndexMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/IndexMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/IndexMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/IndexMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Indexes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Indexes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Indexes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Indexes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/KeyspaceParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Keyspaces.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Keyspaces.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Keyspaces.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Keyspaces.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/LegacySchemaMigrator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/LegacySchemaMigrator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/LegacySchemaMigrator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/LegacySchemaMigrator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/ReplicationParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/ReplicationParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/ReplicationParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/ReplicationParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/SchemaKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/SchemaKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/SchemaKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/SchemaKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/SpeculativeRetryParam.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/SpeculativeRetryParam.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/SpeculativeRetryParam.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/SpeculativeRetryParam.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/TableParams.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/TableParams.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/TableParams.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/TableParams.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Tables.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Tables.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Tables.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Tables.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/TriggerMetadata.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/TriggerMetadata.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/TriggerMetadata.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/TriggerMetadata.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Triggers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Triggers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Triggers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Triggers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Types.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Types.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Types.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Types.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/UnknownIndexException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/UnknownIndexException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/UnknownIndexException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/UnknownIndexException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/schema/Views.java b/external-tests/Cassandra/src/java/org/apache/cassandra/schema/Views.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/schema/Views.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/schema/Views.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/CipherFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/CipherFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/CipherFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/CipherFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/EncryptionContext.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/EncryptionContext.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/EncryptionContext.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/EncryptionContext.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/EncryptionUtils.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/EncryptionUtils.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/EncryptionUtils.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/EncryptionUtils.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/JKSKeyProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/JKSKeyProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/JKSKeyProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/JKSKeyProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/KeyProvider.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/KeyProvider.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/KeyProvider.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/KeyProvider.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/security/SSLFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/security/SSLFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/security/SSLFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/security/SSLFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/AbstractTextSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/AsciiSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/AsciiSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/AsciiSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/AsciiSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/BooleanSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/BooleanSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/BooleanSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/BooleanSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/ByteSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ByteSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/ByteSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ByteSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/BytesSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/BytesSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/BytesSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/BytesSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/CollectionSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/CollectionSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/CollectionSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/CollectionSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/CounterSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/CounterSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/CounterSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/CounterSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/DecimalSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/DecimalSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/DecimalSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/DecimalSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/DoubleSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/DoubleSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/DoubleSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/DoubleSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/EmptySerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/EmptySerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/EmptySerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/EmptySerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/FloatSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/FloatSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/FloatSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/FloatSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/InetAddressSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/Int32Serializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/Int32Serializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/Int32Serializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/Int32Serializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/IntegerSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/IntegerSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/IntegerSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/IntegerSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/ListSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ListSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/ListSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ListSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/LongSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/LongSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/LongSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/LongSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/MapSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/MapSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/MapSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/MapSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/MarshalException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/MarshalException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/MarshalException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/MarshalException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/SetSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/SetSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/SetSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/SetSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/ShortSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ShortSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/ShortSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/ShortSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/SimpleDateSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/SimpleDateSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/SimpleDateSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/SimpleDateSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/TimeSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimeSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/TimeSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimeSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimeUUIDSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/TimestampSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimestampSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/TimestampSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TimestampSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/TypeSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TypeSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/TypeSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/TypeSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/UTF8Serializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/UTF8Serializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/UTF8Serializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/UTF8Serializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/serializers/UUIDSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/serializers/UUIDSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/serializers/UUIDSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/serializers/UUIDSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/AbstractReadExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/AbstractReadExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/AbstractReadExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/AbstractReadExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/ActiveRepairService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/ActiveRepairService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/ActiveRepairService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/ActiveRepairService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/AsyncRepairCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/AsyncRepairCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/AsyncRepairCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/AsyncRepairCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/BatchlogResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/BatchlogResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/BatchlogResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/BatchlogResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/CASRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/CASRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/CASRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/CASRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/CacheService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/CacheService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/CacheService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/CacheService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/CacheServiceMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/CacheServiceMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/CacheServiceMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/CacheServiceMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/CassandraDaemon.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/CassandraDaemon.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/CassandraDaemon.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/CassandraDaemon.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/ClientState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/ClientState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/ClientState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/ClientState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/ClientWarn.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/ClientWarn.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/ClientWarn.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/ClientWarn.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DataResolver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DataResolver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DataResolver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DataResolver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DefaultFSErrorHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DefaultFSErrorHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DefaultFSErrorHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DefaultFSErrorHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DigestMismatchException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DigestMismatchException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DigestMismatchException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DigestMismatchException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/DigestResolver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/DigestResolver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/DigestResolver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/DigestResolver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/EchoVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/EchoVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/EchoVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/EchoVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/EmbeddedCassandraService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/GCInspector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/GCInspector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/GCInspector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/GCInspector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/GCInspectorMXBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/GCInspectorMXBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/GCInspectorMXBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/GCInspectorMXBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/IEndpointLifecycleSubscriber.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/IEndpointLifecycleSubscriber.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/IEndpointLifecycleSubscriber.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/IEndpointLifecycleSubscriber.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/LoadBroadcaster.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/LoadBroadcaster.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/LoadBroadcaster.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/LoadBroadcaster.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/MigrationListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/MigrationListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/MigrationManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/MigrationManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/MigrationTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/MigrationTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/MigrationTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/NativeAccessMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/NativeAccessMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/NativeAccessMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/NativeAccessMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/NativeTransportService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/NativeTransportService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/NativeTransportService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/NativeTransportService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/PendingRangeCalculatorService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/PendingRangeCalculatorService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/PendingRangeCalculatorService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/PendingRangeCalculatorService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/QueryState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/QueryState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/QueryState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/QueryState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/ReadCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/ReadCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/ReadCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/ReadCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/ResponseResolver.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/ResponseResolver.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/ResponseResolver.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/ResponseResolver.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/SnapshotVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StartupCheck.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StartupCheck.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StartupCheck.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StartupCheck.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StartupChecks.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StartupChecks.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StartupChecks.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StartupChecks.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StorageProxy.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageProxy.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StorageProxy.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageProxy.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StorageProxyMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageProxyMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StorageProxyMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageProxyMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StorageService.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageService.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StorageService.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageService.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageServiceMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/StorageServiceMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/StorageServiceMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/TruncateResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/TruncateResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/TruncateResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/TruncateResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/WriteResponseHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/WriteResponseHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/WriteResponseHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/WriteResponseHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/AbstractQueryPager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/MultiPartitionPager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/PagingState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/PagingState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/PagingState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/PagingState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/PartitionRangeQueryPager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/PartitionRangeQueryPager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/PartitionRangeQueryPager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/PartitionRangeQueryPager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPagers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPagers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPagers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/QueryPagers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/pager/SinglePartitionPager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/SinglePartitionPager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/pager/SinglePartitionPager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/pager/SinglePartitionPager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/AbstractPaxosCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/AbstractPaxosCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/AbstractPaxosCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/AbstractPaxosCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/Commit.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/Commit.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/Commit.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/Commit.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/CommitVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/CommitVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/CommitVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/CommitVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PaxosState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PaxosState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PaxosState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PaxosState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/PrepareVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeCallback.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeCallback.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeCallback.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeCallback.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/service/paxos/ProposeVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/ConnectionHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ConnectionHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/ConnectionHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ConnectionHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/DefaultConnectionFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/DefaultConnectionFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/DefaultConnectionFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/DefaultConnectionFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/ProgressInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ProgressInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/ProgressInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ProgressInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/ReplicationFinishedVerbHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ReplicationFinishedVerbHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/ReplicationFinishedVerbHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/ReplicationFinishedVerbHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/SessionInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/SessionInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/SessionInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/SessionInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamConnectionFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamConnectionFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamConnectionFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamConnectionFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamCoordinator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamCoordinator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamCoordinator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamCoordinator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamEvent.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamEvent.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamEvent.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamEvent.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamEventHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamEventHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamEventHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamEventHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamHook.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamHook.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamHook.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamHook.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamManagerMBean.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamManagerMBean.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamManagerMBean.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamManagerMBean.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamPlan.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamPlan.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamPlan.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamPlan.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamReceiveTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamReceiveTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamReceiveTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamReceiveTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamRequest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamRequest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamRequest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamRequest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamResultFuture.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamResultFuture.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamResultFuture.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamResultFuture.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamSession.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamSession.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamSession.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamSession.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamSummary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamSummary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamSummary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamSummary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamTransferTask.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamTransferTask.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamTransferTask.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamTransferTask.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/StreamWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/StreamWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedInputStream.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamReader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamReader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamReader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamReader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamWriter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamWriter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamWriter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressedStreamWriter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressionInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressionInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressionInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/compress/CompressionInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamEventJMXNotifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamEventJMXNotifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamEventJMXNotifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamEventJMXNotifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamStateCompositeData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamStateCompositeData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamStateCompositeData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamStateCompositeData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamSummaryCompositeData.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamSummaryCompositeData.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamSummaryCompositeData.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/management/StreamSummaryCompositeData.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/CompleteMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/CompleteMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/CompleteMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/CompleteMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/FileMessageHeader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/IncomingFileMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/PrepareMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/PrepareMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/PrepareMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/PrepareMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/ReceivedMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/ReceivedMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/ReceivedMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/ReceivedMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/RetryMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/RetryMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/RetryMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/RetryMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/SessionFailedMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/SessionFailedMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/SessionFailedMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/SessionFailedMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamInitMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamInitMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamInitMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamInitMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/CassandraServer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CassandraServer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/CassandraServer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CassandraServer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CustomTNonBlockingServer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ITransportFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ITransportFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ITransportFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ITransportFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/SSLTransportFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/SSLTransportFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/SSLTransportFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/SSLTransportFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomNonblockingServerSocket.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomServerSocket.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomServerSocket.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomServerSocket.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomServerSocket.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomSocket.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomSocket.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TCustomSocket.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TCustomSocket.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TFramedTransportFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TFramedTransportFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TFramedTransportFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TFramedTransportFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/THsHaDisruptorServer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/THsHaDisruptorServer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/THsHaDisruptorServer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/THsHaDisruptorServer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TServerCustomFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TServerCustomFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TServerCustomFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TServerCustomFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/TServerFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TServerFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/TServerFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/TServerFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftClientState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftClientState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftClientState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftClientState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftConversion.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftConversion.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftConversion.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftConversion.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftResultsMerger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftResultsMerger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftResultsMerger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftResultsMerger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftServer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftServer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftServer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftServer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftSessionManager.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftValidation.java b/external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftValidation.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/thrift/ThriftValidation.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/thrift/ThriftValidation.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/AbstractJmxClient.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/AbstractJmxClient.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/AbstractJmxClient.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/AbstractJmxClient.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/BootstrapMonitor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/BootstrapMonitor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/BootstrapMonitor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/BootstrapMonitor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadConnectionFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadConnectionFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadConnectionFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadConnectionFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoadException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/BulkLoader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/BulkLoader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/GetVersion.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/GetVersion.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/GetVersion.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/GetVersion.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/JsonTransformer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/JsonTransformer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/JsonTransformer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/JsonTransformer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/LoaderOptions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/LoaderOptions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/LoaderOptions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/LoaderOptions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/NodeProbe.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/NodeProbe.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/NodeProbe.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/NodeProbe.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/NodeTool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/NodeTool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/NodeTool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/NodeTool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/RepairRunner.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/RepairRunner.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/RepairRunner.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/RepairRunner.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableExpiredBlockers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableExport.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableExport.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableExport.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableExport.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableLevelResetter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableLevelResetter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableLevelResetter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableLevelResetter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/SSTableRepairedAtSetter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneScrubber.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneScrubber.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneScrubber.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneScrubber.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSplitter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSplitter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSplitter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneSplitter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneUpgrader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneUpgrader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneUpgrader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneUpgrader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneVerifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneVerifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/StandaloneVerifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/StandaloneVerifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/Util.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/Util.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/Util.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/Util.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Assassinate.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Assassinate.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Assassinate.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Assassinate.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/BootstrapResume.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/BootstrapResume.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/BootstrapResume.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/BootstrapResume.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfHistograms.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfHistograms.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfHistograms.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfHistograms.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CfStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Cleanup.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Cleanup.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Cleanup.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Cleanup.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ClearSnapshot.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Compact.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Compact.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Compact.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Compact.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionHistory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionHistory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionHistory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionHistory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/CompactionStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Decommission.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Decommission.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Decommission.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Decommission.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeCluster.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeCluster.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeCluster.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeCluster.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeRing.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeRing.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeRing.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DescribeRing.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableAutoCompaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableAutoCompaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableAutoCompaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableAutoCompaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBackup.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBackup.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBackup.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBackup.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBinary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBinary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBinary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableBinary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableGossip.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableGossip.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableGossip.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableGossip.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHandoff.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHandoff.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHandoff.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHandoff.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHintsForDC.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHintsForDC.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHintsForDC.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableHintsForDC.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableThrift.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableThrift.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableThrift.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/DisableThrift.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Drain.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Drain.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Drain.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Drain.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableAutoCompaction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableAutoCompaction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableAutoCompaction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableAutoCompaction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBackup.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBackup.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBackup.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBackup.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBinary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBinary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBinary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableBinary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableGossip.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableGossip.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableGossip.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableGossip.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHandoff.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHandoff.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHandoff.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHandoff.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHintsForDC.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHintsForDC.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHintsForDC.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableHintsForDC.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableThrift.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableThrift.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableThrift.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/EnableThrift.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/FailureDetectorInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/FailureDetectorInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/FailureDetectorInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/FailureDetectorInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Flush.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Flush.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Flush.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Flush.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GcStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GcStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GcStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GcStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThreshold.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThreshold.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThreshold.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThreshold.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetCompactionThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetEndpoints.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetEndpoints.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetEndpoints.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetEndpoints.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetInterDCStreamThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetLoggingLevels.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetLoggingLevels.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetLoggingLevels.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetLoggingLevels.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetSSTables.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetSSTables.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetSSTables.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetSSTables.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetStreamThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetStreamThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetStreamThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetStreamThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTimeout.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTimeout.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTimeout.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTimeout.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTraceProbability.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTraceProbability.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTraceProbability.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GetTraceProbability.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GossipInfo.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GossipInfo.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GossipInfo.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/GossipInfo.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/HostStat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/HostStat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/HostStat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/HostStat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Info.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Info.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Info.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Info.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateCounterCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateCounterCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateCounterCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateCounterCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateKeyCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateKeyCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateKeyCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateKeyCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateRowCache.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateRowCache.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateRowCache.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/InvalidateRowCache.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Join.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Join.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Join.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Join.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ListSnapshots.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ListSnapshots.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ListSnapshots.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ListSnapshots.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Move.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Move.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Move.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Move.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/NetStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/NetStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/NetStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/NetStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/PauseHandoff.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/PauseHandoff.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/PauseHandoff.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/PauseHandoff.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ProxyHistograms.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ProxyHistograms.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ProxyHistograms.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ProxyHistograms.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RangeKeySample.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RangeKeySample.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RangeKeySample.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RangeKeySample.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Rebuild.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Rebuild.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Rebuild.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Rebuild.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RebuildIndex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RebuildIndex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RebuildIndex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RebuildIndex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Refresh.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Refresh.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Refresh.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Refresh.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RefreshSizeEstimates.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RefreshSizeEstimates.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RefreshSizeEstimates.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RefreshSizeEstimates.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReloadTriggers.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReloadTriggers.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReloadTriggers.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReloadTriggers.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RelocateSSTables.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RelocateSSTables.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RelocateSSTables.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RelocateSSTables.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RemoveNode.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RemoveNode.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RemoveNode.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/RemoveNode.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Repair.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Repair.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Repair.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Repair.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReplayBatchlog.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReplayBatchlog.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReplayBatchlog.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ReplayBatchlog.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResetLocalSchema.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResetLocalSchema.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResetLocalSchema.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResetLocalSchema.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResumeHandoff.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResumeHandoff.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResumeHandoff.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ResumeHandoff.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Ring.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Ring.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Ring.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Ring.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Scrub.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Scrub.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Scrub.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Scrub.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheCapacity.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheCapacity.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheCapacity.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheCapacity.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheKeysToSave.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheKeysToSave.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheKeysToSave.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCacheKeysToSave.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThreshold.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThreshold.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThreshold.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThreshold.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetCompactionThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHintedHandoffThrottleInKB.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHostStat.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHostStat.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHostStat.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetHostStat.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetInterDCStreamThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetLoggingLevel.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetLoggingLevel.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetLoggingLevel.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetLoggingLevel.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetStreamThroughput.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetStreamThroughput.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetStreamThroughput.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetStreamThroughput.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTimeout.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTimeout.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTimeout.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTimeout.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTraceProbability.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTraceProbability.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTraceProbability.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/SetTraceProbability.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Snapshot.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Snapshot.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Snapshot.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Snapshot.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Status.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Status.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Status.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Status.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBackup.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBackup.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBackup.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBackup.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBinary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBinary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBinary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusBinary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusGossip.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusGossip.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusGossip.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusGossip.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusHandoff.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusHandoff.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusHandoff.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusHandoff.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusThrift.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusThrift.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusThrift.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StatusThrift.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Stop.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Stop.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Stop.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Stop.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/StopDaemon.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableHistograms.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableHistograms.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableHistograms.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableHistograms.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TableStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TopPartitions.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TopPartitions.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TopPartitions.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TopPartitions.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TpStats.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TpStats.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TpStats.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TpStats.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TruncateHints.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TruncateHints.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TruncateHints.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/TruncateHints.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/UpgradeSSTable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/UpgradeSSTable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/UpgradeSSTable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/UpgradeSSTable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Verify.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Verify.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Verify.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Verify.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Version.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Version.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Version.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/Version.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ViewBuildStatus.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ViewBuildStatus.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ViewBuildStatus.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/ViewBuildStatus.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/formatter/TableBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/formatter/TableBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/formatter/TableBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/formatter/TableBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsHolder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsHolder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsHolder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsHolder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsPrinter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsPrinter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsPrinter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsPrinter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsTable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsTable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsTable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/StatsTable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsPrinter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsPrinter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsPrinter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsPrinter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/ExpiredTraceState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/ExpiredTraceState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/ExpiredTraceState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/ExpiredTraceState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceKeyspace.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceKeyspace.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceKeyspace.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceKeyspace.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceState.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceState.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceState.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceState.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceStateImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceStateImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/TraceStateImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TraceStateImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/Tracing.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/Tracing.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/Tracing.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/Tracing.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/tracing/TracingImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TracingImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/tracing/TracingImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/tracing/TracingImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/CBCodec.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/CBCodec.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/CBCodec.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/CBCodec.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/CBUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/CBUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/CBUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/CBUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Client.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Client.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Client.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Client.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Connection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Connection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Connection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Connection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/ConnectionLimitHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/ConnectionLimitHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/ConnectionLimitHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/ConnectionLimitHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/DataType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/DataType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/DataType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/DataType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Event.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Event.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Event.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Event.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Frame.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Frame.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Frame.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Frame.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/FrameCompressor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/FrameCompressor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/FrameCompressor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/FrameCompressor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Message.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Message.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Message.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Message.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/OptionCodec.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/OptionCodec.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/OptionCodec.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/OptionCodec.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/ProtocolException.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/ProtocolException.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/ProtocolException.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/ProtocolException.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/RequestThreadPoolExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/RequestThreadPoolExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/RequestThreadPoolExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/RequestThreadPoolExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/Server.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/Server.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/Server.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/Server.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/ServerConnection.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/ServerConnection.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/ServerConnection.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/ServerConnection.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/ServerError.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/ServerError.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/ServerError.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/ServerError.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/SimpleClient.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/SimpleClient.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/SimpleClient.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/SimpleClient.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthChallenge.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthChallenge.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthChallenge.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthChallenge.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthResponse.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthResponse.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthResponse.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthResponse.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthSuccess.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthenticateMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthenticateMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthenticateMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/AuthenticateMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/BatchMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/BatchMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/BatchMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/BatchMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/CredentialsMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/CredentialsMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/CredentialsMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/CredentialsMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/EventMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/EventMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/EventMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/EventMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ExecuteMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/OptionsMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/OptionsMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/OptionsMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/OptionsMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/PrepareMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/QueryMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/QueryMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/QueryMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/QueryMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ReadyMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ReadyMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ReadyMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ReadyMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/RegisterMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/RegisterMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/RegisterMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/RegisterMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ResultMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ResultMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/ResultMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/ResultMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/StartupMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/StartupMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/StartupMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/StartupMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/transport/messages/SupportedMessage.java b/external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/SupportedMessage.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/transport/messages/SupportedMessage.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/transport/messages/SupportedMessage.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/triggers/CustomClassLoader.java b/external-tests/Cassandra/src/java/org/apache/cassandra/triggers/CustomClassLoader.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/triggers/CustomClassLoader.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/triggers/CustomClassLoader.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/triggers/ITrigger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/triggers/ITrigger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/triggers/ITrigger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/triggers/ITrigger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/triggers/TriggerExecutor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/triggers/TriggerExecutor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/triggers/TriggerExecutor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/triggers/TriggerExecutor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/AbstractIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/AbstractIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/AbstractIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/AbstractIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/AlwaysPresentFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/AsymmetricOrdering.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/AsymmetricOrdering.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/AsymmetricOrdering.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/AsymmetricOrdering.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BackgroundActivityMonitor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BackgroundActivityMonitor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BackgroundActivityMonitor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BackgroundActivityMonitor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BatchRemoveIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BatchRemoveIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BatchRemoveIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BatchRemoveIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BiMultiValMap.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BiMultiValMap.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BiMultiValMap.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BiMultiValMap.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BloomCalculations.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomCalculations.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BloomCalculations.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomCalculations.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BloomFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BloomFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/BooleanSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/BooleanSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/BooleanSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/BooleanSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ByteBufferUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ByteBufferUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ByteBufferUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ByteBufferUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/CLibrary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/CLibrary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/CLibrary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/CLibrary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/CassandraVersion.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/CassandraVersion.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/CassandraVersion.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/CassandraVersion.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ChecksumType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ChecksumType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ChecksumType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ChecksumType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/CloseableIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/CloseableIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/CloseableIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/CloseableIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/CoalescingStrategies.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/CoalescingStrategies.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/CoalescingStrategies.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/CoalescingStrategies.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ConcurrentBiMap.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ConcurrentBiMap.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ConcurrentBiMap.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ConcurrentBiMap.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/CounterId.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/CounterId.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/CounterId.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/CounterId.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/DefaultValue.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/DefaultValue.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/DefaultValue.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/DefaultValue.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/DirectorySizeCalculator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/DirectorySizeCalculator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/DirectorySizeCalculator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/DirectorySizeCalculator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/DynamicList.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/DynamicList.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/DynamicList.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/DynamicList.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/EstimatedHistogram.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/EstimatedHistogram.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/EstimatedHistogram.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/EstimatedHistogram.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ExpiringMap.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ExpiringMap.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ExpiringMap.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ExpiringMap.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/FBUtilities.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/FBUtilities.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/FBUtilities.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/FBUtilities.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/FastByteOperations.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/FastByteOperations.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/FastByteOperations.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/FastByteOperations.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/FilterFactory.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/FilterFactory.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/FilterFactory.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/FilterFactory.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/GuidGenerator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/GuidGenerator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/GuidGenerator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/GuidGenerator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/HeapUtils.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/HeapUtils.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/HeapUtils.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/HeapUtils.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/Hex.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/Hex.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/Hex.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/Hex.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/HistogramBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/HistogramBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/HistogramBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/HistogramBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IFilter.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IFilter.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IFilter.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IFilter.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IMergeIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IMergeIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IMergeIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IMergeIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IndexedSearchIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IndexedSearchIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IndexedSearchIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IndexedSearchIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IntegerInterval.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IntegerInterval.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IntegerInterval.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IntegerInterval.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/Interval.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/Interval.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/Interval.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/Interval.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IntervalTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IntervalTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IntervalTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IntervalTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/IteratorWithLowerBound.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/IteratorWithLowerBound.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/IteratorWithLowerBound.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/IteratorWithLowerBound.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/JVMStabilityInspector.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/LockedDynamicList.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/LockedDynamicList.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/LockedDynamicList.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/LockedDynamicList.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/MD5Digest.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/MD5Digest.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/MD5Digest.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/MD5Digest.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/MergeIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/MergeIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/MergeIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/MergeIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/MerkleTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/MerkleTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/MerkleTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/MerkleTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/MerkleTrees.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/MerkleTrees.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/MerkleTrees.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/MerkleTrees.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/MurmurHash.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/MurmurHash.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/MurmurHash.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/MurmurHash.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/Mx4jTool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/Mx4jTool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/Mx4jTool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/Mx4jTool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/NanoTimeToCurrentTimeMillis.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/NanoTimeToCurrentTimeMillis.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/NanoTimeToCurrentTimeMillis.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/NanoTimeToCurrentTimeMillis.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/NativeSSTableLoaderClient.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/NoSpamLogger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/NoSpamLogger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/NoSpamLogger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/NoSpamLogger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ObjectSizes.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ObjectSizes.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ObjectSizes.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ObjectSizes.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/OutputHandler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/OutputHandler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/OutputHandler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/OutputHandler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/OverlapIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/OverlapIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/OverlapIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/OverlapIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/Pair.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/Pair.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/Pair.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/Pair.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/RMIServerSocketFactoryImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/ResourceWatcher.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/ResourceWatcher.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/ResourceWatcher.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/ResourceWatcher.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/SearchIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/SearchIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/SearchIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/SearchIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/SigarLibrary.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/SigarLibrary.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/SigarLibrary.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/SigarLibrary.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/SortedBiMultiValMap.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/SortedBiMultiValMap.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/SortedBiMultiValMap.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/SortedBiMultiValMap.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/StatusLogger.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/StatusLogger.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/StatusLogger.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/StatusLogger.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/StreamingHistogram.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/StreamingHistogram.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/StreamingHistogram.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/StreamingHistogram.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/SyncUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/SyncUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/SyncUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/SyncUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/Throwables.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/Throwables.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/Throwables.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/Throwables.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/TopKSampler.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/TopKSampler.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/TopKSampler.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/TopKSampler.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/UUIDGen.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/UUIDGen.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/UUIDGen.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/UUIDGen.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/UUIDSerializer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/UUIDSerializer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/UUIDSerializer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/UUIDSerializer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/WindowsTimer.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/WindowsTimer.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/WindowsTimer.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/WindowsTimer.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/WrappedRunnable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/WrappedRunnable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/WrappedRunnable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/WrappedRunnable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTree.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTree.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTree.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTree.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeRemoval.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeRemoval.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeRemoval.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeRemoval.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSearchIterator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSearchIterator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSearchIterator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSearchIterator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/BTreeSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeCursor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeCursor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeCursor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/NodeCursor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeBuilder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeBuilder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeBuilder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeBuilder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeCursor.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeCursor.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeCursor.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/TreeCursor.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/btree/UpdateFunction.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/UpdateFunction.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/btree/UpdateFunction.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/btree/UpdateFunction.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Accumulator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Accumulator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Accumulator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Accumulator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Blocker.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Blocker.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Blocker.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Blocker.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Locks.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Locks.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Locks.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Locks.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/OpOrder.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/OpOrder.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/OpOrder.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/OpOrder.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Ref.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Ref.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Ref.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Ref.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/RefCounted.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/RefCounted.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/RefCounted.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/RefCounted.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Refs.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Refs.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Refs.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Refs.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SelfRefCounted.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SelfRefCounted.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SelfRefCounted.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SelfRefCounted.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseableImpl.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseableImpl.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseableImpl.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SharedCloseableImpl.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SimpleCondition.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SimpleCondition.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SimpleCondition.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/SimpleCondition.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Transactional.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Transactional.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Transactional.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/Transactional.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WrappedSharedCloseable.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WrappedSharedCloseable.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WrappedSharedCloseable.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/concurrent/WrappedSharedCloseable.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/AbstractAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/AbstractAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/AbstractAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/AbstractAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/BufferPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/BufferPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/BufferPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/BufferPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/ContextAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/ContextAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/ContextAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/ContextAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/EnsureOnHeap.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/EnsureOnHeap.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/EnsureOnHeap.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/EnsureOnHeap.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/HeapPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemoryUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemoryUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemoryUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemoryUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableBufferAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableBufferAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableBufferAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableBufferAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableCleanerThread.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableCleanerThread.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableCleanerThread.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtableCleanerThread.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtablePool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtablePool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtablePool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/MemtablePool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/NativeAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/NativePool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/NativePool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/NativePool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/NativePool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabPool.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabPool.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabPool.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/memory/SlabPool.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/obs/BitUtil.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/BitUtil.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/obs/BitUtil.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/BitUtil.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/obs/IBitSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/IBitSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/obs/IBitSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/IBitSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/OffHeapBitSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/obs/OpenBitSet.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEvent.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEvent.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEvent.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEvent.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifier.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifier.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifier.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifier.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifierSupport.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifierSupport.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifierSupport.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventNotifierSupport.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventType.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventType.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventType.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressEventType.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/ProgressListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXNotificationProgressListener.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXNotificationProgressListener.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXNotificationProgressListener.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXNotificationProgressListener.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXProgressSupport.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXProgressSupport.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXProgressSupport.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/JMXProgressSupport.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport.java diff --git a/testes/Cassandra/src/java/org/apache/cassandra/utils/vint/VIntCoding.java b/external-tests/Cassandra/src/java/org/apache/cassandra/utils/vint/VIntCoding.java similarity index 100% rename from testes/Cassandra/src/java/org/apache/cassandra/utils/vint/VIntCoding.java rename to external-tests/Cassandra/src/java/org/apache/cassandra/utils/vint/VIntCoding.java diff --git a/testes/Cassandra/src/jdkoverride/java/util/zip/CRC32.class b/external-tests/Cassandra/src/jdkoverride/java/util/zip/CRC32.class similarity index 100% rename from testes/Cassandra/src/jdkoverride/java/util/zip/CRC32.class rename to external-tests/Cassandra/src/jdkoverride/java/util/zip/CRC32.class diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/cql3/functions/JavaSourceUDF.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/cql3/functions/JavaSourceUDF.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/cql3/functions/JavaSourceUDF.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/cql3/functions/JavaSourceUDF.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ar_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ar_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ar_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ar_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/bg_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/bg_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/bg_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/bg_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/cs_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/cs_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/cs_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/cs_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/de_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/de_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/de_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/de_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/en_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/en_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/en_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/en_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/es_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/es_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/es_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/es_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fi_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fi_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fi_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fi_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fr_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fr_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fr_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/fr_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hi_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hi_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hi_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hi_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hu_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hu_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hu_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/hu_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/it_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/it_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/it_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/it_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pl_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pl_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pl_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pl_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pt_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pt_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pt_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/pt_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ro_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ro_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ro_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ro_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ru_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ru_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ru_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/ru_ST.txt diff --git a/testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/sv_ST.txt b/external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/sv_ST.txt similarity index 100% rename from testes/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/sv_ST.txt rename to external-tests/Cassandra/src/resources/org/apache/cassandra/index/sasi/analyzer/filter/sv_ST.txt diff --git a/testes/jEdit/.gitaccess b/external-tests/jEdit/.gitaccess similarity index 100% rename from testes/jEdit/.gitaccess rename to external-tests/jEdit/.gitaccess diff --git a/testes/jEdit/.idea/.name b/external-tests/jEdit/.idea/.name similarity index 100% rename from testes/jEdit/.idea/.name rename to external-tests/jEdit/.idea/.name diff --git a/testes/jEdit/.idea/ant.xml b/external-tests/jEdit/.idea/ant.xml similarity index 100% rename from testes/jEdit/.idea/ant.xml rename to external-tests/jEdit/.idea/ant.xml diff --git a/testes/jEdit/.idea/compiler.xml b/external-tests/jEdit/.idea/compiler.xml similarity index 100% rename from testes/jEdit/.idea/compiler.xml rename to external-tests/jEdit/.idea/compiler.xml diff --git a/testes/jEdit/.idea/copyright/GPL_v2.xml b/external-tests/jEdit/.idea/copyright/GPL_v2.xml similarity index 100% rename from testes/jEdit/.idea/copyright/GPL_v2.xml rename to external-tests/jEdit/.idea/copyright/GPL_v2.xml diff --git a/testes/jEdit/.idea/copyright/profiles_settings.xml b/external-tests/jEdit/.idea/copyright/profiles_settings.xml similarity index 100% rename from testes/jEdit/.idea/copyright/profiles_settings.xml rename to external-tests/jEdit/.idea/copyright/profiles_settings.xml diff --git a/testes/jEdit/.idea/encodings.xml b/external-tests/jEdit/.idea/encodings.xml similarity index 100% rename from testes/jEdit/.idea/encodings.xml rename to external-tests/jEdit/.idea/encodings.xml diff --git a/testes/jEdit/.idea/libraries/Compile_Dependencies.xml b/external-tests/jEdit/.idea/libraries/Compile_Dependencies.xml similarity index 100% rename from testes/jEdit/.idea/libraries/Compile_Dependencies.xml rename to external-tests/jEdit/.idea/libraries/Compile_Dependencies.xml diff --git a/testes/jEdit/.idea/libraries/Runtime_Dependencies.xml b/external-tests/jEdit/.idea/libraries/Runtime_Dependencies.xml similarity index 100% rename from testes/jEdit/.idea/libraries/Runtime_Dependencies.xml rename to external-tests/jEdit/.idea/libraries/Runtime_Dependencies.xml diff --git a/testes/jEdit/.idea/libraries/Test_Dependencies.xml b/external-tests/jEdit/.idea/libraries/Test_Dependencies.xml similarity index 100% rename from testes/jEdit/.idea/libraries/Test_Dependencies.xml rename to external-tests/jEdit/.idea/libraries/Test_Dependencies.xml diff --git a/testes/jEdit/.idea/misc.xml b/external-tests/jEdit/.idea/misc.xml similarity index 100% rename from testes/jEdit/.idea/misc.xml rename to external-tests/jEdit/.idea/misc.xml diff --git a/testes/jEdit/.idea/modules.xml b/external-tests/jEdit/.idea/modules.xml similarity index 100% rename from testes/jEdit/.idea/modules.xml rename to external-tests/jEdit/.idea/modules.xml diff --git a/testes/jEdit/.idea/projectCodeStyle.xml b/external-tests/jEdit/.idea/projectCodeStyle.xml similarity index 100% rename from testes/jEdit/.idea/projectCodeStyle.xml rename to external-tests/jEdit/.idea/projectCodeStyle.xml diff --git a/testes/jEdit/.idea/runConfigurations/Remote__5005_.xml b/external-tests/jEdit/.idea/runConfigurations/Remote__5005_.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/Remote__5005_.xml rename to external-tests/jEdit/.idea/runConfigurations/Remote__5005_.xml diff --git a/testes/jEdit/.idea/runConfigurations/Unit_Tests.xml b/external-tests/jEdit/.idea/runConfigurations/Unit_Tests.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/Unit_Tests.xml rename to external-tests/jEdit/.idea/runConfigurations/Unit_Tests.xml diff --git a/testes/jEdit/.idea/runConfigurations/Unit_Tests__Code_Coverage_.xml b/external-tests/jEdit/.idea/runConfigurations/Unit_Tests__Code_Coverage_.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/Unit_Tests__Code_Coverage_.xml rename to external-tests/jEdit/.idea/runConfigurations/Unit_Tests__Code_Coverage_.xml diff --git a/testes/jEdit/.idea/runConfigurations/jEdit.xml b/external-tests/jEdit/.idea/runConfigurations/jEdit.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/jEdit.xml rename to external-tests/jEdit/.idea/runConfigurations/jEdit.xml diff --git a/testes/jEdit/.idea/runConfigurations/jEdit__Background_Mode_.xml b/external-tests/jEdit/.idea/runConfigurations/jEdit__Background_Mode_.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/jEdit__Background_Mode_.xml rename to external-tests/jEdit/.idea/runConfigurations/jEdit__Background_Mode_.xml diff --git a/testes/jEdit/.idea/runConfigurations/jEdit__Code_Coverage_.xml b/external-tests/jEdit/.idea/runConfigurations/jEdit__Code_Coverage_.xml similarity index 100% rename from testes/jEdit/.idea/runConfigurations/jEdit__Code_Coverage_.xml rename to external-tests/jEdit/.idea/runConfigurations/jEdit__Code_Coverage_.xml diff --git a/testes/jEdit/.idea/uiDesigner.xml b/external-tests/jEdit/.idea/uiDesigner.xml similarity index 100% rename from testes/jEdit/.idea/uiDesigner.xml rename to external-tests/jEdit/.idea/uiDesigner.xml diff --git a/testes/jEdit/.idea/vcs.xml b/external-tests/jEdit/.idea/vcs.xml similarity index 100% rename from testes/jEdit/.idea/vcs.xml rename to external-tests/jEdit/.idea/vcs.xml diff --git a/testes/jEdit/README.SRC.txt b/external-tests/jEdit/README.SRC.txt similarity index 100% rename from testes/jEdit/README.SRC.txt rename to external-tests/jEdit/README.SRC.txt diff --git a/testes/jEdit/build.properties.sample b/external-tests/jEdit/build.properties.sample similarity index 100% rename from testes/jEdit/build.properties.sample rename to external-tests/jEdit/build.properties.sample diff --git a/testes/jEdit/build.xml b/external-tests/jEdit/build.xml similarity index 100% rename from testes/jEdit/build.xml rename to external-tests/jEdit/build.xml diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/ar/Ar.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/Ar.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/ar/Ar.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/Ar.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArConstants.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArConstants.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArConstants.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArConstants.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArEntry.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArEntry.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArEntry.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArEntry.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArOutputStream.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArOutputStream.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArOutputStream.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArOutputStream.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArUtils.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArUtils.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/ar/ArUtils.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/ar/ArUtils.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/calculatesize/CalculateSize.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/calculatesize/CalculateSize.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/calculatesize/CalculateSize.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/calculatesize/CalculateSize.java diff --git a/testes/jEdit/de/masters_of_disaster/ant/tasks/deb/Deb.java b/external-tests/jEdit/de/masters_of_disaster/ant/tasks/deb/Deb.java similarity index 100% rename from testes/jEdit/de/masters_of_disaster/ant/tasks/deb/Deb.java rename to external-tests/jEdit/de/masters_of_disaster/ant/tasks/deb/Deb.java diff --git a/testes/jEdit/doc/Apache.LICENSE.txt b/external-tests/jEdit/doc/Apache.LICENSE.txt similarity index 100% rename from testes/jEdit/doc/Apache.LICENSE.txt rename to external-tests/jEdit/doc/Apache.LICENSE.txt diff --git a/testes/jEdit/doc/CHANGES.txt b/external-tests/jEdit/doc/CHANGES.txt similarity index 100% rename from testes/jEdit/doc/CHANGES.txt rename to external-tests/jEdit/doc/CHANGES.txt diff --git a/testes/jEdit/doc/COPYING.DOC.txt b/external-tests/jEdit/doc/COPYING.DOC.txt similarity index 100% rename from testes/jEdit/doc/COPYING.DOC.txt rename to external-tests/jEdit/doc/COPYING.DOC.txt diff --git a/testes/jEdit/doc/COPYING.PLUGINS.txt b/external-tests/jEdit/doc/COPYING.PLUGINS.txt similarity index 100% rename from testes/jEdit/doc/COPYING.PLUGINS.txt rename to external-tests/jEdit/doc/COPYING.PLUGINS.txt diff --git a/testes/jEdit/doc/COPYING.txt b/external-tests/jEdit/doc/COPYING.txt similarity index 100% rename from testes/jEdit/doc/COPYING.txt rename to external-tests/jEdit/doc/COPYING.txt diff --git a/testes/jEdit/doc/CORE_GUIDELINES.txt b/external-tests/jEdit/doc/CORE_GUIDELINES.txt similarity index 100% rename from testes/jEdit/doc/CORE_GUIDELINES.txt rename to external-tests/jEdit/doc/CORE_GUIDELINES.txt diff --git a/testes/jEdit/doc/FAQ/faq-contrib.xml b/external-tests/jEdit/doc/FAQ/faq-contrib.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-contrib.xml rename to external-tests/jEdit/doc/FAQ/faq-contrib.xml diff --git a/testes/jEdit/doc/FAQ/faq-general.xml b/external-tests/jEdit/doc/FAQ/faq-general.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-general.xml rename to external-tests/jEdit/doc/FAQ/faq-general.xml diff --git a/testes/jEdit/doc/FAQ/faq-install.xml b/external-tests/jEdit/doc/FAQ/faq-install.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-install.xml rename to external-tests/jEdit/doc/FAQ/faq-install.xml diff --git a/testes/jEdit/doc/FAQ/faq-intro.xml b/external-tests/jEdit/doc/FAQ/faq-intro.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-intro.xml rename to external-tests/jEdit/doc/FAQ/faq-intro.xml diff --git a/testes/jEdit/doc/FAQ/faq-macros.xml b/external-tests/jEdit/doc/FAQ/faq-macros.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-macros.xml rename to external-tests/jEdit/doc/FAQ/faq-macros.xml diff --git a/testes/jEdit/doc/FAQ/faq-plugins.xml b/external-tests/jEdit/doc/FAQ/faq-plugins.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-plugins.xml rename to external-tests/jEdit/doc/FAQ/faq-plugins.xml diff --git a/testes/jEdit/doc/FAQ/faq-problems.xml b/external-tests/jEdit/doc/FAQ/faq-problems.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-problems.xml rename to external-tests/jEdit/doc/FAQ/faq-problems.xml diff --git a/testes/jEdit/doc/FAQ/faq-use.xml b/external-tests/jEdit/doc/FAQ/faq-use.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq-use.xml rename to external-tests/jEdit/doc/FAQ/faq-use.xml diff --git a/testes/jEdit/doc/FAQ/faq.xml b/external-tests/jEdit/doc/FAQ/faq.xml similarity index 100% rename from testes/jEdit/doc/FAQ/faq.xml rename to external-tests/jEdit/doc/FAQ/faq.xml diff --git a/testes/jEdit/doc/README.txt b/external-tests/jEdit/doc/README.txt similarity index 100% rename from testes/jEdit/doc/README.txt rename to external-tests/jEdit/doc/README.txt diff --git a/testes/jEdit/doc/TODO.txt b/external-tests/jEdit/doc/TODO.txt similarity index 100% rename from testes/jEdit/doc/TODO.txt rename to external-tests/jEdit/doc/TODO.txt diff --git a/testes/jEdit/doc/jedit.png b/external-tests/jEdit/doc/jedit.png similarity index 100% rename from testes/jEdit/doc/jedit.png rename to external-tests/jEdit/doc/jedit.png diff --git a/testes/jEdit/doc/jeditfo.xsl b/external-tests/jEdit/doc/jeditfo.xsl similarity index 100% rename from testes/jEdit/doc/jeditfo.xsl rename to external-tests/jEdit/doc/jeditfo.xsl diff --git a/testes/jEdit/doc/jedithtml.xsl b/external-tests/jEdit/doc/jedithtml.xsl similarity index 100% rename from testes/jEdit/doc/jedithtml.xsl rename to external-tests/jEdit/doc/jedithtml.xsl diff --git a/testes/jEdit/doc/release-procedure.txt b/external-tests/jEdit/doc/release-procedure.txt similarity index 100% rename from testes/jEdit/doc/release-procedure.txt rename to external-tests/jEdit/doc/release-procedure.txt diff --git a/testes/jEdit/doc/releasing-jedit.txt b/external-tests/jEdit/doc/releasing-jedit.txt similarity index 100% rename from testes/jEdit/doc/releasing-jedit.txt rename to external-tests/jEdit/doc/releasing-jedit.txt diff --git a/testes/jEdit/doc/stylesheet.css b/external-tests/jEdit/doc/stylesheet.css similarity index 100% rename from testes/jEdit/doc/stylesheet.css rename to external-tests/jEdit/doc/stylesheet.css diff --git a/testes/jEdit/doc/tips/tip0.html b/external-tests/jEdit/doc/tips/tip0.html similarity index 100% rename from testes/jEdit/doc/tips/tip0.html rename to external-tests/jEdit/doc/tips/tip0.html diff --git a/testes/jEdit/doc/tips/tip1.html b/external-tests/jEdit/doc/tips/tip1.html similarity index 100% rename from testes/jEdit/doc/tips/tip1.html rename to external-tests/jEdit/doc/tips/tip1.html diff --git a/testes/jEdit/doc/tips/tip10.html b/external-tests/jEdit/doc/tips/tip10.html similarity index 100% rename from testes/jEdit/doc/tips/tip10.html rename to external-tests/jEdit/doc/tips/tip10.html diff --git a/testes/jEdit/doc/tips/tip11.html b/external-tests/jEdit/doc/tips/tip11.html similarity index 100% rename from testes/jEdit/doc/tips/tip11.html rename to external-tests/jEdit/doc/tips/tip11.html diff --git a/testes/jEdit/doc/tips/tip12.html b/external-tests/jEdit/doc/tips/tip12.html similarity index 100% rename from testes/jEdit/doc/tips/tip12.html rename to external-tests/jEdit/doc/tips/tip12.html diff --git a/testes/jEdit/doc/tips/tip13.html b/external-tests/jEdit/doc/tips/tip13.html similarity index 100% rename from testes/jEdit/doc/tips/tip13.html rename to external-tests/jEdit/doc/tips/tip13.html diff --git a/testes/jEdit/doc/tips/tip14.html b/external-tests/jEdit/doc/tips/tip14.html similarity index 100% rename from testes/jEdit/doc/tips/tip14.html rename to external-tests/jEdit/doc/tips/tip14.html diff --git a/testes/jEdit/doc/tips/tip15.html b/external-tests/jEdit/doc/tips/tip15.html similarity index 100% rename from testes/jEdit/doc/tips/tip15.html rename to external-tests/jEdit/doc/tips/tip15.html diff --git a/testes/jEdit/doc/tips/tip16.html b/external-tests/jEdit/doc/tips/tip16.html similarity index 100% rename from testes/jEdit/doc/tips/tip16.html rename to external-tests/jEdit/doc/tips/tip16.html diff --git a/testes/jEdit/doc/tips/tip17.html b/external-tests/jEdit/doc/tips/tip17.html similarity index 100% rename from testes/jEdit/doc/tips/tip17.html rename to external-tests/jEdit/doc/tips/tip17.html diff --git a/testes/jEdit/doc/tips/tip18.html b/external-tests/jEdit/doc/tips/tip18.html similarity index 100% rename from testes/jEdit/doc/tips/tip18.html rename to external-tests/jEdit/doc/tips/tip18.html diff --git a/testes/jEdit/doc/tips/tip19.html b/external-tests/jEdit/doc/tips/tip19.html similarity index 100% rename from testes/jEdit/doc/tips/tip19.html rename to external-tests/jEdit/doc/tips/tip19.html diff --git a/testes/jEdit/doc/tips/tip2.html b/external-tests/jEdit/doc/tips/tip2.html similarity index 100% rename from testes/jEdit/doc/tips/tip2.html rename to external-tests/jEdit/doc/tips/tip2.html diff --git a/testes/jEdit/doc/tips/tip20.html b/external-tests/jEdit/doc/tips/tip20.html similarity index 100% rename from testes/jEdit/doc/tips/tip20.html rename to external-tests/jEdit/doc/tips/tip20.html diff --git a/testes/jEdit/doc/tips/tip21.html b/external-tests/jEdit/doc/tips/tip21.html similarity index 100% rename from testes/jEdit/doc/tips/tip21.html rename to external-tests/jEdit/doc/tips/tip21.html diff --git a/testes/jEdit/doc/tips/tip22.html b/external-tests/jEdit/doc/tips/tip22.html similarity index 100% rename from testes/jEdit/doc/tips/tip22.html rename to external-tests/jEdit/doc/tips/tip22.html diff --git a/testes/jEdit/doc/tips/tip23.html b/external-tests/jEdit/doc/tips/tip23.html similarity index 100% rename from testes/jEdit/doc/tips/tip23.html rename to external-tests/jEdit/doc/tips/tip23.html diff --git a/testes/jEdit/doc/tips/tip24.html b/external-tests/jEdit/doc/tips/tip24.html similarity index 100% rename from testes/jEdit/doc/tips/tip24.html rename to external-tests/jEdit/doc/tips/tip24.html diff --git a/testes/jEdit/doc/tips/tip25.html b/external-tests/jEdit/doc/tips/tip25.html similarity index 100% rename from testes/jEdit/doc/tips/tip25.html rename to external-tests/jEdit/doc/tips/tip25.html diff --git a/testes/jEdit/doc/tips/tip26.html b/external-tests/jEdit/doc/tips/tip26.html similarity index 100% rename from testes/jEdit/doc/tips/tip26.html rename to external-tests/jEdit/doc/tips/tip26.html diff --git a/testes/jEdit/doc/tips/tip27.html b/external-tests/jEdit/doc/tips/tip27.html similarity index 100% rename from testes/jEdit/doc/tips/tip27.html rename to external-tests/jEdit/doc/tips/tip27.html diff --git a/testes/jEdit/doc/tips/tip28.html b/external-tests/jEdit/doc/tips/tip28.html similarity index 100% rename from testes/jEdit/doc/tips/tip28.html rename to external-tests/jEdit/doc/tips/tip28.html diff --git a/testes/jEdit/doc/tips/tip29.html b/external-tests/jEdit/doc/tips/tip29.html similarity index 100% rename from testes/jEdit/doc/tips/tip29.html rename to external-tests/jEdit/doc/tips/tip29.html diff --git a/testes/jEdit/doc/tips/tip3.html b/external-tests/jEdit/doc/tips/tip3.html similarity index 100% rename from testes/jEdit/doc/tips/tip3.html rename to external-tests/jEdit/doc/tips/tip3.html diff --git a/testes/jEdit/doc/tips/tip30.html b/external-tests/jEdit/doc/tips/tip30.html similarity index 100% rename from testes/jEdit/doc/tips/tip30.html rename to external-tests/jEdit/doc/tips/tip30.html diff --git a/testes/jEdit/doc/tips/tip31.html b/external-tests/jEdit/doc/tips/tip31.html similarity index 100% rename from testes/jEdit/doc/tips/tip31.html rename to external-tests/jEdit/doc/tips/tip31.html diff --git a/testes/jEdit/doc/tips/tip32.html b/external-tests/jEdit/doc/tips/tip32.html similarity index 100% rename from testes/jEdit/doc/tips/tip32.html rename to external-tests/jEdit/doc/tips/tip32.html diff --git a/testes/jEdit/doc/tips/tip33.html b/external-tests/jEdit/doc/tips/tip33.html similarity index 100% rename from testes/jEdit/doc/tips/tip33.html rename to external-tests/jEdit/doc/tips/tip33.html diff --git a/testes/jEdit/doc/tips/tip34.html b/external-tests/jEdit/doc/tips/tip34.html similarity index 100% rename from testes/jEdit/doc/tips/tip34.html rename to external-tests/jEdit/doc/tips/tip34.html diff --git a/testes/jEdit/doc/tips/tip35.html b/external-tests/jEdit/doc/tips/tip35.html similarity index 100% rename from testes/jEdit/doc/tips/tip35.html rename to external-tests/jEdit/doc/tips/tip35.html diff --git a/testes/jEdit/doc/tips/tip36.html b/external-tests/jEdit/doc/tips/tip36.html similarity index 100% rename from testes/jEdit/doc/tips/tip36.html rename to external-tests/jEdit/doc/tips/tip36.html diff --git a/testes/jEdit/doc/tips/tip37.html b/external-tests/jEdit/doc/tips/tip37.html similarity index 100% rename from testes/jEdit/doc/tips/tip37.html rename to external-tests/jEdit/doc/tips/tip37.html diff --git a/testes/jEdit/doc/tips/tip38.html b/external-tests/jEdit/doc/tips/tip38.html similarity index 100% rename from testes/jEdit/doc/tips/tip38.html rename to external-tests/jEdit/doc/tips/tip38.html diff --git a/testes/jEdit/doc/tips/tip39.html b/external-tests/jEdit/doc/tips/tip39.html similarity index 100% rename from testes/jEdit/doc/tips/tip39.html rename to external-tests/jEdit/doc/tips/tip39.html diff --git a/testes/jEdit/doc/tips/tip4.html b/external-tests/jEdit/doc/tips/tip4.html similarity index 100% rename from testes/jEdit/doc/tips/tip4.html rename to external-tests/jEdit/doc/tips/tip4.html diff --git a/testes/jEdit/doc/tips/tip40.html b/external-tests/jEdit/doc/tips/tip40.html similarity index 100% rename from testes/jEdit/doc/tips/tip40.html rename to external-tests/jEdit/doc/tips/tip40.html diff --git a/testes/jEdit/doc/tips/tip41.html b/external-tests/jEdit/doc/tips/tip41.html similarity index 100% rename from testes/jEdit/doc/tips/tip41.html rename to external-tests/jEdit/doc/tips/tip41.html diff --git a/testes/jEdit/doc/tips/tip42.html b/external-tests/jEdit/doc/tips/tip42.html similarity index 100% rename from testes/jEdit/doc/tips/tip42.html rename to external-tests/jEdit/doc/tips/tip42.html diff --git a/testes/jEdit/doc/tips/tip43.html b/external-tests/jEdit/doc/tips/tip43.html similarity index 100% rename from testes/jEdit/doc/tips/tip43.html rename to external-tests/jEdit/doc/tips/tip43.html diff --git a/testes/jEdit/doc/tips/tip44.html b/external-tests/jEdit/doc/tips/tip44.html similarity index 100% rename from testes/jEdit/doc/tips/tip44.html rename to external-tests/jEdit/doc/tips/tip44.html diff --git a/testes/jEdit/doc/tips/tip45.html b/external-tests/jEdit/doc/tips/tip45.html similarity index 100% rename from testes/jEdit/doc/tips/tip45.html rename to external-tests/jEdit/doc/tips/tip45.html diff --git a/testes/jEdit/doc/tips/tip46.html b/external-tests/jEdit/doc/tips/tip46.html similarity index 100% rename from testes/jEdit/doc/tips/tip46.html rename to external-tests/jEdit/doc/tips/tip46.html diff --git a/testes/jEdit/doc/tips/tip47.html b/external-tests/jEdit/doc/tips/tip47.html similarity index 100% rename from testes/jEdit/doc/tips/tip47.html rename to external-tests/jEdit/doc/tips/tip47.html diff --git a/testes/jEdit/doc/tips/tip48.html b/external-tests/jEdit/doc/tips/tip48.html similarity index 100% rename from testes/jEdit/doc/tips/tip48.html rename to external-tests/jEdit/doc/tips/tip48.html diff --git a/testes/jEdit/doc/tips/tip49.html b/external-tests/jEdit/doc/tips/tip49.html similarity index 100% rename from testes/jEdit/doc/tips/tip49.html rename to external-tests/jEdit/doc/tips/tip49.html diff --git a/testes/jEdit/doc/tips/tip5.html b/external-tests/jEdit/doc/tips/tip5.html similarity index 100% rename from testes/jEdit/doc/tips/tip5.html rename to external-tests/jEdit/doc/tips/tip5.html diff --git a/testes/jEdit/doc/tips/tip50.html b/external-tests/jEdit/doc/tips/tip50.html similarity index 100% rename from testes/jEdit/doc/tips/tip50.html rename to external-tests/jEdit/doc/tips/tip50.html diff --git a/testes/jEdit/doc/tips/tip51.html b/external-tests/jEdit/doc/tips/tip51.html similarity index 100% rename from testes/jEdit/doc/tips/tip51.html rename to external-tests/jEdit/doc/tips/tip51.html diff --git a/testes/jEdit/doc/tips/tip52.html b/external-tests/jEdit/doc/tips/tip52.html similarity index 100% rename from testes/jEdit/doc/tips/tip52.html rename to external-tests/jEdit/doc/tips/tip52.html diff --git a/testes/jEdit/doc/tips/tip53.html b/external-tests/jEdit/doc/tips/tip53.html similarity index 100% rename from testes/jEdit/doc/tips/tip53.html rename to external-tests/jEdit/doc/tips/tip53.html diff --git a/testes/jEdit/doc/tips/tip54.html b/external-tests/jEdit/doc/tips/tip54.html similarity index 100% rename from testes/jEdit/doc/tips/tip54.html rename to external-tests/jEdit/doc/tips/tip54.html diff --git a/testes/jEdit/doc/tips/tip55.html b/external-tests/jEdit/doc/tips/tip55.html similarity index 100% rename from testes/jEdit/doc/tips/tip55.html rename to external-tests/jEdit/doc/tips/tip55.html diff --git a/testes/jEdit/doc/tips/tip56.html b/external-tests/jEdit/doc/tips/tip56.html similarity index 100% rename from testes/jEdit/doc/tips/tip56.html rename to external-tests/jEdit/doc/tips/tip56.html diff --git a/testes/jEdit/doc/tips/tip57.html b/external-tests/jEdit/doc/tips/tip57.html similarity index 100% rename from testes/jEdit/doc/tips/tip57.html rename to external-tests/jEdit/doc/tips/tip57.html diff --git a/testes/jEdit/doc/tips/tip58.html b/external-tests/jEdit/doc/tips/tip58.html similarity index 100% rename from testes/jEdit/doc/tips/tip58.html rename to external-tests/jEdit/doc/tips/tip58.html diff --git a/testes/jEdit/doc/tips/tip59.html b/external-tests/jEdit/doc/tips/tip59.html similarity index 100% rename from testes/jEdit/doc/tips/tip59.html rename to external-tests/jEdit/doc/tips/tip59.html diff --git a/testes/jEdit/doc/tips/tip6.html b/external-tests/jEdit/doc/tips/tip6.html similarity index 100% rename from testes/jEdit/doc/tips/tip6.html rename to external-tests/jEdit/doc/tips/tip6.html diff --git a/testes/jEdit/doc/tips/tip60.html b/external-tests/jEdit/doc/tips/tip60.html similarity index 100% rename from testes/jEdit/doc/tips/tip60.html rename to external-tests/jEdit/doc/tips/tip60.html diff --git a/testes/jEdit/doc/tips/tip61.html b/external-tests/jEdit/doc/tips/tip61.html similarity index 100% rename from testes/jEdit/doc/tips/tip61.html rename to external-tests/jEdit/doc/tips/tip61.html diff --git a/testes/jEdit/doc/tips/tip62.html b/external-tests/jEdit/doc/tips/tip62.html similarity index 100% rename from testes/jEdit/doc/tips/tip62.html rename to external-tests/jEdit/doc/tips/tip62.html diff --git a/testes/jEdit/doc/tips/tip63.html b/external-tests/jEdit/doc/tips/tip63.html similarity index 100% rename from testes/jEdit/doc/tips/tip63.html rename to external-tests/jEdit/doc/tips/tip63.html diff --git a/testes/jEdit/doc/tips/tip64.html b/external-tests/jEdit/doc/tips/tip64.html similarity index 100% rename from testes/jEdit/doc/tips/tip64.html rename to external-tests/jEdit/doc/tips/tip64.html diff --git a/testes/jEdit/doc/tips/tip65.html b/external-tests/jEdit/doc/tips/tip65.html similarity index 100% rename from testes/jEdit/doc/tips/tip65.html rename to external-tests/jEdit/doc/tips/tip65.html diff --git a/testes/jEdit/doc/tips/tip66.html b/external-tests/jEdit/doc/tips/tip66.html similarity index 100% rename from testes/jEdit/doc/tips/tip66.html rename to external-tests/jEdit/doc/tips/tip66.html diff --git a/testes/jEdit/doc/tips/tip67.html b/external-tests/jEdit/doc/tips/tip67.html similarity index 100% rename from testes/jEdit/doc/tips/tip67.html rename to external-tests/jEdit/doc/tips/tip67.html diff --git a/testes/jEdit/doc/tips/tip68.html b/external-tests/jEdit/doc/tips/tip68.html similarity index 100% rename from testes/jEdit/doc/tips/tip68.html rename to external-tests/jEdit/doc/tips/tip68.html diff --git a/testes/jEdit/doc/tips/tip69.html b/external-tests/jEdit/doc/tips/tip69.html similarity index 100% rename from testes/jEdit/doc/tips/tip69.html rename to external-tests/jEdit/doc/tips/tip69.html diff --git a/testes/jEdit/doc/tips/tip7.html b/external-tests/jEdit/doc/tips/tip7.html similarity index 100% rename from testes/jEdit/doc/tips/tip7.html rename to external-tests/jEdit/doc/tips/tip7.html diff --git a/testes/jEdit/doc/tips/tip70.html b/external-tests/jEdit/doc/tips/tip70.html similarity index 100% rename from testes/jEdit/doc/tips/tip70.html rename to external-tests/jEdit/doc/tips/tip70.html diff --git a/testes/jEdit/doc/tips/tip71.html b/external-tests/jEdit/doc/tips/tip71.html similarity index 100% rename from testes/jEdit/doc/tips/tip71.html rename to external-tests/jEdit/doc/tips/tip71.html diff --git a/testes/jEdit/doc/tips/tip72.html b/external-tests/jEdit/doc/tips/tip72.html similarity index 100% rename from testes/jEdit/doc/tips/tip72.html rename to external-tests/jEdit/doc/tips/tip72.html diff --git a/testes/jEdit/doc/tips/tip73.html b/external-tests/jEdit/doc/tips/tip73.html similarity index 100% rename from testes/jEdit/doc/tips/tip73.html rename to external-tests/jEdit/doc/tips/tip73.html diff --git a/testes/jEdit/doc/tips/tip74.html b/external-tests/jEdit/doc/tips/tip74.html similarity index 100% rename from testes/jEdit/doc/tips/tip74.html rename to external-tests/jEdit/doc/tips/tip74.html diff --git a/testes/jEdit/doc/tips/tip75.html b/external-tests/jEdit/doc/tips/tip75.html similarity index 100% rename from testes/jEdit/doc/tips/tip75.html rename to external-tests/jEdit/doc/tips/tip75.html diff --git a/testes/jEdit/doc/tips/tip76.html b/external-tests/jEdit/doc/tips/tip76.html similarity index 100% rename from testes/jEdit/doc/tips/tip76.html rename to external-tests/jEdit/doc/tips/tip76.html diff --git a/testes/jEdit/doc/tips/tip77.html b/external-tests/jEdit/doc/tips/tip77.html similarity index 100% rename from testes/jEdit/doc/tips/tip77.html rename to external-tests/jEdit/doc/tips/tip77.html diff --git a/testes/jEdit/doc/tips/tip78.html b/external-tests/jEdit/doc/tips/tip78.html similarity index 100% rename from testes/jEdit/doc/tips/tip78.html rename to external-tests/jEdit/doc/tips/tip78.html diff --git a/testes/jEdit/doc/tips/tip79.html b/external-tests/jEdit/doc/tips/tip79.html similarity index 100% rename from testes/jEdit/doc/tips/tip79.html rename to external-tests/jEdit/doc/tips/tip79.html diff --git a/testes/jEdit/doc/tips/tip8.html b/external-tests/jEdit/doc/tips/tip8.html similarity index 100% rename from testes/jEdit/doc/tips/tip8.html rename to external-tests/jEdit/doc/tips/tip8.html diff --git a/testes/jEdit/doc/tips/tip80.html b/external-tests/jEdit/doc/tips/tip80.html similarity index 100% rename from testes/jEdit/doc/tips/tip80.html rename to external-tests/jEdit/doc/tips/tip80.html diff --git a/testes/jEdit/doc/tips/tip81.html b/external-tests/jEdit/doc/tips/tip81.html similarity index 100% rename from testes/jEdit/doc/tips/tip81.html rename to external-tests/jEdit/doc/tips/tip81.html diff --git a/testes/jEdit/doc/tips/tip82.html b/external-tests/jEdit/doc/tips/tip82.html similarity index 100% rename from testes/jEdit/doc/tips/tip82.html rename to external-tests/jEdit/doc/tips/tip82.html diff --git a/testes/jEdit/doc/tips/tip83.html b/external-tests/jEdit/doc/tips/tip83.html similarity index 100% rename from testes/jEdit/doc/tips/tip83.html rename to external-tests/jEdit/doc/tips/tip83.html diff --git a/testes/jEdit/doc/tips/tip84.html b/external-tests/jEdit/doc/tips/tip84.html similarity index 100% rename from testes/jEdit/doc/tips/tip84.html rename to external-tests/jEdit/doc/tips/tip84.html diff --git a/testes/jEdit/doc/tips/tip85.html b/external-tests/jEdit/doc/tips/tip85.html similarity index 100% rename from testes/jEdit/doc/tips/tip85.html rename to external-tests/jEdit/doc/tips/tip85.html diff --git a/testes/jEdit/doc/tips/tip86.html b/external-tests/jEdit/doc/tips/tip86.html similarity index 100% rename from testes/jEdit/doc/tips/tip86.html rename to external-tests/jEdit/doc/tips/tip86.html diff --git a/testes/jEdit/doc/tips/tip87.html b/external-tests/jEdit/doc/tips/tip87.html similarity index 100% rename from testes/jEdit/doc/tips/tip87.html rename to external-tests/jEdit/doc/tips/tip87.html diff --git a/testes/jEdit/doc/tips/tip88.html b/external-tests/jEdit/doc/tips/tip88.html similarity index 100% rename from testes/jEdit/doc/tips/tip88.html rename to external-tests/jEdit/doc/tips/tip88.html diff --git a/testes/jEdit/doc/tips/tip89.html b/external-tests/jEdit/doc/tips/tip89.html similarity index 100% rename from testes/jEdit/doc/tips/tip89.html rename to external-tests/jEdit/doc/tips/tip89.html diff --git a/testes/jEdit/doc/tips/tip9.html b/external-tests/jEdit/doc/tips/tip9.html similarity index 100% rename from testes/jEdit/doc/tips/tip9.html rename to external-tests/jEdit/doc/tips/tip9.html diff --git a/testes/jEdit/doc/tips/tip90.html b/external-tests/jEdit/doc/tips/tip90.html similarity index 100% rename from testes/jEdit/doc/tips/tip90.html rename to external-tests/jEdit/doc/tips/tip90.html diff --git a/testes/jEdit/doc/tips/tip91.html b/external-tests/jEdit/doc/tips/tip91.html similarity index 100% rename from testes/jEdit/doc/tips/tip91.html rename to external-tests/jEdit/doc/tips/tip91.html diff --git a/testes/jEdit/doc/tips/tip92.html b/external-tests/jEdit/doc/tips/tip92.html similarity index 100% rename from testes/jEdit/doc/tips/tip92.html rename to external-tests/jEdit/doc/tips/tip92.html diff --git a/testes/jEdit/doc/tips/tip93.html b/external-tests/jEdit/doc/tips/tip93.html similarity index 100% rename from testes/jEdit/doc/tips/tip93.html rename to external-tests/jEdit/doc/tips/tip93.html diff --git a/testes/jEdit/doc/tips/tip94.html b/external-tests/jEdit/doc/tips/tip94.html similarity index 100% rename from testes/jEdit/doc/tips/tip94.html rename to external-tests/jEdit/doc/tips/tip94.html diff --git a/testes/jEdit/doc/tips/tip95.html b/external-tests/jEdit/doc/tips/tip95.html similarity index 100% rename from testes/jEdit/doc/tips/tip95.html rename to external-tests/jEdit/doc/tips/tip95.html diff --git a/testes/jEdit/doc/tips/tip96.html b/external-tests/jEdit/doc/tips/tip96.html similarity index 100% rename from testes/jEdit/doc/tips/tip96.html rename to external-tests/jEdit/doc/tips/tip96.html diff --git a/testes/jEdit/doc/tips/tip97.html b/external-tests/jEdit/doc/tips/tip97.html similarity index 100% rename from testes/jEdit/doc/tips/tip97.html rename to external-tests/jEdit/doc/tips/tip97.html diff --git a/testes/jEdit/doc/tips/tip98.html b/external-tests/jEdit/doc/tips/tip98.html similarity index 100% rename from testes/jEdit/doc/tips/tip98.html rename to external-tests/jEdit/doc/tips/tip98.html diff --git a/testes/jEdit/doc/users-guide/activity-log.xml b/external-tests/jEdit/doc/users-guide/activity-log.xml similarity index 100% rename from testes/jEdit/doc/users-guide/activity-log.xml rename to external-tests/jEdit/doc/users-guide/activity-log.xml diff --git a/testes/jEdit/doc/users-guide/basics.xml b/external-tests/jEdit/doc/users-guide/basics.xml similarity index 100% rename from testes/jEdit/doc/users-guide/basics.xml rename to external-tests/jEdit/doc/users-guide/basics.xml diff --git a/testes/jEdit/doc/users-guide/bsh-commands.xml b/external-tests/jEdit/doc/users-guide/bsh-commands.xml similarity index 100% rename from testes/jEdit/doc/users-guide/bsh-commands.xml rename to external-tests/jEdit/doc/users-guide/bsh-commands.xml diff --git a/testes/jEdit/doc/users-guide/conventions.xml b/external-tests/jEdit/doc/users-guide/conventions.xml similarity index 100% rename from testes/jEdit/doc/users-guide/conventions.xml rename to external-tests/jEdit/doc/users-guide/conventions.xml diff --git a/testes/jEdit/doc/users-guide/customizing.xml b/external-tests/jEdit/doc/users-guide/customizing.xml similarity index 100% rename from testes/jEdit/doc/users-guide/customizing.xml rename to external-tests/jEdit/doc/users-guide/customizing.xml diff --git a/testes/jEdit/doc/users-guide/dialog-macro.xml b/external-tests/jEdit/doc/users-guide/dialog-macro.xml similarity index 100% rename from testes/jEdit/doc/users-guide/dialog-macro.xml rename to external-tests/jEdit/doc/users-guide/dialog-macro.xml diff --git a/testes/jEdit/doc/users-guide/files.xml b/external-tests/jEdit/doc/users-guide/files.xml similarity index 100% rename from testes/jEdit/doc/users-guide/files.xml rename to external-tests/jEdit/doc/users-guide/files.xml diff --git a/testes/jEdit/doc/users-guide/globs.xml b/external-tests/jEdit/doc/users-guide/globs.xml similarity index 100% rename from testes/jEdit/doc/users-guide/globs.xml rename to external-tests/jEdit/doc/users-guide/globs.xml diff --git a/testes/jEdit/doc/users-guide/history.xml b/external-tests/jEdit/doc/users-guide/history.xml similarity index 100% rename from testes/jEdit/doc/users-guide/history.xml rename to external-tests/jEdit/doc/users-guide/history.xml diff --git a/testes/jEdit/doc/users-guide/installing-modes.xml b/external-tests/jEdit/doc/users-guide/installing-modes.xml similarity index 100% rename from testes/jEdit/doc/users-guide/installing-modes.xml rename to external-tests/jEdit/doc/users-guide/installing-modes.xml diff --git a/testes/jEdit/doc/users-guide/launcher-guide.xml b/external-tests/jEdit/doc/users-guide/launcher-guide.xml similarity index 100% rename from testes/jEdit/doc/users-guide/launcher-guide.xml rename to external-tests/jEdit/doc/users-guide/launcher-guide.xml diff --git a/testes/jEdit/doc/users-guide/macro-basics.xml b/external-tests/jEdit/doc/users-guide/macro-basics.xml similarity index 100% rename from testes/jEdit/doc/users-guide/macro-basics.xml rename to external-tests/jEdit/doc/users-guide/macro-basics.xml diff --git a/testes/jEdit/doc/users-guide/macro-index.xml b/external-tests/jEdit/doc/users-guide/macro-index.xml similarity index 100% rename from testes/jEdit/doc/users-guide/macro-index.xml rename to external-tests/jEdit/doc/users-guide/macro-index.xml diff --git a/testes/jEdit/doc/users-guide/macro-tips.xml b/external-tests/jEdit/doc/users-guide/macro-tips.xml similarity index 100% rename from testes/jEdit/doc/users-guide/macro-tips.xml rename to external-tests/jEdit/doc/users-guide/macro-tips.xml diff --git a/testes/jEdit/doc/users-guide/plugin-implement.xml b/external-tests/jEdit/doc/users-guide/plugin-implement.xml similarity index 100% rename from testes/jEdit/doc/users-guide/plugin-implement.xml rename to external-tests/jEdit/doc/users-guide/plugin-implement.xml diff --git a/testes/jEdit/doc/users-guide/plugin-intro.xml b/external-tests/jEdit/doc/users-guide/plugin-intro.xml similarity index 100% rename from testes/jEdit/doc/users-guide/plugin-intro.xml rename to external-tests/jEdit/doc/users-guide/plugin-intro.xml diff --git a/testes/jEdit/doc/users-guide/plugin-tips.xml b/external-tests/jEdit/doc/users-guide/plugin-tips.xml similarity index 100% rename from testes/jEdit/doc/users-guide/plugin-tips.xml rename to external-tests/jEdit/doc/users-guide/plugin-tips.xml diff --git a/testes/jEdit/doc/users-guide/regexps.xml b/external-tests/jEdit/doc/users-guide/regexps.xml similarity index 100% rename from testes/jEdit/doc/users-guide/regexps.xml rename to external-tests/jEdit/doc/users-guide/regexps.xml diff --git a/testes/jEdit/doc/users-guide/shortcuts.xml b/external-tests/jEdit/doc/users-guide/shortcuts.xml similarity index 100% rename from testes/jEdit/doc/users-guide/shortcuts.xml rename to external-tests/jEdit/doc/users-guide/shortcuts.xml diff --git a/testes/jEdit/doc/users-guide/source-edit.xml b/external-tests/jEdit/doc/users-guide/source-edit.xml similarity index 100% rename from testes/jEdit/doc/users-guide/source-edit.xml rename to external-tests/jEdit/doc/users-guide/source-edit.xml diff --git a/testes/jEdit/doc/users-guide/starting.xml b/external-tests/jEdit/doc/users-guide/starting.xml similarity index 100% rename from testes/jEdit/doc/users-guide/starting.xml rename to external-tests/jEdit/doc/users-guide/starting.xml diff --git a/testes/jEdit/doc/users-guide/text-edit.xml b/external-tests/jEdit/doc/users-guide/text-edit.xml similarity index 100% rename from testes/jEdit/doc/users-guide/text-edit.xml rename to external-tests/jEdit/doc/users-guide/text-edit.xml diff --git a/testes/jEdit/doc/users-guide/updating-modes.xml b/external-tests/jEdit/doc/users-guide/updating-modes.xml similarity index 100% rename from testes/jEdit/doc/users-guide/updating-modes.xml rename to external-tests/jEdit/doc/users-guide/updating-modes.xml diff --git a/testes/jEdit/doc/users-guide/users-guide.xml b/external-tests/jEdit/doc/users-guide/users-guide.xml similarity index 100% rename from testes/jEdit/doc/users-guide/users-guide.xml rename to external-tests/jEdit/doc/users-guide/users-guide.xml diff --git a/testes/jEdit/doc/users-guide/using-macros.xml b/external-tests/jEdit/doc/users-guide/using-macros.xml similarity index 100% rename from testes/jEdit/doc/users-guide/using-macros.xml rename to external-tests/jEdit/doc/users-guide/using-macros.xml diff --git a/testes/jEdit/doc/users-guide/using-plugins.xml b/external-tests/jEdit/doc/users-guide/using-plugins.xml similarity index 100% rename from testes/jEdit/doc/users-guide/using-plugins.xml rename to external-tests/jEdit/doc/users-guide/using-plugins.xml diff --git a/testes/jEdit/doc/users-guide/writing-modes.xml b/external-tests/jEdit/doc/users-guide/writing-modes.xml similarity index 100% rename from testes/jEdit/doc/users-guide/writing-modes.xml rename to external-tests/jEdit/doc/users-guide/writing-modes.xml diff --git a/testes/jEdit/doc/welcome.html b/external-tests/jEdit/doc/welcome.html similarity index 100% rename from testes/jEdit/doc/welcome.html rename to external-tests/jEdit/doc/welcome.html diff --git a/testes/jEdit/doc/whatsnew/news.xml b/external-tests/jEdit/doc/whatsnew/news.xml similarity index 100% rename from testes/jEdit/doc/whatsnew/news.xml rename to external-tests/jEdit/doc/whatsnew/news.xml diff --git a/testes/jEdit/doclet/GenerateTocXML.java b/external-tests/jEdit/doclet/GenerateTocXML.java similarity index 100% rename from testes/jEdit/doclet/GenerateTocXML.java rename to external-tests/jEdit/doclet/GenerateTocXML.java diff --git a/testes/jEdit/icons/WindowsInstallerImage.bmp b/external-tests/jEdit/icons/WindowsInstallerImage.bmp similarity index 100% rename from testes/jEdit/icons/WindowsInstallerImage.bmp rename to external-tests/jEdit/icons/WindowsInstallerImage.bmp diff --git a/testes/jEdit/icons/WindowsInstallerSmallImage.bmp b/external-tests/jEdit/icons/WindowsInstallerSmallImage.bmp similarity index 100% rename from testes/jEdit/icons/WindowsInstallerSmallImage.bmp rename to external-tests/jEdit/icons/WindowsInstallerSmallImage.bmp diff --git a/testes/jEdit/icons/file.icns b/external-tests/jEdit/icons/file.icns similarity index 100% rename from testes/jEdit/icons/file.icns rename to external-tests/jEdit/icons/file.icns diff --git a/testes/jEdit/icons/icon.icns b/external-tests/jEdit/icons/icon.icns similarity index 100% rename from testes/jEdit/icons/icon.icns rename to external-tests/jEdit/icons/icon.icns diff --git a/testes/jEdit/icons/jedit-file48.png b/external-tests/jEdit/icons/jedit-file48.png similarity index 100% rename from testes/jEdit/icons/jedit-file48.png rename to external-tests/jEdit/icons/jedit-file48.png diff --git a/testes/jEdit/icons/jedit-icon48.png b/external-tests/jEdit/icons/jedit-icon48.png similarity index 100% rename from testes/jEdit/icons/jedit-icon48.png rename to external-tests/jEdit/icons/jedit-icon48.png diff --git a/testes/jEdit/icons/jedit.ico b/external-tests/jEdit/icons/jedit.ico similarity index 100% rename from testes/jEdit/icons/jedit.ico rename to external-tests/jEdit/icons/jedit.ico diff --git a/testes/jEdit/installer/BZip2Constants.java b/external-tests/jEdit/installer/BZip2Constants.java similarity index 100% rename from testes/jEdit/installer/BZip2Constants.java rename to external-tests/jEdit/installer/BZip2Constants.java diff --git a/testes/jEdit/installer/CBZip2InputStream.java b/external-tests/jEdit/installer/CBZip2InputStream.java similarity index 100% rename from testes/jEdit/installer/CBZip2InputStream.java rename to external-tests/jEdit/installer/CBZip2InputStream.java diff --git a/testes/jEdit/installer/CBZip2OutputStream.java b/external-tests/jEdit/installer/CBZip2OutputStream.java similarity index 100% rename from testes/jEdit/installer/CBZip2OutputStream.java rename to external-tests/jEdit/installer/CBZip2OutputStream.java diff --git a/testes/jEdit/installer/CRC.java b/external-tests/jEdit/installer/CRC.java similarity index 100% rename from testes/jEdit/installer/CRC.java rename to external-tests/jEdit/installer/CRC.java diff --git a/testes/jEdit/installer/ConsoleInstall.java b/external-tests/jEdit/installer/ConsoleInstall.java similarity index 100% rename from testes/jEdit/installer/ConsoleInstall.java rename to external-tests/jEdit/installer/ConsoleInstall.java diff --git a/testes/jEdit/installer/ConsoleProgress.java b/external-tests/jEdit/installer/ConsoleProgress.java similarity index 100% rename from testes/jEdit/installer/ConsoleProgress.java rename to external-tests/jEdit/installer/ConsoleProgress.java diff --git a/testes/jEdit/installer/Install.java b/external-tests/jEdit/installer/Install.java similarity index 100% rename from testes/jEdit/installer/Install.java rename to external-tests/jEdit/installer/Install.java diff --git a/testes/jEdit/installer/InstallThread.java b/external-tests/jEdit/installer/InstallThread.java similarity index 100% rename from testes/jEdit/installer/InstallThread.java rename to external-tests/jEdit/installer/InstallThread.java diff --git a/testes/jEdit/installer/InvalidHeaderException.java b/external-tests/jEdit/installer/InvalidHeaderException.java similarity index 100% rename from testes/jEdit/installer/InvalidHeaderException.java rename to external-tests/jEdit/installer/InvalidHeaderException.java diff --git a/testes/jEdit/installer/NonInteractiveInstall.java b/external-tests/jEdit/installer/NonInteractiveInstall.java similarity index 100% rename from testes/jEdit/installer/NonInteractiveInstall.java rename to external-tests/jEdit/installer/NonInteractiveInstall.java diff --git a/testes/jEdit/installer/OperatingSystem.java b/external-tests/jEdit/installer/OperatingSystem.java similarity index 100% rename from testes/jEdit/installer/OperatingSystem.java rename to external-tests/jEdit/installer/OperatingSystem.java diff --git a/testes/jEdit/installer/Progress.java b/external-tests/jEdit/installer/Progress.java similarity index 100% rename from testes/jEdit/installer/Progress.java rename to external-tests/jEdit/installer/Progress.java diff --git a/testes/jEdit/installer/ServerKiller.java b/external-tests/jEdit/installer/ServerKiller.java similarity index 100% rename from testes/jEdit/installer/ServerKiller.java rename to external-tests/jEdit/installer/ServerKiller.java diff --git a/testes/jEdit/installer/SwingInstall.java b/external-tests/jEdit/installer/SwingInstall.java similarity index 100% rename from testes/jEdit/installer/SwingInstall.java rename to external-tests/jEdit/installer/SwingInstall.java diff --git a/testes/jEdit/installer/TarBuffer.java b/external-tests/jEdit/installer/TarBuffer.java similarity index 100% rename from testes/jEdit/installer/TarBuffer.java rename to external-tests/jEdit/installer/TarBuffer.java diff --git a/testes/jEdit/installer/TarEntry.java b/external-tests/jEdit/installer/TarEntry.java similarity index 100% rename from testes/jEdit/installer/TarEntry.java rename to external-tests/jEdit/installer/TarEntry.java diff --git a/testes/jEdit/installer/TarHeader.java b/external-tests/jEdit/installer/TarHeader.java similarity index 100% rename from testes/jEdit/installer/TarHeader.java rename to external-tests/jEdit/installer/TarHeader.java diff --git a/testes/jEdit/installer/TarInputStream.java b/external-tests/jEdit/installer/TarInputStream.java similarity index 100% rename from testes/jEdit/installer/TarInputStream.java rename to external-tests/jEdit/installer/TarInputStream.java diff --git a/testes/jEdit/installer/TarOutputStream.java b/external-tests/jEdit/installer/TarOutputStream.java similarity index 100% rename from testes/jEdit/installer/TarOutputStream.java rename to external-tests/jEdit/installer/TarOutputStream.java diff --git a/testes/jEdit/installer/done-HalfAnOS.html b/external-tests/jEdit/installer/done-HalfAnOS.html similarity index 100% rename from testes/jEdit/installer/done-HalfAnOS.html rename to external-tests/jEdit/installer/done-HalfAnOS.html diff --git a/testes/jEdit/installer/done-MacOS.html b/external-tests/jEdit/installer/done-MacOS.html similarity index 100% rename from testes/jEdit/installer/done-MacOS.html rename to external-tests/jEdit/installer/done-MacOS.html diff --git a/testes/jEdit/installer/done-Unix.html b/external-tests/jEdit/installer/done-Unix.html similarity index 100% rename from testes/jEdit/installer/done-Unix.html rename to external-tests/jEdit/installer/done-Unix.html diff --git a/testes/jEdit/installer/done-VMS.html b/external-tests/jEdit/installer/done-VMS.html similarity index 100% rename from testes/jEdit/installer/done-VMS.html rename to external-tests/jEdit/installer/done-VMS.html diff --git a/testes/jEdit/installer/done-Windows.html b/external-tests/jEdit/installer/done-Windows.html similarity index 100% rename from testes/jEdit/installer/done-Windows.html rename to external-tests/jEdit/installer/done-Windows.html diff --git a/testes/jEdit/installer/gpl.html b/external-tests/jEdit/installer/gpl.html similarity index 100% rename from testes/jEdit/installer/gpl.html rename to external-tests/jEdit/installer/gpl.html diff --git a/testes/jEdit/installer/install.mf b/external-tests/jEdit/installer/install.mf similarity index 100% rename from testes/jEdit/installer/install.mf rename to external-tests/jEdit/installer/install.mf diff --git a/testes/jEdit/installer/install.props b/external-tests/jEdit/installer/install.props similarity index 100% rename from testes/jEdit/installer/install.props rename to external-tests/jEdit/installer/install.props diff --git a/testes/jEdit/installer/readme.html b/external-tests/jEdit/installer/readme.html similarity index 100% rename from testes/jEdit/installer/readme.html rename to external-tests/jEdit/installer/readme.html diff --git a/testes/jEdit/ivy.xml b/external-tests/jEdit/ivy.xml similarity index 100% rename from testes/jEdit/ivy.xml rename to external-tests/jEdit/ivy.xml diff --git a/testes/jEdit/ivysettings.xml b/external-tests/jEdit/ivysettings.xml similarity index 100% rename from testes/jEdit/ivysettings.xml rename to external-tests/jEdit/ivysettings.xml diff --git a/testes/jEdit/jEdit.iml b/external-tests/jEdit/jEdit.iml similarity index 100% rename from testes/jEdit/jEdit.iml rename to external-tests/jEdit/jEdit.iml diff --git a/testes/jEdit/keymaps/Alan_keys.props b/external-tests/jEdit/keymaps/Alan_keys.props similarity index 100% rename from testes/jEdit/keymaps/Alan_keys.props rename to external-tests/jEdit/keymaps/Alan_keys.props diff --git a/testes/jEdit/keymaps/Emacs_keys.props b/external-tests/jEdit/keymaps/Emacs_keys.props similarity index 100% rename from testes/jEdit/keymaps/Emacs_keys.props rename to external-tests/jEdit/keymaps/Emacs_keys.props diff --git a/testes/jEdit/keymaps/German_Keyboard_keys.props b/external-tests/jEdit/keymaps/German_Keyboard_keys.props similarity index 100% rename from testes/jEdit/keymaps/German_Keyboard_keys.props rename to external-tests/jEdit/keymaps/German_Keyboard_keys.props diff --git a/testes/jEdit/keymaps/IntelliJ_IDEA_keys.props b/external-tests/jEdit/keymaps/IntelliJ_IDEA_keys.props similarity index 100% rename from testes/jEdit/keymaps/IntelliJ_IDEA_keys.props rename to external-tests/jEdit/keymaps/IntelliJ_IDEA_keys.props diff --git a/testes/jEdit/keymaps/Mac_OS_X_keys.props b/external-tests/jEdit/keymaps/Mac_OS_X_keys.props similarity index 100% rename from testes/jEdit/keymaps/Mac_OS_X_keys.props rename to external-tests/jEdit/keymaps/Mac_OS_X_keys.props diff --git a/testes/jEdit/keymaps/jEdit_keys.props b/external-tests/jEdit/keymaps/jEdit_keys.props similarity index 100% rename from testes/jEdit/keymaps/jEdit_keys.props rename to external-tests/jEdit/keymaps/jEdit_keys.props diff --git a/testes/jEdit/macros/C/Include_Guard.bsh b/external-tests/jEdit/macros/C/Include_Guard.bsh similarity index 100% rename from testes/jEdit/macros/C/Include_Guard.bsh rename to external-tests/jEdit/macros/C/Include_Guard.bsh diff --git a/testes/jEdit/macros/C/Toggle_Header_Source.bsh b/external-tests/jEdit/macros/C/Toggle_Header_Source.bsh similarity index 100% rename from testes/jEdit/macros/C/Toggle_Header_Source.bsh rename to external-tests/jEdit/macros/C/Toggle_Header_Source.bsh diff --git a/testes/jEdit/macros/Clipboard/Copy_Lines.bsh b/external-tests/jEdit/macros/Clipboard/Copy_Lines.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Copy_Lines.bsh rename to external-tests/jEdit/macros/Clipboard/Copy_Lines.bsh diff --git a/testes/jEdit/macros/Clipboard/Copy_Lines_Containing.bsh b/external-tests/jEdit/macros/Clipboard/Copy_Lines_Containing.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Copy_Lines_Containing.bsh rename to external-tests/jEdit/macros/Clipboard/Copy_Lines_Containing.bsh diff --git a/testes/jEdit/macros/Clipboard/Copy_Visible_Lines.bsh b/external-tests/jEdit/macros/Clipboard/Copy_Visible_Lines.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Copy_Visible_Lines.bsh rename to external-tests/jEdit/macros/Clipboard/Copy_Visible_Lines.bsh diff --git a/testes/jEdit/macros/Clipboard/Cut_Lines.bsh b/external-tests/jEdit/macros/Clipboard/Cut_Lines.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Cut_Lines.bsh rename to external-tests/jEdit/macros/Clipboard/Cut_Lines.bsh diff --git a/testes/jEdit/macros/Clipboard/Cut_Lines_Containing.bsh b/external-tests/jEdit/macros/Clipboard/Cut_Lines_Containing.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Cut_Lines_Containing.bsh rename to external-tests/jEdit/macros/Clipboard/Cut_Lines_Containing.bsh diff --git a/testes/jEdit/macros/Clipboard/Paste_Indent.bsh b/external-tests/jEdit/macros/Clipboard/Paste_Indent.bsh similarity index 100% rename from testes/jEdit/macros/Clipboard/Paste_Indent.bsh rename to external-tests/jEdit/macros/Clipboard/Paste_Indent.bsh diff --git a/testes/jEdit/macros/Editing/Duplicate_Lines_Above.bsh b/external-tests/jEdit/macros/Editing/Duplicate_Lines_Above.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Duplicate_Lines_Above.bsh rename to external-tests/jEdit/macros/Editing/Duplicate_Lines_Above.bsh diff --git a/testes/jEdit/macros/Editing/Duplicate_Lines_Below.bsh b/external-tests/jEdit/macros/Editing/Duplicate_Lines_Below.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Duplicate_Lines_Below.bsh rename to external-tests/jEdit/macros/Editing/Duplicate_Lines_Below.bsh diff --git a/testes/jEdit/macros/Editing/Go_to_Column.bsh b/external-tests/jEdit/macros/Editing/Go_to_Column.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Go_to_Column.bsh rename to external-tests/jEdit/macros/Editing/Go_to_Column.bsh diff --git a/testes/jEdit/macros/Editing/Go_to_Offset.bsh b/external-tests/jEdit/macros/Editing/Go_to_Offset.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Go_to_Offset.bsh rename to external-tests/jEdit/macros/Editing/Go_to_Offset.bsh diff --git a/testes/jEdit/macros/Editing/Greedy_Backspace.bsh b/external-tests/jEdit/macros/Editing/Greedy_Backspace.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Greedy_Backspace.bsh rename to external-tests/jEdit/macros/Editing/Greedy_Backspace.bsh diff --git a/testes/jEdit/macros/Editing/Greedy_Delete.bsh b/external-tests/jEdit/macros/Editing/Greedy_Delete.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Greedy_Delete.bsh rename to external-tests/jEdit/macros/Editing/Greedy_Delete.bsh diff --git a/testes/jEdit/macros/Editing/Greedy_Left.bsh b/external-tests/jEdit/macros/Editing/Greedy_Left.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Greedy_Left.bsh rename to external-tests/jEdit/macros/Editing/Greedy_Left.bsh diff --git a/testes/jEdit/macros/Editing/Greedy_Right.bsh b/external-tests/jEdit/macros/Editing/Greedy_Right.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Greedy_Right.bsh rename to external-tests/jEdit/macros/Editing/Greedy_Right.bsh diff --git a/testes/jEdit/macros/Editing/Keywords_to_Upper_Case.bsh b/external-tests/jEdit/macros/Editing/Keywords_to_Upper_Case.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Keywords_to_Upper_Case.bsh rename to external-tests/jEdit/macros/Editing/Keywords_to_Upper_Case.bsh diff --git a/testes/jEdit/macros/Editing/Mode_Switcher.bsh b/external-tests/jEdit/macros/Editing/Mode_Switcher.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Mode_Switcher.bsh rename to external-tests/jEdit/macros/Editing/Mode_Switcher.bsh diff --git a/testes/jEdit/macros/Editing/Move_Lines_Down.bsh b/external-tests/jEdit/macros/Editing/Move_Lines_Down.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Move_Lines_Down.bsh rename to external-tests/jEdit/macros/Editing/Move_Lines_Down.bsh diff --git a/testes/jEdit/macros/Editing/Move_Lines_Up.bsh b/external-tests/jEdit/macros/Editing/Move_Lines_Up.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Move_Lines_Up.bsh rename to external-tests/jEdit/macros/Editing/Move_Lines_Up.bsh diff --git a/testes/jEdit/macros/Editing/Open_Line_Above.bsh b/external-tests/jEdit/macros/Editing/Open_Line_Above.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Open_Line_Above.bsh rename to external-tests/jEdit/macros/Editing/Open_Line_Above.bsh diff --git a/testes/jEdit/macros/Editing/Open_Line_Below.bsh b/external-tests/jEdit/macros/Editing/Open_Line_Below.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Open_Line_Below.bsh rename to external-tests/jEdit/macros/Editing/Open_Line_Below.bsh diff --git a/testes/jEdit/macros/Editing/Toggle_Fold.bsh b/external-tests/jEdit/macros/Editing/Toggle_Fold.bsh similarity index 100% rename from testes/jEdit/macros/Editing/Toggle_Fold.bsh rename to external-tests/jEdit/macros/Editing/Toggle_Fold.bsh diff --git a/testes/jEdit/macros/Emacs/EmacsUtil.bsh b/external-tests/jEdit/macros/Emacs/EmacsUtil.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/EmacsUtil.bsh rename to external-tests/jEdit/macros/Emacs/EmacsUtil.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Align_Decls.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Align_Decls.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Align_Decls.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Align_Decls.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Backward_Sentence.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Backward_Sentence.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Backward_Sentence.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Backward_Sentence.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Capitalize_Word.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Capitalize_Word.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Capitalize_Word.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Capitalize_Word.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Center_Line.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Center_Line.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Center_Line.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Center_Line.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Ctrl-K.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Ctrl-K.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Ctrl-K.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Ctrl-K.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Downcase_Word.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Downcase_Word.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Downcase_Word.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Downcase_Word.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Exchange_Point_and_Mark.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Exchange_Point_and_Mark.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Exchange_Point_and_Mark.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Exchange_Point_and_Mark.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Fixup_Whitespace.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Fixup_Whitespace.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Fixup_Whitespace.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Fixup_Whitespace.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Forward_Sentence.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Forward_Sentence.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Forward_Sentence.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Forward_Sentence.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Insert_File.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Insert_File.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Insert_File.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Insert_File.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Kill_Line.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Kill_Line.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Kill_Line.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Kill_Line.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Kill_Region.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Kill_Region.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Kill_Region.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Kill_Region.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Kill_Ring_Save.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Kill_Ring_Save.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Kill_Ring_Save.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Kill_Ring_Save.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Kill_Sentence.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Kill_Sentence.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Kill_Sentence.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Kill_Sentence.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Next_Line.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Next_Line.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Next_Line.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Next_Line.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Open_Line.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Open_Line.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Open_Line.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Open_Line.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Previous_Line.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Previous_Line.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Previous_Line.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Previous_Line.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Set_Mark.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Set_Mark.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Set_Mark.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Set_Mark.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Set_Wrap.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Set_Wrap.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Set_Wrap.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Set_Wrap.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Transpose_Chars.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Transpose_Chars.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Transpose_Chars.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Transpose_Chars.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Transpose_Lines.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Transpose_Lines.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Transpose_Lines.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Transpose_Lines.bsh diff --git a/testes/jEdit/macros/Emacs/Emacs_Upcase_Word.bsh b/external-tests/jEdit/macros/Emacs/Emacs_Upcase_Word.bsh similarity index 100% rename from testes/jEdit/macros/Emacs/Emacs_Upcase_Word.bsh rename to external-tests/jEdit/macros/Emacs/Emacs_Upcase_Word.bsh diff --git a/testes/jEdit/macros/Emacs/LICENSE.md b/external-tests/jEdit/macros/Emacs/LICENSE.md similarity index 100% rename from testes/jEdit/macros/Emacs/LICENSE.md rename to external-tests/jEdit/macros/Emacs/LICENSE.md diff --git a/testes/jEdit/macros/Emacs/README.md b/external-tests/jEdit/macros/Emacs/README.md similarity index 100% rename from testes/jEdit/macros/Emacs/README.md rename to external-tests/jEdit/macros/Emacs/README.md diff --git a/testes/jEdit/macros/Files/Browse_Buffer_Directory.bsh b/external-tests/jEdit/macros/Files/Browse_Buffer_Directory.bsh similarity index 100% rename from testes/jEdit/macros/Files/Browse_Buffer_Directory.bsh rename to external-tests/jEdit/macros/Files/Browse_Buffer_Directory.bsh diff --git a/testes/jEdit/macros/Files/Browse_Directory.bsh b/external-tests/jEdit/macros/Files/Browse_Directory.bsh similarity index 100% rename from testes/jEdit/macros/Files/Browse_Directory.bsh rename to external-tests/jEdit/macros/Files/Browse_Directory.bsh diff --git a/testes/jEdit/macros/Files/Buffer_Switcher.bsh b/external-tests/jEdit/macros/Files/Buffer_Switcher.bsh similarity index 100% rename from testes/jEdit/macros/Files/Buffer_Switcher.bsh rename to external-tests/jEdit/macros/Files/Buffer_Switcher.bsh diff --git a/testes/jEdit/macros/Files/Copy_Name_to_Clipboard.bsh b/external-tests/jEdit/macros/Files/Copy_Name_to_Clipboard.bsh similarity index 100% rename from testes/jEdit/macros/Files/Copy_Name_to_Clipboard.bsh rename to external-tests/jEdit/macros/Files/Copy_Name_to_Clipboard.bsh diff --git a/testes/jEdit/macros/Files/Copy_Path_to_Clipboard.bsh b/external-tests/jEdit/macros/Files/Copy_Path_to_Clipboard.bsh similarity index 100% rename from testes/jEdit/macros/Files/Copy_Path_to_Clipboard.bsh rename to external-tests/jEdit/macros/Files/Copy_Path_to_Clipboard.bsh diff --git a/testes/jEdit/macros/Files/Delete_Current.bsh b/external-tests/jEdit/macros/Files/Delete_Current.bsh similarity index 100% rename from testes/jEdit/macros/Files/Delete_Current.bsh rename to external-tests/jEdit/macros/Files/Delete_Current.bsh diff --git a/testes/jEdit/macros/Files/Duplicate_Buffer.bsh b/external-tests/jEdit/macros/Files/Duplicate_Buffer.bsh similarity index 100% rename from testes/jEdit/macros/Files/Duplicate_Buffer.bsh rename to external-tests/jEdit/macros/Files/Duplicate_Buffer.bsh diff --git a/testes/jEdit/macros/Files/Glob_Close.bsh b/external-tests/jEdit/macros/Files/Glob_Close.bsh similarity index 100% rename from testes/jEdit/macros/Files/Glob_Close.bsh rename to external-tests/jEdit/macros/Files/Glob_Close.bsh diff --git a/testes/jEdit/macros/Files/Insert_Selection.bsh b/external-tests/jEdit/macros/Files/Insert_Selection.bsh similarity index 100% rename from testes/jEdit/macros/Files/Insert_Selection.bsh rename to external-tests/jEdit/macros/Files/Insert_Selection.bsh diff --git a/testes/jEdit/macros/Files/Next_Dirty_Buffer.bsh b/external-tests/jEdit/macros/Files/Next_Dirty_Buffer.bsh similarity index 100% rename from testes/jEdit/macros/Files/Next_Dirty_Buffer.bsh rename to external-tests/jEdit/macros/Files/Next_Dirty_Buffer.bsh diff --git a/testes/jEdit/macros/Files/Open_Path.bsh b/external-tests/jEdit/macros/Files/Open_Path.bsh similarity index 100% rename from testes/jEdit/macros/Files/Open_Path.bsh rename to external-tests/jEdit/macros/Files/Open_Path.bsh diff --git a/testes/jEdit/macros/Files/Open_Selection.bsh b/external-tests/jEdit/macros/Files/Open_Selection.bsh similarity index 100% rename from testes/jEdit/macros/Files/Open_Selection.bsh rename to external-tests/jEdit/macros/Files/Open_Selection.bsh diff --git a/testes/jEdit/macros/Files/Open_Selection_In_Desktop.bsh b/external-tests/jEdit/macros/Files/Open_Selection_In_Desktop.bsh similarity index 100% rename from testes/jEdit/macros/Files/Open_Selection_In_Desktop.bsh rename to external-tests/jEdit/macros/Files/Open_Selection_In_Desktop.bsh diff --git a/testes/jEdit/macros/Files/Send_Buffer_To_Next_Split.bsh b/external-tests/jEdit/macros/Files/Send_Buffer_To_Next_Split.bsh similarity index 100% rename from testes/jEdit/macros/Files/Send_Buffer_To_Next_Split.bsh rename to external-tests/jEdit/macros/Files/Send_Buffer_To_Next_Split.bsh diff --git a/testes/jEdit/macros/Files/Toggle_ReadOnly.bsh b/external-tests/jEdit/macros/Files/Toggle_ReadOnly.bsh similarity index 100% rename from testes/jEdit/macros/Files/Toggle_ReadOnly.bsh rename to external-tests/jEdit/macros/Files/Toggle_ReadOnly.bsh diff --git a/testes/jEdit/macros/Interface/Decrease_Font_Size.bsh b/external-tests/jEdit/macros/Interface/Decrease_Font_Size.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Decrease_Font_Size.bsh rename to external-tests/jEdit/macros/Interface/Decrease_Font_Size.bsh diff --git a/testes/jEdit/macros/Interface/Increase_Font_Size.bsh b/external-tests/jEdit/macros/Interface/Increase_Font_Size.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Increase_Font_Size.bsh rename to external-tests/jEdit/macros/Interface/Increase_Font_Size.bsh diff --git a/testes/jEdit/macros/Interface/Open_Context_Menu.bsh b/external-tests/jEdit/macros/Interface/Open_Context_Menu.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Open_Context_Menu.bsh rename to external-tests/jEdit/macros/Interface/Open_Context_Menu.bsh diff --git a/testes/jEdit/macros/Interface/Reset_TextArea.bsh b/external-tests/jEdit/macros/Interface/Reset_TextArea.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Reset_TextArea.bsh rename to external-tests/jEdit/macros/Interface/Reset_TextArea.bsh diff --git a/testes/jEdit/macros/Interface/Splitpane_Grow.bsh b/external-tests/jEdit/macros/Interface/Splitpane_Grow.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Splitpane_Grow.bsh rename to external-tests/jEdit/macros/Interface/Splitpane_Grow.bsh diff --git a/testes/jEdit/macros/Interface/Toggle_Bottom_Docking_Area.bsh b/external-tests/jEdit/macros/Interface/Toggle_Bottom_Docking_Area.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Toggle_Bottom_Docking_Area.bsh rename to external-tests/jEdit/macros/Interface/Toggle_Bottom_Docking_Area.bsh diff --git a/testes/jEdit/macros/Interface/Toggle_Left_Docking_Area.bsh b/external-tests/jEdit/macros/Interface/Toggle_Left_Docking_Area.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Toggle_Left_Docking_Area.bsh rename to external-tests/jEdit/macros/Interface/Toggle_Left_Docking_Area.bsh diff --git a/testes/jEdit/macros/Interface/Toggle_Right_Docking_Area.bsh b/external-tests/jEdit/macros/Interface/Toggle_Right_Docking_Area.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Toggle_Right_Docking_Area.bsh rename to external-tests/jEdit/macros/Interface/Toggle_Right_Docking_Area.bsh diff --git a/testes/jEdit/macros/Interface/Toggle_Top_Docking_Area.bsh b/external-tests/jEdit/macros/Interface/Toggle_Top_Docking_Area.bsh similarity index 100% rename from testes/jEdit/macros/Interface/Toggle_Top_Docking_Area.bsh rename to external-tests/jEdit/macros/Interface/Toggle_Top_Docking_Area.bsh diff --git a/testes/jEdit/macros/Java/Create_Constructor.bsh b/external-tests/jEdit/macros/Java/Create_Constructor.bsh similarity index 100% rename from testes/jEdit/macros/Java/Create_Constructor.bsh rename to external-tests/jEdit/macros/Java/Create_Constructor.bsh diff --git a/testes/jEdit/macros/Java/Get_Class_Name.bsh b/external-tests/jEdit/macros/Java/Get_Class_Name.bsh similarity index 100% rename from testes/jEdit/macros/Java/Get_Class_Name.bsh rename to external-tests/jEdit/macros/Java/Get_Class_Name.bsh diff --git a/testes/jEdit/macros/Java/Get_Package_Name.bsh b/external-tests/jEdit/macros/Java/Get_Package_Name.bsh similarity index 100% rename from testes/jEdit/macros/Java/Get_Package_Name.bsh rename to external-tests/jEdit/macros/Java/Get_Package_Name.bsh diff --git a/testes/jEdit/macros/Java/Java_File_Save.bsh b/external-tests/jEdit/macros/Java/Java_File_Save.bsh similarity index 100% rename from testes/jEdit/macros/Java/Java_File_Save.bsh rename to external-tests/jEdit/macros/Java/Java_File_Save.bsh diff --git a/testes/jEdit/macros/Java/Make_Get_and_Set_Methods.bsh b/external-tests/jEdit/macros/Java/Make_Get_and_Set_Methods.bsh similarity index 100% rename from testes/jEdit/macros/Java/Make_Get_and_Set_Methods.bsh rename to external-tests/jEdit/macros/Java/Make_Get_and_Set_Methods.bsh diff --git a/testes/jEdit/macros/Java/Preview_JavaDoc_Of_Current_Buffer.bsh b/external-tests/jEdit/macros/Java/Preview_JavaDoc_Of_Current_Buffer.bsh similarity index 100% rename from testes/jEdit/macros/Java/Preview_JavaDoc_Of_Current_Buffer.bsh rename to external-tests/jEdit/macros/Java/Preview_JavaDoc_Of_Current_Buffer.bsh diff --git a/testes/jEdit/macros/Misc/Buffer_to_HyperSearch_Results.bsh b/external-tests/jEdit/macros/Misc/Buffer_to_HyperSearch_Results.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Buffer_to_HyperSearch_Results.bsh rename to external-tests/jEdit/macros/Misc/Buffer_to_HyperSearch_Results.bsh diff --git a/testes/jEdit/macros/Misc/Debug_BufferSets.bsh b/external-tests/jEdit/macros/Misc/Debug_BufferSets.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Debug_BufferSets.bsh rename to external-tests/jEdit/macros/Misc/Debug_BufferSets.bsh diff --git a/testes/jEdit/macros/Misc/Display_Abbreviations.bsh b/external-tests/jEdit/macros/Misc/Display_Abbreviations.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Display_Abbreviations.bsh rename to external-tests/jEdit/macros/Misc/Display_Abbreviations.bsh diff --git a/testes/jEdit/macros/Misc/Display_Actions.bsh b/external-tests/jEdit/macros/Misc/Display_Actions.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Display_Actions.bsh rename to external-tests/jEdit/macros/Misc/Display_Actions.bsh diff --git a/testes/jEdit/macros/Misc/Display_Character_Code.bsh b/external-tests/jEdit/macros/Misc/Display_Character_Code.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Display_Character_Code.bsh rename to external-tests/jEdit/macros/Misc/Display_Character_Code.bsh diff --git a/testes/jEdit/macros/Misc/Display_Shortcuts.bsh b/external-tests/jEdit/macros/Misc/Display_Shortcuts.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Display_Shortcuts.bsh rename to external-tests/jEdit/macros/Misc/Display_Shortcuts.bsh diff --git a/testes/jEdit/macros/Misc/Evaluate_Buffer_in_BeanShell.bsh b/external-tests/jEdit/macros/Misc/Evaluate_Buffer_in_BeanShell.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Evaluate_Buffer_in_BeanShell.bsh rename to external-tests/jEdit/macros/Misc/Evaluate_Buffer_in_BeanShell.bsh diff --git a/testes/jEdit/macros/Misc/Generate Encodings List.bsh b/external-tests/jEdit/macros/Misc/Generate Encodings List.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Generate Encodings List.bsh rename to external-tests/jEdit/macros/Misc/Generate Encodings List.bsh diff --git a/testes/jEdit/macros/Misc/Generate Modes List.bsh b/external-tests/jEdit/macros/Misc/Generate Modes List.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Generate Modes List.bsh rename to external-tests/jEdit/macros/Misc/Generate Modes List.bsh diff --git a/testes/jEdit/macros/Misc/Hex_Convert.bsh b/external-tests/jEdit/macros/Misc/Hex_Convert.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Hex_Convert.bsh rename to external-tests/jEdit/macros/Misc/Hex_Convert.bsh diff --git a/testes/jEdit/macros/Misc/HyperSearch_Results_to_Buffer.bsh b/external-tests/jEdit/macros/Misc/HyperSearch_Results_to_Buffer.bsh similarity index 100% rename from testes/jEdit/macros/Misc/HyperSearch_Results_to_Buffer.bsh rename to external-tests/jEdit/macros/Misc/HyperSearch_Results_to_Buffer.bsh diff --git a/testes/jEdit/macros/Misc/Insert Plugins List.bsh b/external-tests/jEdit/macros/Misc/Insert Plugins List.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Insert Plugins List.bsh rename to external-tests/jEdit/macros/Misc/Insert Plugins List.bsh diff --git a/testes/jEdit/macros/Misc/Make_Bug_Report.bsh b/external-tests/jEdit/macros/Misc/Make_Bug_Report.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Make_Bug_Report.bsh rename to external-tests/jEdit/macros/Misc/Make_Bug_Report.bsh diff --git a/testes/jEdit/macros/Misc/Run_Script.bsh b/external-tests/jEdit/macros/Misc/Run_Script.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Run_Script.bsh rename to external-tests/jEdit/macros/Misc/Run_Script.bsh diff --git a/testes/jEdit/macros/Misc/Show_Threads.bsh b/external-tests/jEdit/macros/Misc/Show_Threads.bsh similarity index 100% rename from testes/jEdit/macros/Misc/Show_Threads.bsh rename to external-tests/jEdit/macros/Misc/Show_Threads.bsh diff --git a/testes/jEdit/macros/Properties/Create_Plugin_Announcement.bsh b/external-tests/jEdit/macros/Properties/Create_Plugin_Announcement.bsh similarity index 100% rename from testes/jEdit/macros/Properties/Create_Plugin_Announcement.bsh rename to external-tests/jEdit/macros/Properties/Create_Plugin_Announcement.bsh diff --git a/testes/jEdit/macros/Properties/Insert_Buffer_Properties.bsh b/external-tests/jEdit/macros/Properties/Insert_Buffer_Properties.bsh similarity index 100% rename from testes/jEdit/macros/Properties/Insert_Buffer_Properties.bsh rename to external-tests/jEdit/macros/Properties/Insert_Buffer_Properties.bsh diff --git a/testes/jEdit/macros/Properties/Look_and_Feel_Properties.bsh b/external-tests/jEdit/macros/Properties/Look_and_Feel_Properties.bsh similarity index 100% rename from testes/jEdit/macros/Properties/Look_and_Feel_Properties.bsh rename to external-tests/jEdit/macros/Properties/Look_and_Feel_Properties.bsh diff --git a/testes/jEdit/macros/Properties/System_Properties.bsh b/external-tests/jEdit/macros/Properties/System_Properties.bsh similarity index 100% rename from testes/jEdit/macros/Properties/System_Properties.bsh rename to external-tests/jEdit/macros/Properties/System_Properties.bsh diff --git a/testes/jEdit/macros/Properties/jEdit_Properties.bsh b/external-tests/jEdit/macros/Properties/jEdit_Properties.bsh similarity index 100% rename from testes/jEdit/macros/Properties/jEdit_Properties.bsh rename to external-tests/jEdit/macros/Properties/jEdit_Properties.bsh diff --git a/testes/jEdit/macros/Text/Add_Prefix_and_Suffix.bsh b/external-tests/jEdit/macros/Text/Add_Prefix_and_Suffix.bsh similarity index 100% rename from testes/jEdit/macros/Text/Add_Prefix_and_Suffix.bsh rename to external-tests/jEdit/macros/Text/Add_Prefix_and_Suffix.bsh diff --git a/testes/jEdit/macros/Text/Color_Picker.bsh b/external-tests/jEdit/macros/Text/Color_Picker.bsh similarity index 100% rename from testes/jEdit/macros/Text/Color_Picker.bsh rename to external-tests/jEdit/macros/Text/Color_Picker.bsh diff --git a/testes/jEdit/macros/Text/Compose_Tag.bsh b/external-tests/jEdit/macros/Text/Compose_Tag.bsh similarity index 100% rename from testes/jEdit/macros/Text/Compose_Tag.bsh rename to external-tests/jEdit/macros/Text/Compose_Tag.bsh diff --git a/testes/jEdit/macros/Text/Duplicate_Line.bsh b/external-tests/jEdit/macros/Text/Duplicate_Line.bsh similarity index 100% rename from testes/jEdit/macros/Text/Duplicate_Line.bsh rename to external-tests/jEdit/macros/Text/Duplicate_Line.bsh diff --git a/testes/jEdit/macros/Text/Insert_Date.bsh b/external-tests/jEdit/macros/Text/Insert_Date.bsh similarity index 100% rename from testes/jEdit/macros/Text/Insert_Date.bsh rename to external-tests/jEdit/macros/Text/Insert_Date.bsh diff --git a/testes/jEdit/macros/Text/Insert_Tag.bsh b/external-tests/jEdit/macros/Text/Insert_Tag.bsh similarity index 100% rename from testes/jEdit/macros/Text/Insert_Tag.bsh rename to external-tests/jEdit/macros/Text/Insert_Tag.bsh diff --git a/testes/jEdit/macros/Text/Line_Filter.bsh b/external-tests/jEdit/macros/Text/Line_Filter.bsh similarity index 100% rename from testes/jEdit/macros/Text/Line_Filter.bsh rename to external-tests/jEdit/macros/Text/Line_Filter.bsh diff --git a/testes/jEdit/macros/Text/Next_Char.bsh b/external-tests/jEdit/macros/Text/Next_Char.bsh similarity index 100% rename from testes/jEdit/macros/Text/Next_Char.bsh rename to external-tests/jEdit/macros/Text/Next_Char.bsh diff --git a/testes/jEdit/macros/Text/Reverse_Lines.bsh b/external-tests/jEdit/macros/Text/Reverse_Lines.bsh similarity index 100% rename from testes/jEdit/macros/Text/Reverse_Lines.bsh rename to external-tests/jEdit/macros/Text/Reverse_Lines.bsh diff --git a/testes/jEdit/macros/Text/Reverse_Selection.bsh b/external-tests/jEdit/macros/Text/Reverse_Selection.bsh similarity index 100% rename from testes/jEdit/macros/Text/Reverse_Selection.bsh rename to external-tests/jEdit/macros/Text/Reverse_Selection.bsh diff --git a/testes/jEdit/macros/Text/Single_Space_Buffer.bsh b/external-tests/jEdit/macros/Text/Single_Space_Buffer.bsh similarity index 100% rename from testes/jEdit/macros/Text/Single_Space_Buffer.bsh rename to external-tests/jEdit/macros/Text/Single_Space_Buffer.bsh diff --git a/testes/jEdit/misc/clojure/README.txt b/external-tests/jEdit/misc/clojure/README.txt similarity index 100% rename from testes/jEdit/misc/clojure/README.txt rename to external-tests/jEdit/misc/clojure/README.txt diff --git a/testes/jEdit/misc/clojure/keywords.clj b/external-tests/jEdit/misc/clojure/keywords.clj similarity index 100% rename from testes/jEdit/misc/clojure/keywords.clj rename to external-tests/jEdit/misc/clojure/keywords.clj diff --git a/testes/jEdit/misc/clojure/keywords.csv b/external-tests/jEdit/misc/clojure/keywords.csv similarity index 100% rename from testes/jEdit/misc/clojure/keywords.csv rename to external-tests/jEdit/misc/clojure/keywords.csv diff --git a/testes/jEdit/misc/clojure/run b/external-tests/jEdit/misc/clojure/run similarity index 100% rename from testes/jEdit/misc/clojure/run rename to external-tests/jEdit/misc/clojure/run diff --git a/testes/jEdit/misc/debug/bench_replace.bsh b/external-tests/jEdit/misc/debug/bench_replace.bsh similarity index 100% rename from testes/jEdit/misc/debug/bench_replace.bsh rename to external-tests/jEdit/misc/debug/bench_replace.bsh diff --git a/testes/jEdit/misc/debug/edit_bus_send_exploit.bsh b/external-tests/jEdit/misc/debug/edit_bus_send_exploit.bsh similarity index 100% rename from testes/jEdit/misc/debug/edit_bus_send_exploit.bsh rename to external-tests/jEdit/misc/debug/edit_bus_send_exploit.bsh diff --git a/testes/jEdit/misc/debug/info.txt b/external-tests/jEdit/misc/debug/info.txt similarity index 100% rename from testes/jEdit/misc/debug/info.txt rename to external-tests/jEdit/misc/debug/info.txt diff --git a/testes/jEdit/misc/debug/show_timing.patch b/external-tests/jEdit/misc/debug/show_timing.patch similarity index 100% rename from testes/jEdit/misc/debug/show_timing.patch rename to external-tests/jEdit/misc/debug/show_timing.patch diff --git a/testes/jEdit/misc/indentation_problems/01.cpp b/external-tests/jEdit/misc/indentation_problems/01.cpp similarity index 100% rename from testes/jEdit/misc/indentation_problems/01.cpp rename to external-tests/jEdit/misc/indentation_problems/01.cpp diff --git a/testes/jEdit/misc/indentation_problems/02.py b/external-tests/jEdit/misc/indentation_problems/02.py similarity index 100% rename from testes/jEdit/misc/indentation_problems/02.py rename to external-tests/jEdit/misc/indentation_problems/02.py diff --git a/testes/jEdit/misc/indentation_problems/03.java b/external-tests/jEdit/misc/indentation_problems/03.java similarity index 100% rename from testes/jEdit/misc/indentation_problems/03.java rename to external-tests/jEdit/misc/indentation_problems/03.java diff --git a/testes/jEdit/misc/indentation_problems/04.java b/external-tests/jEdit/misc/indentation_problems/04.java similarity index 100% rename from testes/jEdit/misc/indentation_problems/04.java rename to external-tests/jEdit/misc/indentation_problems/04.java diff --git a/testes/jEdit/misc/indentation_problems/05.sh b/external-tests/jEdit/misc/indentation_problems/05.sh similarity index 100% rename from testes/jEdit/misc/indentation_problems/05.sh rename to external-tests/jEdit/misc/indentation_problems/05.sh diff --git a/testes/jEdit/misc/indentation_problems/info.txt b/external-tests/jEdit/misc/indentation_problems/info.txt similarity index 100% rename from testes/jEdit/misc/indentation_problems/info.txt rename to external-tests/jEdit/misc/indentation_problems/info.txt diff --git a/testes/jEdit/misc/info.txt b/external-tests/jEdit/misc/info.txt similarity index 100% rename from testes/jEdit/misc/info.txt rename to external-tests/jEdit/misc/info.txt diff --git a/testes/jEdit/misc/mode_lint/mode_lint.xsl b/external-tests/jEdit/misc/mode_lint/mode_lint.xsl similarity index 100% rename from testes/jEdit/misc/mode_lint/mode_lint.xsl rename to external-tests/jEdit/misc/mode_lint/mode_lint.xsl diff --git a/testes/jEdit/modes/actionscript.xml b/external-tests/jEdit/modes/actionscript.xml similarity index 100% rename from testes/jEdit/modes/actionscript.xml rename to external-tests/jEdit/modes/actionscript.xml diff --git a/testes/jEdit/modes/ada.xml b/external-tests/jEdit/modes/ada.xml similarity index 100% rename from testes/jEdit/modes/ada.xml rename to external-tests/jEdit/modes/ada.xml diff --git a/testes/jEdit/modes/ada95.xml b/external-tests/jEdit/modes/ada95.xml similarity index 100% rename from testes/jEdit/modes/ada95.xml rename to external-tests/jEdit/modes/ada95.xml diff --git a/testes/jEdit/modes/ans-forth94.xml b/external-tests/jEdit/modes/ans-forth94.xml similarity index 100% rename from testes/jEdit/modes/ans-forth94.xml rename to external-tests/jEdit/modes/ans-forth94.xml diff --git a/testes/jEdit/modes/ant.xml b/external-tests/jEdit/modes/ant.xml similarity index 100% rename from testes/jEdit/modes/ant.xml rename to external-tests/jEdit/modes/ant.xml diff --git a/testes/jEdit/modes/antlr.xml b/external-tests/jEdit/modes/antlr.xml similarity index 100% rename from testes/jEdit/modes/antlr.xml rename to external-tests/jEdit/modes/antlr.xml diff --git a/testes/jEdit/modes/antlr4.xml b/external-tests/jEdit/modes/antlr4.xml similarity index 100% rename from testes/jEdit/modes/antlr4.xml rename to external-tests/jEdit/modes/antlr4.xml diff --git a/testes/jEdit/modes/apacheconf.xml b/external-tests/jEdit/modes/apacheconf.xml similarity index 100% rename from testes/jEdit/modes/apacheconf.xml rename to external-tests/jEdit/modes/apacheconf.xml diff --git a/testes/jEdit/modes/apdl.xml b/external-tests/jEdit/modes/apdl.xml similarity index 100% rename from testes/jEdit/modes/apdl.xml rename to external-tests/jEdit/modes/apdl.xml diff --git a/testes/jEdit/modes/applescript.xml b/external-tests/jEdit/modes/applescript.xml similarity index 100% rename from testes/jEdit/modes/applescript.xml rename to external-tests/jEdit/modes/applescript.xml diff --git a/testes/jEdit/modes/asp.xml b/external-tests/jEdit/modes/asp.xml similarity index 100% rename from testes/jEdit/modes/asp.xml rename to external-tests/jEdit/modes/asp.xml diff --git a/testes/jEdit/modes/aspect-j.xml b/external-tests/jEdit/modes/aspect-j.xml similarity index 100% rename from testes/jEdit/modes/aspect-j.xml rename to external-tests/jEdit/modes/aspect-j.xml diff --git a/testes/jEdit/modes/assembly-agc.xml b/external-tests/jEdit/modes/assembly-agc.xml similarity index 100% rename from testes/jEdit/modes/assembly-agc.xml rename to external-tests/jEdit/modes/assembly-agc.xml diff --git a/testes/jEdit/modes/assembly-ags.xml b/external-tests/jEdit/modes/assembly-ags.xml similarity index 100% rename from testes/jEdit/modes/assembly-ags.xml rename to external-tests/jEdit/modes/assembly-ags.xml diff --git a/testes/jEdit/modes/assembly-m68k.xml b/external-tests/jEdit/modes/assembly-m68k.xml similarity index 100% rename from testes/jEdit/modes/assembly-m68k.xml rename to external-tests/jEdit/modes/assembly-m68k.xml diff --git a/testes/jEdit/modes/assembly-macro32.xml b/external-tests/jEdit/modes/assembly-macro32.xml similarity index 100% rename from testes/jEdit/modes/assembly-macro32.xml rename to external-tests/jEdit/modes/assembly-macro32.xml diff --git a/testes/jEdit/modes/assembly-mcs51.xml b/external-tests/jEdit/modes/assembly-mcs51.xml similarity index 100% rename from testes/jEdit/modes/assembly-mcs51.xml rename to external-tests/jEdit/modes/assembly-mcs51.xml diff --git a/testes/jEdit/modes/assembly-parrot.xml b/external-tests/jEdit/modes/assembly-parrot.xml similarity index 100% rename from testes/jEdit/modes/assembly-parrot.xml rename to external-tests/jEdit/modes/assembly-parrot.xml diff --git a/testes/jEdit/modes/assembly-r2000.xml b/external-tests/jEdit/modes/assembly-r2000.xml similarity index 100% rename from testes/jEdit/modes/assembly-r2000.xml rename to external-tests/jEdit/modes/assembly-r2000.xml diff --git a/testes/jEdit/modes/assembly-x86.xml b/external-tests/jEdit/modes/assembly-x86.xml similarity index 100% rename from testes/jEdit/modes/assembly-x86.xml rename to external-tests/jEdit/modes/assembly-x86.xml diff --git a/testes/jEdit/modes/avro.xml b/external-tests/jEdit/modes/avro.xml similarity index 100% rename from testes/jEdit/modes/avro.xml rename to external-tests/jEdit/modes/avro.xml diff --git a/testes/jEdit/modes/awk.xml b/external-tests/jEdit/modes/awk.xml similarity index 100% rename from testes/jEdit/modes/awk.xml rename to external-tests/jEdit/modes/awk.xml diff --git a/testes/jEdit/modes/b.xml b/external-tests/jEdit/modes/b.xml similarity index 100% rename from testes/jEdit/modes/b.xml rename to external-tests/jEdit/modes/b.xml diff --git a/testes/jEdit/modes/batch.xml b/external-tests/jEdit/modes/batch.xml similarity index 100% rename from testes/jEdit/modes/batch.xml rename to external-tests/jEdit/modes/batch.xml diff --git a/testes/jEdit/modes/bbj.xml b/external-tests/jEdit/modes/bbj.xml similarity index 100% rename from testes/jEdit/modes/bbj.xml rename to external-tests/jEdit/modes/bbj.xml diff --git a/testes/jEdit/modes/bcel.xml b/external-tests/jEdit/modes/bcel.xml similarity index 100% rename from testes/jEdit/modes/bcel.xml rename to external-tests/jEdit/modes/bcel.xml diff --git a/testes/jEdit/modes/bibtex.xml b/external-tests/jEdit/modes/bibtex.xml similarity index 100% rename from testes/jEdit/modes/bibtex.xml rename to external-tests/jEdit/modes/bibtex.xml diff --git a/testes/jEdit/modes/binsource-agc.xml b/external-tests/jEdit/modes/binsource-agc.xml similarity index 100% rename from testes/jEdit/modes/binsource-agc.xml rename to external-tests/jEdit/modes/binsource-agc.xml diff --git a/testes/jEdit/modes/c.xml b/external-tests/jEdit/modes/c.xml similarity index 100% rename from testes/jEdit/modes/c.xml rename to external-tests/jEdit/modes/c.xml diff --git a/testes/jEdit/modes/catalog b/external-tests/jEdit/modes/catalog similarity index 100% rename from testes/jEdit/modes/catalog rename to external-tests/jEdit/modes/catalog diff --git a/testes/jEdit/modes/cfscript.xml b/external-tests/jEdit/modes/cfscript.xml similarity index 100% rename from testes/jEdit/modes/cfscript.xml rename to external-tests/jEdit/modes/cfscript.xml diff --git a/testes/jEdit/modes/chill.xml b/external-tests/jEdit/modes/chill.xml similarity index 100% rename from testes/jEdit/modes/chill.xml rename to external-tests/jEdit/modes/chill.xml diff --git a/testes/jEdit/modes/cil.xml b/external-tests/jEdit/modes/cil.xml similarity index 100% rename from testes/jEdit/modes/cil.xml rename to external-tests/jEdit/modes/cil.xml diff --git a/testes/jEdit/modes/clips.xml b/external-tests/jEdit/modes/clips.xml similarity index 100% rename from testes/jEdit/modes/clips.xml rename to external-tests/jEdit/modes/clips.xml diff --git a/testes/jEdit/modes/clojure.xml b/external-tests/jEdit/modes/clojure.xml similarity index 100% rename from testes/jEdit/modes/clojure.xml rename to external-tests/jEdit/modes/clojure.xml diff --git a/testes/jEdit/modes/cmake.xml b/external-tests/jEdit/modes/cmake.xml similarity index 100% rename from testes/jEdit/modes/cmake.xml rename to external-tests/jEdit/modes/cmake.xml diff --git a/testes/jEdit/modes/cobol.xml b/external-tests/jEdit/modes/cobol.xml similarity index 100% rename from testes/jEdit/modes/cobol.xml rename to external-tests/jEdit/modes/cobol.xml diff --git a/testes/jEdit/modes/coffeescript.xml b/external-tests/jEdit/modes/coffeescript.xml similarity index 100% rename from testes/jEdit/modes/coffeescript.xml rename to external-tests/jEdit/modes/coffeescript.xml diff --git a/testes/jEdit/modes/coldfusion.xml b/external-tests/jEdit/modes/coldfusion.xml similarity index 100% rename from testes/jEdit/modes/coldfusion.xml rename to external-tests/jEdit/modes/coldfusion.xml diff --git a/testes/jEdit/modes/cplexlp.xml b/external-tests/jEdit/modes/cplexlp.xml similarity index 100% rename from testes/jEdit/modes/cplexlp.xml rename to external-tests/jEdit/modes/cplexlp.xml diff --git a/testes/jEdit/modes/cplusplus.xml b/external-tests/jEdit/modes/cplusplus.xml similarity index 100% rename from testes/jEdit/modes/cplusplus.xml rename to external-tests/jEdit/modes/cplusplus.xml diff --git a/testes/jEdit/modes/csharp.xml b/external-tests/jEdit/modes/csharp.xml similarity index 100% rename from testes/jEdit/modes/csharp.xml rename to external-tests/jEdit/modes/csharp.xml diff --git a/testes/jEdit/modes/css.xml b/external-tests/jEdit/modes/css.xml similarity index 100% rename from testes/jEdit/modes/css.xml rename to external-tests/jEdit/modes/css.xml diff --git a/testes/jEdit/modes/csv.xml b/external-tests/jEdit/modes/csv.xml similarity index 100% rename from testes/jEdit/modes/csv.xml rename to external-tests/jEdit/modes/csv.xml diff --git a/testes/jEdit/modes/cvs-commit.xml b/external-tests/jEdit/modes/cvs-commit.xml similarity index 100% rename from testes/jEdit/modes/cvs-commit.xml rename to external-tests/jEdit/modes/cvs-commit.xml diff --git a/testes/jEdit/modes/d.xml b/external-tests/jEdit/modes/d.xml similarity index 100% rename from testes/jEdit/modes/d.xml rename to external-tests/jEdit/modes/d.xml diff --git a/testes/jEdit/modes/dart.xml b/external-tests/jEdit/modes/dart.xml similarity index 100% rename from testes/jEdit/modes/dart.xml rename to external-tests/jEdit/modes/dart.xml diff --git a/testes/jEdit/modes/django.xml b/external-tests/jEdit/modes/django.xml similarity index 100% rename from testes/jEdit/modes/django.xml rename to external-tests/jEdit/modes/django.xml diff --git a/testes/jEdit/modes/dot.xml b/external-tests/jEdit/modes/dot.xml similarity index 100% rename from testes/jEdit/modes/dot.xml rename to external-tests/jEdit/modes/dot.xml diff --git a/testes/jEdit/modes/doxygen.xml b/external-tests/jEdit/modes/doxygen.xml similarity index 100% rename from testes/jEdit/modes/doxygen.xml rename to external-tests/jEdit/modes/doxygen.xml diff --git a/testes/jEdit/modes/dsssl.xml b/external-tests/jEdit/modes/dsssl.xml similarity index 100% rename from testes/jEdit/modes/dsssl.xml rename to external-tests/jEdit/modes/dsssl.xml diff --git a/testes/jEdit/modes/eiffel.xml b/external-tests/jEdit/modes/eiffel.xml similarity index 100% rename from testes/jEdit/modes/eiffel.xml rename to external-tests/jEdit/modes/eiffel.xml diff --git a/testes/jEdit/modes/embperl.xml b/external-tests/jEdit/modes/embperl.xml similarity index 100% rename from testes/jEdit/modes/embperl.xml rename to external-tests/jEdit/modes/embperl.xml diff --git a/testes/jEdit/modes/erlang.xml b/external-tests/jEdit/modes/erlang.xml similarity index 100% rename from testes/jEdit/modes/erlang.xml rename to external-tests/jEdit/modes/erlang.xml diff --git a/testes/jEdit/modes/factor.xml b/external-tests/jEdit/modes/factor.xml similarity index 100% rename from testes/jEdit/modes/factor.xml rename to external-tests/jEdit/modes/factor.xml diff --git a/testes/jEdit/modes/fhtml.xml b/external-tests/jEdit/modes/fhtml.xml similarity index 100% rename from testes/jEdit/modes/fhtml.xml rename to external-tests/jEdit/modes/fhtml.xml diff --git a/testes/jEdit/modes/forth.xml b/external-tests/jEdit/modes/forth.xml similarity index 100% rename from testes/jEdit/modes/forth.xml rename to external-tests/jEdit/modes/forth.xml diff --git a/testes/jEdit/modes/fortran.xml b/external-tests/jEdit/modes/fortran.xml similarity index 100% rename from testes/jEdit/modes/fortran.xml rename to external-tests/jEdit/modes/fortran.xml diff --git a/testes/jEdit/modes/fortran90.xml b/external-tests/jEdit/modes/fortran90.xml similarity index 100% rename from testes/jEdit/modes/fortran90.xml rename to external-tests/jEdit/modes/fortran90.xml diff --git a/testes/jEdit/modes/foxpro.xml b/external-tests/jEdit/modes/foxpro.xml similarity index 100% rename from testes/jEdit/modes/foxpro.xml rename to external-tests/jEdit/modes/foxpro.xml diff --git a/testes/jEdit/modes/freemarker.xml b/external-tests/jEdit/modes/freemarker.xml similarity index 100% rename from testes/jEdit/modes/freemarker.xml rename to external-tests/jEdit/modes/freemarker.xml diff --git a/testes/jEdit/modes/gcbasic.xml b/external-tests/jEdit/modes/gcbasic.xml similarity index 100% rename from testes/jEdit/modes/gcbasic.xml rename to external-tests/jEdit/modes/gcbasic.xml diff --git a/testes/jEdit/modes/gettext.xml b/external-tests/jEdit/modes/gettext.xml similarity index 100% rename from testes/jEdit/modes/gettext.xml rename to external-tests/jEdit/modes/gettext.xml diff --git a/testes/jEdit/modes/gnuplot.xml b/external-tests/jEdit/modes/gnuplot.xml similarity index 100% rename from testes/jEdit/modes/gnuplot.xml rename to external-tests/jEdit/modes/gnuplot.xml diff --git a/testes/jEdit/modes/go.xml b/external-tests/jEdit/modes/go.xml similarity index 100% rename from testes/jEdit/modes/go.xml rename to external-tests/jEdit/modes/go.xml diff --git a/testes/jEdit/modes/gradle.xml b/external-tests/jEdit/modes/gradle.xml similarity index 100% rename from testes/jEdit/modes/gradle.xml rename to external-tests/jEdit/modes/gradle.xml diff --git a/testes/jEdit/modes/groovy.xml b/external-tests/jEdit/modes/groovy.xml similarity index 100% rename from testes/jEdit/modes/groovy.xml rename to external-tests/jEdit/modes/groovy.xml diff --git a/testes/jEdit/modes/haskell.xml b/external-tests/jEdit/modes/haskell.xml similarity index 100% rename from testes/jEdit/modes/haskell.xml rename to external-tests/jEdit/modes/haskell.xml diff --git a/testes/jEdit/modes/haxe.xml b/external-tests/jEdit/modes/haxe.xml similarity index 100% rename from testes/jEdit/modes/haxe.xml rename to external-tests/jEdit/modes/haxe.xml diff --git a/testes/jEdit/modes/hex.xml b/external-tests/jEdit/modes/hex.xml similarity index 100% rename from testes/jEdit/modes/hex.xml rename to external-tests/jEdit/modes/hex.xml diff --git a/testes/jEdit/modes/hlsl.xml b/external-tests/jEdit/modes/hlsl.xml similarity index 100% rename from testes/jEdit/modes/hlsl.xml rename to external-tests/jEdit/modes/hlsl.xml diff --git a/testes/jEdit/modes/htaccess.xml b/external-tests/jEdit/modes/htaccess.xml similarity index 100% rename from testes/jEdit/modes/htaccess.xml rename to external-tests/jEdit/modes/htaccess.xml diff --git a/testes/jEdit/modes/html.xml b/external-tests/jEdit/modes/html.xml similarity index 100% rename from testes/jEdit/modes/html.xml rename to external-tests/jEdit/modes/html.xml diff --git a/testes/jEdit/modes/hxml.xml b/external-tests/jEdit/modes/hxml.xml similarity index 100% rename from testes/jEdit/modes/hxml.xml rename to external-tests/jEdit/modes/hxml.xml diff --git a/testes/jEdit/modes/i4gl.xml b/external-tests/jEdit/modes/i4gl.xml similarity index 100% rename from testes/jEdit/modes/i4gl.xml rename to external-tests/jEdit/modes/i4gl.xml diff --git a/testes/jEdit/modes/ical.xml b/external-tests/jEdit/modes/ical.xml similarity index 100% rename from testes/jEdit/modes/ical.xml rename to external-tests/jEdit/modes/ical.xml diff --git a/testes/jEdit/modes/icon.xml b/external-tests/jEdit/modes/icon.xml similarity index 100% rename from testes/jEdit/modes/icon.xml rename to external-tests/jEdit/modes/icon.xml diff --git a/testes/jEdit/modes/idl.xml b/external-tests/jEdit/modes/idl.xml similarity index 100% rename from testes/jEdit/modes/idl.xml rename to external-tests/jEdit/modes/idl.xml diff --git a/testes/jEdit/modes/inform.xml b/external-tests/jEdit/modes/inform.xml similarity index 100% rename from testes/jEdit/modes/inform.xml rename to external-tests/jEdit/modes/inform.xml diff --git a/testes/jEdit/modes/ini.xml b/external-tests/jEdit/modes/ini.xml similarity index 100% rename from testes/jEdit/modes/ini.xml rename to external-tests/jEdit/modes/ini.xml diff --git a/testes/jEdit/modes/inno-setup.xml b/external-tests/jEdit/modes/inno-setup.xml similarity index 100% rename from testes/jEdit/modes/inno-setup.xml rename to external-tests/jEdit/modes/inno-setup.xml diff --git a/testes/jEdit/modes/interlis.xml b/external-tests/jEdit/modes/interlis.xml similarity index 100% rename from testes/jEdit/modes/interlis.xml rename to external-tests/jEdit/modes/interlis.xml diff --git a/testes/jEdit/modes/io.xml b/external-tests/jEdit/modes/io.xml similarity index 100% rename from testes/jEdit/modes/io.xml rename to external-tests/jEdit/modes/io.xml diff --git a/testes/jEdit/modes/jamon.xml b/external-tests/jEdit/modes/jamon.xml similarity index 100% rename from testes/jEdit/modes/jamon.xml rename to external-tests/jEdit/modes/jamon.xml diff --git a/testes/jEdit/modes/java.xml b/external-tests/jEdit/modes/java.xml similarity index 100% rename from testes/jEdit/modes/java.xml rename to external-tests/jEdit/modes/java.xml diff --git a/testes/jEdit/modes/javacc.xml b/external-tests/jEdit/modes/javacc.xml similarity index 100% rename from testes/jEdit/modes/javacc.xml rename to external-tests/jEdit/modes/javacc.xml diff --git a/testes/jEdit/modes/javafx.xml b/external-tests/jEdit/modes/javafx.xml similarity index 100% rename from testes/jEdit/modes/javafx.xml rename to external-tests/jEdit/modes/javafx.xml diff --git a/testes/jEdit/modes/javascript.xml b/external-tests/jEdit/modes/javascript.xml similarity index 100% rename from testes/jEdit/modes/javascript.xml rename to external-tests/jEdit/modes/javascript.xml diff --git a/testes/jEdit/modes/jcl.xml b/external-tests/jEdit/modes/jcl.xml similarity index 100% rename from testes/jEdit/modes/jcl.xml rename to external-tests/jEdit/modes/jcl.xml diff --git a/testes/jEdit/modes/jedit-actions.xml b/external-tests/jEdit/modes/jedit-actions.xml similarity index 100% rename from testes/jEdit/modes/jedit-actions.xml rename to external-tests/jEdit/modes/jedit-actions.xml diff --git a/testes/jEdit/modes/jflex.xml b/external-tests/jEdit/modes/jflex.xml similarity index 100% rename from testes/jEdit/modes/jflex.xml rename to external-tests/jEdit/modes/jflex.xml diff --git a/testes/jEdit/modes/jhtml.xml b/external-tests/jEdit/modes/jhtml.xml similarity index 100% rename from testes/jEdit/modes/jhtml.xml rename to external-tests/jEdit/modes/jhtml.xml diff --git a/testes/jEdit/modes/jmk.xml b/external-tests/jEdit/modes/jmk.xml similarity index 100% rename from testes/jEdit/modes/jmk.xml rename to external-tests/jEdit/modes/jmk.xml diff --git a/testes/jEdit/modes/json.xml b/external-tests/jEdit/modes/json.xml similarity index 100% rename from testes/jEdit/modes/json.xml rename to external-tests/jEdit/modes/json.xml diff --git a/testes/jEdit/modes/jsp.xml b/external-tests/jEdit/modes/jsp.xml similarity index 100% rename from testes/jEdit/modes/jsp.xml rename to external-tests/jEdit/modes/jsp.xml diff --git a/testes/jEdit/modes/kotlin.xml b/external-tests/jEdit/modes/kotlin.xml similarity index 100% rename from testes/jEdit/modes/kotlin.xml rename to external-tests/jEdit/modes/kotlin.xml diff --git a/testes/jEdit/modes/latex.xml b/external-tests/jEdit/modes/latex.xml similarity index 100% rename from testes/jEdit/modes/latex.xml rename to external-tests/jEdit/modes/latex.xml diff --git a/testes/jEdit/modes/lex.xml b/external-tests/jEdit/modes/lex.xml similarity index 100% rename from testes/jEdit/modes/lex.xml rename to external-tests/jEdit/modes/lex.xml diff --git a/testes/jEdit/modes/lilypond.xml b/external-tests/jEdit/modes/lilypond.xml similarity index 100% rename from testes/jEdit/modes/lilypond.xml rename to external-tests/jEdit/modes/lilypond.xml diff --git a/testes/jEdit/modes/lisp.xml b/external-tests/jEdit/modes/lisp.xml similarity index 100% rename from testes/jEdit/modes/lisp.xml rename to external-tests/jEdit/modes/lisp.xml diff --git a/testes/jEdit/modes/literate-haskell.xml b/external-tests/jEdit/modes/literate-haskell.xml similarity index 100% rename from testes/jEdit/modes/literate-haskell.xml rename to external-tests/jEdit/modes/literate-haskell.xml diff --git a/testes/jEdit/modes/logs.xml b/external-tests/jEdit/modes/logs.xml similarity index 100% rename from testes/jEdit/modes/logs.xml rename to external-tests/jEdit/modes/logs.xml diff --git a/testes/jEdit/modes/logtalk.xml b/external-tests/jEdit/modes/logtalk.xml similarity index 100% rename from testes/jEdit/modes/logtalk.xml rename to external-tests/jEdit/modes/logtalk.xml diff --git a/testes/jEdit/modes/lotos.xml b/external-tests/jEdit/modes/lotos.xml similarity index 100% rename from testes/jEdit/modes/lotos.xml rename to external-tests/jEdit/modes/lotos.xml diff --git a/testes/jEdit/modes/lua.xml b/external-tests/jEdit/modes/lua.xml similarity index 100% rename from testes/jEdit/modes/lua.xml rename to external-tests/jEdit/modes/lua.xml diff --git a/testes/jEdit/modes/macroscheduler.xml b/external-tests/jEdit/modes/macroscheduler.xml similarity index 100% rename from testes/jEdit/modes/macroscheduler.xml rename to external-tests/jEdit/modes/macroscheduler.xml diff --git a/testes/jEdit/modes/mail.xml b/external-tests/jEdit/modes/mail.xml similarity index 100% rename from testes/jEdit/modes/mail.xml rename to external-tests/jEdit/modes/mail.xml diff --git a/testes/jEdit/modes/makefile.xml b/external-tests/jEdit/modes/makefile.xml similarity index 100% rename from testes/jEdit/modes/makefile.xml rename to external-tests/jEdit/modes/makefile.xml diff --git a/testes/jEdit/modes/maple.xml b/external-tests/jEdit/modes/maple.xml similarity index 100% rename from testes/jEdit/modes/maple.xml rename to external-tests/jEdit/modes/maple.xml diff --git a/testes/jEdit/modes/markdown.xml b/external-tests/jEdit/modes/markdown.xml similarity index 100% rename from testes/jEdit/modes/markdown.xml rename to external-tests/jEdit/modes/markdown.xml diff --git a/testes/jEdit/modes/maven.xml b/external-tests/jEdit/modes/maven.xml similarity index 100% rename from testes/jEdit/modes/maven.xml rename to external-tests/jEdit/modes/maven.xml diff --git a/testes/jEdit/modes/ml.xml b/external-tests/jEdit/modes/ml.xml similarity index 100% rename from testes/jEdit/modes/ml.xml rename to external-tests/jEdit/modes/ml.xml diff --git a/testes/jEdit/modes/modula3.xml b/external-tests/jEdit/modes/modula3.xml similarity index 100% rename from testes/jEdit/modes/modula3.xml rename to external-tests/jEdit/modes/modula3.xml diff --git a/testes/jEdit/modes/moin.xml b/external-tests/jEdit/modes/moin.xml similarity index 100% rename from testes/jEdit/modes/moin.xml rename to external-tests/jEdit/modes/moin.xml diff --git a/testes/jEdit/modes/mpost.xml b/external-tests/jEdit/modes/mpost.xml similarity index 100% rename from testes/jEdit/modes/mpost.xml rename to external-tests/jEdit/modes/mpost.xml diff --git a/testes/jEdit/modes/mqsc.xml b/external-tests/jEdit/modes/mqsc.xml similarity index 100% rename from testes/jEdit/modes/mqsc.xml rename to external-tests/jEdit/modes/mqsc.xml diff --git a/testes/jEdit/modes/mustache.xml b/external-tests/jEdit/modes/mustache.xml similarity index 100% rename from testes/jEdit/modes/mustache.xml rename to external-tests/jEdit/modes/mustache.xml diff --git a/testes/jEdit/modes/mxml.xml b/external-tests/jEdit/modes/mxml.xml similarity index 100% rename from testes/jEdit/modes/mxml.xml rename to external-tests/jEdit/modes/mxml.xml diff --git a/testes/jEdit/modes/myghty.xml b/external-tests/jEdit/modes/myghty.xml similarity index 100% rename from testes/jEdit/modes/myghty.xml rename to external-tests/jEdit/modes/myghty.xml diff --git a/testes/jEdit/modes/mysql.xml b/external-tests/jEdit/modes/mysql.xml similarity index 100% rename from testes/jEdit/modes/mysql.xml rename to external-tests/jEdit/modes/mysql.xml diff --git a/testes/jEdit/modes/n3.xml b/external-tests/jEdit/modes/n3.xml similarity index 100% rename from testes/jEdit/modes/n3.xml rename to external-tests/jEdit/modes/n3.xml diff --git a/testes/jEdit/modes/netrexx.xml b/external-tests/jEdit/modes/netrexx.xml similarity index 100% rename from testes/jEdit/modes/netrexx.xml rename to external-tests/jEdit/modes/netrexx.xml diff --git a/testes/jEdit/modes/nqc.xml b/external-tests/jEdit/modes/nqc.xml similarity index 100% rename from testes/jEdit/modes/nqc.xml rename to external-tests/jEdit/modes/nqc.xml diff --git a/testes/jEdit/modes/nsis2.xml b/external-tests/jEdit/modes/nsis2.xml similarity index 100% rename from testes/jEdit/modes/nsis2.xml rename to external-tests/jEdit/modes/nsis2.xml diff --git a/testes/jEdit/modes/objective-c.xml b/external-tests/jEdit/modes/objective-c.xml similarity index 100% rename from testes/jEdit/modes/objective-c.xml rename to external-tests/jEdit/modes/objective-c.xml diff --git a/testes/jEdit/modes/objectrexx.xml b/external-tests/jEdit/modes/objectrexx.xml similarity index 100% rename from testes/jEdit/modes/objectrexx.xml rename to external-tests/jEdit/modes/objectrexx.xml diff --git a/testes/jEdit/modes/occam.xml b/external-tests/jEdit/modes/occam.xml similarity index 100% rename from testes/jEdit/modes/occam.xml rename to external-tests/jEdit/modes/occam.xml diff --git a/testes/jEdit/modes/omnimark.xml b/external-tests/jEdit/modes/omnimark.xml similarity index 100% rename from testes/jEdit/modes/omnimark.xml rename to external-tests/jEdit/modes/omnimark.xml diff --git a/testes/jEdit/modes/osql.xml b/external-tests/jEdit/modes/osql.xml similarity index 100% rename from testes/jEdit/modes/osql.xml rename to external-tests/jEdit/modes/osql.xml diff --git a/testes/jEdit/modes/outline.xml b/external-tests/jEdit/modes/outline.xml similarity index 100% rename from testes/jEdit/modes/outline.xml rename to external-tests/jEdit/modes/outline.xml diff --git a/testes/jEdit/modes/pascal.xml b/external-tests/jEdit/modes/pascal.xml similarity index 100% rename from testes/jEdit/modes/pascal.xml rename to external-tests/jEdit/modes/pascal.xml diff --git a/testes/jEdit/modes/patch.xml b/external-tests/jEdit/modes/patch.xml similarity index 100% rename from testes/jEdit/modes/patch.xml rename to external-tests/jEdit/modes/patch.xml diff --git a/testes/jEdit/modes/perl.xml b/external-tests/jEdit/modes/perl.xml similarity index 100% rename from testes/jEdit/modes/perl.xml rename to external-tests/jEdit/modes/perl.xml diff --git a/testes/jEdit/modes/pg-sql.xml b/external-tests/jEdit/modes/pg-sql.xml similarity index 100% rename from testes/jEdit/modes/pg-sql.xml rename to external-tests/jEdit/modes/pg-sql.xml diff --git a/testes/jEdit/modes/php.xml b/external-tests/jEdit/modes/php.xml similarity index 100% rename from testes/jEdit/modes/php.xml rename to external-tests/jEdit/modes/php.xml diff --git a/testes/jEdit/modes/pike.xml b/external-tests/jEdit/modes/pike.xml similarity index 100% rename from testes/jEdit/modes/pike.xml rename to external-tests/jEdit/modes/pike.xml diff --git a/testes/jEdit/modes/pl-sql.xml b/external-tests/jEdit/modes/pl-sql.xml similarity index 100% rename from testes/jEdit/modes/pl-sql.xml rename to external-tests/jEdit/modes/pl-sql.xml diff --git a/testes/jEdit/modes/pl1.xml b/external-tests/jEdit/modes/pl1.xml similarity index 100% rename from testes/jEdit/modes/pl1.xml rename to external-tests/jEdit/modes/pl1.xml diff --git a/testes/jEdit/modes/plaintex.xml b/external-tests/jEdit/modes/plaintex.xml similarity index 100% rename from testes/jEdit/modes/plaintex.xml rename to external-tests/jEdit/modes/plaintex.xml diff --git a/testes/jEdit/modes/pop11.xml b/external-tests/jEdit/modes/pop11.xml similarity index 100% rename from testes/jEdit/modes/pop11.xml rename to external-tests/jEdit/modes/pop11.xml diff --git a/testes/jEdit/modes/postscript.xml b/external-tests/jEdit/modes/postscript.xml similarity index 100% rename from testes/jEdit/modes/postscript.xml rename to external-tests/jEdit/modes/postscript.xml diff --git a/testes/jEdit/modes/povray.xml b/external-tests/jEdit/modes/povray.xml similarity index 100% rename from testes/jEdit/modes/povray.xml rename to external-tests/jEdit/modes/povray.xml diff --git a/testes/jEdit/modes/powercenter_parameter_file.xml b/external-tests/jEdit/modes/powercenter_parameter_file.xml similarity index 100% rename from testes/jEdit/modes/powercenter_parameter_file.xml rename to external-tests/jEdit/modes/powercenter_parameter_file.xml diff --git a/testes/jEdit/modes/powerdynamo.xml b/external-tests/jEdit/modes/powerdynamo.xml similarity index 100% rename from testes/jEdit/modes/powerdynamo.xml rename to external-tests/jEdit/modes/powerdynamo.xml diff --git a/testes/jEdit/modes/powershell.xml b/external-tests/jEdit/modes/powershell.xml similarity index 100% rename from testes/jEdit/modes/powershell.xml rename to external-tests/jEdit/modes/powershell.xml diff --git a/testes/jEdit/modes/progress.xml b/external-tests/jEdit/modes/progress.xml similarity index 100% rename from testes/jEdit/modes/progress.xml rename to external-tests/jEdit/modes/progress.xml diff --git a/testes/jEdit/modes/prolog.xml b/external-tests/jEdit/modes/prolog.xml similarity index 100% rename from testes/jEdit/modes/prolog.xml rename to external-tests/jEdit/modes/prolog.xml diff --git a/testes/jEdit/modes/props.xml b/external-tests/jEdit/modes/props.xml similarity index 100% rename from testes/jEdit/modes/props.xml rename to external-tests/jEdit/modes/props.xml diff --git a/testes/jEdit/modes/psp.xml b/external-tests/jEdit/modes/psp.xml similarity index 100% rename from testes/jEdit/modes/psp.xml rename to external-tests/jEdit/modes/psp.xml diff --git a/testes/jEdit/modes/ptl.xml b/external-tests/jEdit/modes/ptl.xml similarity index 100% rename from testes/jEdit/modes/ptl.xml rename to external-tests/jEdit/modes/ptl.xml diff --git a/testes/jEdit/modes/pure.xml b/external-tests/jEdit/modes/pure.xml similarity index 100% rename from testes/jEdit/modes/pure.xml rename to external-tests/jEdit/modes/pure.xml diff --git a/testes/jEdit/modes/pvwave.xml b/external-tests/jEdit/modes/pvwave.xml similarity index 100% rename from testes/jEdit/modes/pvwave.xml rename to external-tests/jEdit/modes/pvwave.xml diff --git a/testes/jEdit/modes/pyrex.xml b/external-tests/jEdit/modes/pyrex.xml similarity index 100% rename from testes/jEdit/modes/pyrex.xml rename to external-tests/jEdit/modes/pyrex.xml diff --git a/testes/jEdit/modes/python.xml b/external-tests/jEdit/modes/python.xml similarity index 100% rename from testes/jEdit/modes/python.xml rename to external-tests/jEdit/modes/python.xml diff --git a/testes/jEdit/modes/quake.xml b/external-tests/jEdit/modes/quake.xml similarity index 100% rename from testes/jEdit/modes/quake.xml rename to external-tests/jEdit/modes/quake.xml diff --git a/testes/jEdit/modes/rcp.xml b/external-tests/jEdit/modes/rcp.xml similarity index 100% rename from testes/jEdit/modes/rcp.xml rename to external-tests/jEdit/modes/rcp.xml diff --git a/testes/jEdit/modes/rd.xml b/external-tests/jEdit/modes/rd.xml similarity index 100% rename from testes/jEdit/modes/rd.xml rename to external-tests/jEdit/modes/rd.xml diff --git a/testes/jEdit/modes/rebol.xml b/external-tests/jEdit/modes/rebol.xml similarity index 100% rename from testes/jEdit/modes/rebol.xml rename to external-tests/jEdit/modes/rebol.xml diff --git a/testes/jEdit/modes/redcode.xml b/external-tests/jEdit/modes/redcode.xml similarity index 100% rename from testes/jEdit/modes/redcode.xml rename to external-tests/jEdit/modes/redcode.xml diff --git a/testes/jEdit/modes/regex.xml b/external-tests/jEdit/modes/regex.xml similarity index 100% rename from testes/jEdit/modes/regex.xml rename to external-tests/jEdit/modes/regex.xml diff --git a/testes/jEdit/modes/relax-ng-compact.xml b/external-tests/jEdit/modes/relax-ng-compact.xml similarity index 100% rename from testes/jEdit/modes/relax-ng-compact.xml rename to external-tests/jEdit/modes/relax-ng-compact.xml diff --git a/testes/jEdit/modes/rest.xml b/external-tests/jEdit/modes/rest.xml similarity index 100% rename from testes/jEdit/modes/rest.xml rename to external-tests/jEdit/modes/rest.xml diff --git a/testes/jEdit/modes/rfc.xml b/external-tests/jEdit/modes/rfc.xml similarity index 100% rename from testes/jEdit/modes/rfc.xml rename to external-tests/jEdit/modes/rfc.xml diff --git a/testes/jEdit/modes/rhtml.xml b/external-tests/jEdit/modes/rhtml.xml similarity index 100% rename from testes/jEdit/modes/rhtml.xml rename to external-tests/jEdit/modes/rhtml.xml diff --git a/testes/jEdit/modes/rib.xml b/external-tests/jEdit/modes/rib.xml similarity index 100% rename from testes/jEdit/modes/rib.xml rename to external-tests/jEdit/modes/rib.xml diff --git a/testes/jEdit/modes/roff.xml b/external-tests/jEdit/modes/roff.xml similarity index 100% rename from testes/jEdit/modes/roff.xml rename to external-tests/jEdit/modes/roff.xml diff --git a/testes/jEdit/modes/rpmspec.xml b/external-tests/jEdit/modes/rpmspec.xml similarity index 100% rename from testes/jEdit/modes/rpmspec.xml rename to external-tests/jEdit/modes/rpmspec.xml diff --git a/testes/jEdit/modes/rtf.xml b/external-tests/jEdit/modes/rtf.xml similarity index 100% rename from testes/jEdit/modes/rtf.xml rename to external-tests/jEdit/modes/rtf.xml diff --git a/testes/jEdit/modes/ruby.xml b/external-tests/jEdit/modes/ruby.xml similarity index 100% rename from testes/jEdit/modes/ruby.xml rename to external-tests/jEdit/modes/ruby.xml diff --git a/testes/jEdit/modes/rust.xml b/external-tests/jEdit/modes/rust.xml similarity index 100% rename from testes/jEdit/modes/rust.xml rename to external-tests/jEdit/modes/rust.xml diff --git a/testes/jEdit/modes/rview.xml b/external-tests/jEdit/modes/rview.xml similarity index 100% rename from testes/jEdit/modes/rview.xml rename to external-tests/jEdit/modes/rview.xml diff --git a/testes/jEdit/modes/sas.xml b/external-tests/jEdit/modes/sas.xml similarity index 100% rename from testes/jEdit/modes/sas.xml rename to external-tests/jEdit/modes/sas.xml diff --git a/testes/jEdit/modes/scala.xml b/external-tests/jEdit/modes/scala.xml similarity index 100% rename from testes/jEdit/modes/scala.xml rename to external-tests/jEdit/modes/scala.xml diff --git a/testes/jEdit/modes/scheme.xml b/external-tests/jEdit/modes/scheme.xml similarity index 100% rename from testes/jEdit/modes/scheme.xml rename to external-tests/jEdit/modes/scheme.xml diff --git a/testes/jEdit/modes/sdl_pr.xml b/external-tests/jEdit/modes/sdl_pr.xml similarity index 100% rename from testes/jEdit/modes/sdl_pr.xml rename to external-tests/jEdit/modes/sdl_pr.xml diff --git a/testes/jEdit/modes/sgml.xml b/external-tests/jEdit/modes/sgml.xml similarity index 100% rename from testes/jEdit/modes/sgml.xml rename to external-tests/jEdit/modes/sgml.xml diff --git a/testes/jEdit/modes/shellscript.xml b/external-tests/jEdit/modes/shellscript.xml similarity index 100% rename from testes/jEdit/modes/shellscript.xml rename to external-tests/jEdit/modes/shellscript.xml diff --git a/testes/jEdit/modes/shtml.xml b/external-tests/jEdit/modes/shtml.xml similarity index 100% rename from testes/jEdit/modes/shtml.xml rename to external-tests/jEdit/modes/shtml.xml diff --git a/testes/jEdit/modes/sip.xml b/external-tests/jEdit/modes/sip.xml similarity index 100% rename from testes/jEdit/modes/sip.xml rename to external-tests/jEdit/modes/sip.xml diff --git a/testes/jEdit/modes/slate.xml b/external-tests/jEdit/modes/slate.xml similarity index 100% rename from testes/jEdit/modes/slate.xml rename to external-tests/jEdit/modes/slate.xml diff --git a/testes/jEdit/modes/slax.xml b/external-tests/jEdit/modes/slax.xml similarity index 100% rename from testes/jEdit/modes/slax.xml rename to external-tests/jEdit/modes/slax.xml diff --git a/testes/jEdit/modes/smalltalk.xml b/external-tests/jEdit/modes/smalltalk.xml similarity index 100% rename from testes/jEdit/modes/smalltalk.xml rename to external-tests/jEdit/modes/smalltalk.xml diff --git a/testes/jEdit/modes/smarty.xml b/external-tests/jEdit/modes/smarty.xml similarity index 100% rename from testes/jEdit/modes/smarty.xml rename to external-tests/jEdit/modes/smarty.xml diff --git a/testes/jEdit/modes/smi-mib.xml b/external-tests/jEdit/modes/smi-mib.xml similarity index 100% rename from testes/jEdit/modes/smi-mib.xml rename to external-tests/jEdit/modes/smi-mib.xml diff --git a/testes/jEdit/modes/splus.xml b/external-tests/jEdit/modes/splus.xml similarity index 100% rename from testes/jEdit/modes/splus.xml rename to external-tests/jEdit/modes/splus.xml diff --git a/testes/jEdit/modes/sql-loader.xml b/external-tests/jEdit/modes/sql-loader.xml similarity index 100% rename from testes/jEdit/modes/sql-loader.xml rename to external-tests/jEdit/modes/sql-loader.xml diff --git a/testes/jEdit/modes/sqr.xml b/external-tests/jEdit/modes/sqr.xml similarity index 100% rename from testes/jEdit/modes/sqr.xml rename to external-tests/jEdit/modes/sqr.xml diff --git a/testes/jEdit/modes/squidconf.xml b/external-tests/jEdit/modes/squidconf.xml similarity index 100% rename from testes/jEdit/modes/squidconf.xml rename to external-tests/jEdit/modes/squidconf.xml diff --git a/testes/jEdit/modes/ssharp.xml b/external-tests/jEdit/modes/ssharp.xml similarity index 100% rename from testes/jEdit/modes/ssharp.xml rename to external-tests/jEdit/modes/ssharp.xml diff --git a/testes/jEdit/modes/stata.xml b/external-tests/jEdit/modes/stata.xml similarity index 100% rename from testes/jEdit/modes/stata.xml rename to external-tests/jEdit/modes/stata.xml diff --git a/testes/jEdit/modes/svn-commit.xml b/external-tests/jEdit/modes/svn-commit.xml similarity index 100% rename from testes/jEdit/modes/svn-commit.xml rename to external-tests/jEdit/modes/svn-commit.xml diff --git a/testes/jEdit/modes/swig.xml b/external-tests/jEdit/modes/swig.xml similarity index 100% rename from testes/jEdit/modes/swig.xml rename to external-tests/jEdit/modes/swig.xml diff --git a/testes/jEdit/modes/tcl.xml b/external-tests/jEdit/modes/tcl.xml similarity index 100% rename from testes/jEdit/modes/tcl.xml rename to external-tests/jEdit/modes/tcl.xml diff --git a/testes/jEdit/modes/tex.xml b/external-tests/jEdit/modes/tex.xml similarity index 100% rename from testes/jEdit/modes/tex.xml rename to external-tests/jEdit/modes/tex.xml diff --git a/testes/jEdit/modes/texinfo.xml b/external-tests/jEdit/modes/texinfo.xml similarity index 100% rename from testes/jEdit/modes/texinfo.xml rename to external-tests/jEdit/modes/texinfo.xml diff --git a/testes/jEdit/modes/text.xml b/external-tests/jEdit/modes/text.xml similarity index 100% rename from testes/jEdit/modes/text.xml rename to external-tests/jEdit/modes/text.xml diff --git a/testes/jEdit/modes/tld.xml b/external-tests/jEdit/modes/tld.xml similarity index 100% rename from testes/jEdit/modes/tld.xml rename to external-tests/jEdit/modes/tld.xml diff --git a/testes/jEdit/modes/tpl.xml b/external-tests/jEdit/modes/tpl.xml similarity index 100% rename from testes/jEdit/modes/tpl.xml rename to external-tests/jEdit/modes/tpl.xml diff --git a/testes/jEdit/modes/tsp.xml b/external-tests/jEdit/modes/tsp.xml similarity index 100% rename from testes/jEdit/modes/tsp.xml rename to external-tests/jEdit/modes/tsp.xml diff --git a/testes/jEdit/modes/tsql.xml b/external-tests/jEdit/modes/tsql.xml similarity index 100% rename from testes/jEdit/modes/tsql.xml rename to external-tests/jEdit/modes/tsql.xml diff --git a/testes/jEdit/modes/tthtml.xml b/external-tests/jEdit/modes/tthtml.xml similarity index 100% rename from testes/jEdit/modes/tthtml.xml rename to external-tests/jEdit/modes/tthtml.xml diff --git a/testes/jEdit/modes/turbobasic.xml b/external-tests/jEdit/modes/turbobasic.xml similarity index 100% rename from testes/jEdit/modes/turbobasic.xml rename to external-tests/jEdit/modes/turbobasic.xml diff --git a/testes/jEdit/modes/twiki.xml b/external-tests/jEdit/modes/twiki.xml similarity index 100% rename from testes/jEdit/modes/twiki.xml rename to external-tests/jEdit/modes/twiki.xml diff --git a/testes/jEdit/modes/typoscript.xml b/external-tests/jEdit/modes/typoscript.xml similarity index 100% rename from testes/jEdit/modes/typoscript.xml rename to external-tests/jEdit/modes/typoscript.xml diff --git a/testes/jEdit/modes/url.xml b/external-tests/jEdit/modes/url.xml similarity index 100% rename from testes/jEdit/modes/url.xml rename to external-tests/jEdit/modes/url.xml diff --git a/testes/jEdit/modes/uscript.xml b/external-tests/jEdit/modes/uscript.xml similarity index 100% rename from testes/jEdit/modes/uscript.xml rename to external-tests/jEdit/modes/uscript.xml diff --git a/testes/jEdit/modes/vala.xml b/external-tests/jEdit/modes/vala.xml similarity index 100% rename from testes/jEdit/modes/vala.xml rename to external-tests/jEdit/modes/vala.xml diff --git a/testes/jEdit/modes/vbscript.xml b/external-tests/jEdit/modes/vbscript.xml similarity index 100% rename from testes/jEdit/modes/vbscript.xml rename to external-tests/jEdit/modes/vbscript.xml diff --git a/testes/jEdit/modes/velocity.xml b/external-tests/jEdit/modes/velocity.xml similarity index 100% rename from testes/jEdit/modes/velocity.xml rename to external-tests/jEdit/modes/velocity.xml diff --git a/testes/jEdit/modes/velocity_pure.xml b/external-tests/jEdit/modes/velocity_pure.xml similarity index 100% rename from testes/jEdit/modes/velocity_pure.xml rename to external-tests/jEdit/modes/velocity_pure.xml diff --git a/testes/jEdit/modes/verilog.xml b/external-tests/jEdit/modes/verilog.xml similarity index 100% rename from testes/jEdit/modes/verilog.xml rename to external-tests/jEdit/modes/verilog.xml diff --git a/testes/jEdit/modes/vhdl.xml b/external-tests/jEdit/modes/vhdl.xml similarity index 100% rename from testes/jEdit/modes/vhdl.xml rename to external-tests/jEdit/modes/vhdl.xml diff --git a/testes/jEdit/modes/visualbasic.xml b/external-tests/jEdit/modes/visualbasic.xml similarity index 100% rename from testes/jEdit/modes/visualbasic.xml rename to external-tests/jEdit/modes/visualbasic.xml diff --git a/testes/jEdit/modes/vrml2.xml b/external-tests/jEdit/modes/vrml2.xml similarity index 100% rename from testes/jEdit/modes/vrml2.xml rename to external-tests/jEdit/modes/vrml2.xml diff --git a/testes/jEdit/modes/xml.xml b/external-tests/jEdit/modes/xml.xml similarity index 100% rename from testes/jEdit/modes/xml.xml rename to external-tests/jEdit/modes/xml.xml diff --git a/testes/jEdit/modes/xq.xml b/external-tests/jEdit/modes/xq.xml similarity index 100% rename from testes/jEdit/modes/xq.xml rename to external-tests/jEdit/modes/xq.xml diff --git a/testes/jEdit/modes/xsl.xml b/external-tests/jEdit/modes/xsl.xml similarity index 100% rename from testes/jEdit/modes/xsl.xml rename to external-tests/jEdit/modes/xsl.xml diff --git a/testes/jEdit/modes/yab.xml b/external-tests/jEdit/modes/yab.xml similarity index 100% rename from testes/jEdit/modes/yab.xml rename to external-tests/jEdit/modes/yab.xml diff --git a/testes/jEdit/modes/yaml.xml b/external-tests/jEdit/modes/yaml.xml similarity index 100% rename from testes/jEdit/modes/yaml.xml rename to external-tests/jEdit/modes/yaml.xml diff --git a/testes/jEdit/modes/zpt.xml b/external-tests/jEdit/modes/zpt.xml similarity index 100% rename from testes/jEdit/modes/zpt.xml rename to external-tests/jEdit/modes/zpt.xml diff --git a/testes/jEdit/net/sourceforge/jarbundler/AppBundleProperties.java b/external-tests/jEdit/net/sourceforge/jarbundler/AppBundleProperties.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/AppBundleProperties.java rename to external-tests/jEdit/net/sourceforge/jarbundler/AppBundleProperties.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/DocumentType.java b/external-tests/jEdit/net/sourceforge/jarbundler/DocumentType.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/DocumentType.java rename to external-tests/jEdit/net/sourceforge/jarbundler/DocumentType.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/HelpBook.java b/external-tests/jEdit/net/sourceforge/jarbundler/HelpBook.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/HelpBook.java rename to external-tests/jEdit/net/sourceforge/jarbundler/HelpBook.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/JarBundler.java b/external-tests/jEdit/net/sourceforge/jarbundler/JarBundler.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/JarBundler.java rename to external-tests/jEdit/net/sourceforge/jarbundler/JarBundler.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/JavaProperty.java b/external-tests/jEdit/net/sourceforge/jarbundler/JavaProperty.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/JavaProperty.java rename to external-tests/jEdit/net/sourceforge/jarbundler/JavaProperty.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/PropertyListWriter.java b/external-tests/jEdit/net/sourceforge/jarbundler/PropertyListWriter.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/PropertyListWriter.java rename to external-tests/jEdit/net/sourceforge/jarbundler/PropertyListWriter.java diff --git a/testes/jEdit/net/sourceforge/jarbundler/Service.java b/external-tests/jEdit/net/sourceforge/jarbundler/Service.java similarity index 100% rename from testes/jEdit/net/sourceforge/jarbundler/Service.java rename to external-tests/jEdit/net/sourceforge/jarbundler/Service.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Abbrevs.java b/external-tests/jEdit/org/gjt/sp/jedit/Abbrevs.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Abbrevs.java rename to external-tests/jEdit/org/gjt/sp/jedit/Abbrevs.java diff --git a/testes/jEdit/org/gjt/sp/jedit/AbstractOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/AbstractOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/AbstractOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/AbstractOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ActionContext.java b/external-tests/jEdit/org/gjt/sp/jedit/ActionContext.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ActionContext.java rename to external-tests/jEdit/org/gjt/sp/jedit/ActionContext.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ActionListHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/ActionListHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ActionListHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/ActionListHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ActionSet.java b/external-tests/jEdit/org/gjt/sp/jedit/ActionSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ActionSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/ActionSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Autosave.java b/external-tests/jEdit/org/gjt/sp/jedit/Autosave.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Autosave.java rename to external-tests/jEdit/org/gjt/sp/jedit/Autosave.java diff --git a/testes/jEdit/org/gjt/sp/jedit/BeanShell.java b/external-tests/jEdit/org/gjt/sp/jedit/BeanShell.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/BeanShell.java rename to external-tests/jEdit/org/gjt/sp/jedit/BeanShell.java diff --git a/testes/jEdit/org/gjt/sp/jedit/BeanShellAction.java b/external-tests/jEdit/org/gjt/sp/jedit/BeanShellAction.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/BeanShellAction.java rename to external-tests/jEdit/org/gjt/sp/jedit/BeanShellAction.java diff --git a/testes/jEdit/org/gjt/sp/jedit/BeanShellFacade.java b/external-tests/jEdit/org/gjt/sp/jedit/BeanShellFacade.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/BeanShellFacade.java rename to external-tests/jEdit/org/gjt/sp/jedit/BeanShellFacade.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Buffer.java b/external-tests/jEdit/org/gjt/sp/jedit/Buffer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Buffer.java rename to external-tests/jEdit/org/gjt/sp/jedit/Buffer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/BufferHistory.java b/external-tests/jEdit/org/gjt/sp/jedit/BufferHistory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/BufferHistory.java rename to external-tests/jEdit/org/gjt/sp/jedit/BufferHistory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Debug.java b/external-tests/jEdit/org/gjt/sp/jedit/Debug.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Debug.java rename to external-tests/jEdit/org/gjt/sp/jedit/Debug.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EBComponent.java b/external-tests/jEdit/org/gjt/sp/jedit/EBComponent.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EBComponent.java rename to external-tests/jEdit/org/gjt/sp/jedit/EBComponent.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EBMessage.java b/external-tests/jEdit/org/gjt/sp/jedit/EBMessage.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EBMessage.java rename to external-tests/jEdit/org/gjt/sp/jedit/EBMessage.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EBPlugin.java b/external-tests/jEdit/org/gjt/sp/jedit/EBPlugin.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EBPlugin.java rename to external-tests/jEdit/org/gjt/sp/jedit/EBPlugin.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EditAction.java b/external-tests/jEdit/org/gjt/sp/jedit/EditAction.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EditAction.java rename to external-tests/jEdit/org/gjt/sp/jedit/EditAction.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EditBus.java b/external-tests/jEdit/org/gjt/sp/jedit/EditBus.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EditBus.java rename to external-tests/jEdit/org/gjt/sp/jedit/EditBus.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EditPane.java b/external-tests/jEdit/org/gjt/sp/jedit/EditPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EditPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/EditPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EditPlugin.java b/external-tests/jEdit/org/gjt/sp/jedit/EditPlugin.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EditPlugin.java rename to external-tests/jEdit/org/gjt/sp/jedit/EditPlugin.java diff --git a/testes/jEdit/org/gjt/sp/jedit/EditServer.java b/external-tests/jEdit/org/gjt/sp/jedit/EditServer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/EditServer.java rename to external-tests/jEdit/org/gjt/sp/jedit/EditServer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/GUIUtilities.java b/external-tests/jEdit/org/gjt/sp/jedit/GUIUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/GUIUtilities.java rename to external-tests/jEdit/org/gjt/sp/jedit/GUIUtilities.java diff --git a/testes/jEdit/org/gjt/sp/jedit/IPropertyManager.java b/external-tests/jEdit/org/gjt/sp/jedit/IPropertyManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/IPropertyManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/IPropertyManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JARClassLoader.java b/external-tests/jEdit/org/gjt/sp/jedit/JARClassLoader.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JARClassLoader.java rename to external-tests/jEdit/org/gjt/sp/jedit/JARClassLoader.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditAbstractEditAction.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditAbstractEditAction.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditAbstractEditAction.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditAbstractEditAction.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditActionContext.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditActionContext.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditActionContext.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditActionContext.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditActionSet.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditActionSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditActionSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditActionSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditBeanShellAction.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditBeanShellAction.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditBeanShellAction.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditBeanShellAction.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditKillRing.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditKillRing.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditKillRing.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditKillRing.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditMode.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditMode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditMode.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditMode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditRegisterSaver.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditRegisterSaver.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditRegisterSaver.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditRegisterSaver.java diff --git a/testes/jEdit/org/gjt/sp/jedit/JEditRegistersListener.java b/external-tests/jEdit/org/gjt/sp/jedit/JEditRegistersListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/JEditRegistersListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/JEditRegistersListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Macros.java b/external-tests/jEdit/org/gjt/sp/jedit/Macros.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Macros.java rename to external-tests/jEdit/org/gjt/sp/jedit/Macros.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Marker.java b/external-tests/jEdit/org/gjt/sp/jedit/Marker.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Marker.java rename to external-tests/jEdit/org/gjt/sp/jedit/Marker.java diff --git a/testes/jEdit/org/gjt/sp/jedit/MiscUtilities.java b/external-tests/jEdit/org/gjt/sp/jedit/MiscUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/MiscUtilities.java rename to external-tests/jEdit/org/gjt/sp/jedit/MiscUtilities.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Mode.java b/external-tests/jEdit/org/gjt/sp/jedit/Mode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Mode.java rename to external-tests/jEdit/org/gjt/sp/jedit/Mode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ModeCatalogHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/ModeCatalogHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ModeCatalogHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/ModeCatalogHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/OperatingSystem.java b/external-tests/jEdit/org/gjt/sp/jedit/OperatingSystem.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/OperatingSystem.java rename to external-tests/jEdit/org/gjt/sp/jedit/OperatingSystem.java diff --git a/testes/jEdit/org/gjt/sp/jedit/OptionGroup.java b/external-tests/jEdit/org/gjt/sp/jedit/OptionGroup.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/OptionGroup.java rename to external-tests/jEdit/org/gjt/sp/jedit/OptionGroup.java diff --git a/testes/jEdit/org/gjt/sp/jedit/OptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/OptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/OptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/OptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/PerspectiveManager.java b/external-tests/jEdit/org/gjt/sp/jedit/PerspectiveManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/PerspectiveManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/PerspectiveManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/PluginJAR.java b/external-tests/jEdit/org/gjt/sp/jedit/PluginJAR.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/PluginJAR.java rename to external-tests/jEdit/org/gjt/sp/jedit/PluginJAR.java diff --git a/testes/jEdit/org/gjt/sp/jedit/PropertyManager.java b/external-tests/jEdit/org/gjt/sp/jedit/PropertyManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/PropertyManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/PropertyManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/RegisterSaver.java b/external-tests/jEdit/org/gjt/sp/jedit/RegisterSaver.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/RegisterSaver.java rename to external-tests/jEdit/org/gjt/sp/jedit/RegisterSaver.java diff --git a/testes/jEdit/org/gjt/sp/jedit/Registers.java b/external-tests/jEdit/org/gjt/sp/jedit/Registers.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/Registers.java rename to external-tests/jEdit/org/gjt/sp/jedit/Registers.java diff --git a/testes/jEdit/org/gjt/sp/jedit/RegistersListener.java b/external-tests/jEdit/org/gjt/sp/jedit/RegistersListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/RegistersListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/RegistersListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ServiceListHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/ServiceListHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ServiceListHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/ServiceListHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/ServiceManager.java b/external-tests/jEdit/org/gjt/sp/jedit/ServiceManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/ServiceManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/ServiceManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/SettingsReloader.java b/external-tests/jEdit/org/gjt/sp/jedit/SettingsReloader.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/SettingsReloader.java rename to external-tests/jEdit/org/gjt/sp/jedit/SettingsReloader.java diff --git a/testes/jEdit/org/gjt/sp/jedit/SettingsXML.java b/external-tests/jEdit/org/gjt/sp/jedit/SettingsXML.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/SettingsXML.java rename to external-tests/jEdit/org/gjt/sp/jedit/SettingsXML.java diff --git a/testes/jEdit/org/gjt/sp/jedit/SplitConfigParser.java b/external-tests/jEdit/org/gjt/sp/jedit/SplitConfigParser.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/SplitConfigParser.java rename to external-tests/jEdit/org/gjt/sp/jedit/SplitConfigParser.java diff --git a/testes/jEdit/org/gjt/sp/jedit/TextUtilities.java b/external-tests/jEdit/org/gjt/sp/jedit/TextUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/TextUtilities.java rename to external-tests/jEdit/org/gjt/sp/jedit/TextUtilities.java diff --git a/testes/jEdit/org/gjt/sp/jedit/View.java b/external-tests/jEdit/org/gjt/sp/jedit/View.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/View.java rename to external-tests/jEdit/org/gjt/sp/jedit/View.java diff --git a/testes/jEdit/org/gjt/sp/jedit/actions.dtd b/external-tests/jEdit/org/gjt/sp/jedit/actions.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/actions.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/actions.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/actions.xml b/external-tests/jEdit/org/gjt/sp/jedit/actions.xml similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/actions.xml rename to external-tests/jEdit/org/gjt/sp/jedit/actions.xml diff --git a/testes/jEdit/org/gjt/sp/jedit/browser.actions.xml b/external-tests/jEdit/org/gjt/sp/jedit/browser.actions.xml similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser.actions.xml rename to external-tests/jEdit/org/gjt/sp/jedit/browser.actions.xml diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/AbstractBrowserTask.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/AbstractBrowserTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/AbstractBrowserTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/AbstractBrowserTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/BrowserCommandsMenu.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserCommandsMenu.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/BrowserCommandsMenu.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserCommandsMenu.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/BrowserListener.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/BrowserListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/BrowserView.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserView.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/BrowserView.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/BrowserView.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/DeleteBrowserTask.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/DeleteBrowserTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/DeleteBrowserTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/DeleteBrowserTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/FileCellRenderer.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/FileCellRenderer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/FileCellRenderer.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/FileCellRenderer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/ListDirectoryBrowserTask.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/ListDirectoryBrowserTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/ListDirectoryBrowserTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/ListDirectoryBrowserTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/MkDirBrowserTask.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/MkDirBrowserTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/MkDirBrowserTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/MkDirBrowserTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/RenameBrowserTask.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/RenameBrowserTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/RenameBrowserTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/RenameBrowserTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/VFSBrowser.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/VFSBrowser.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/VFSBrowser.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/VFSBrowser.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTable.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTable.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTableModel.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTableModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTableModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/VFSDirectoryEntryTableModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/VFSFileChooserDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/VFSFileChooserDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/VFSFileChooserDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/VFSFileChooserDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/VFSFileNameField.java b/external-tests/jEdit/org/gjt/sp/jedit/browser/VFSFileNameField.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/VFSFileNameField.java rename to external-tests/jEdit/org/gjt/sp/jedit/browser/VFSFileNameField.java diff --git a/testes/jEdit/org/gjt/sp/jedit/browser/package.html b/external-tests/jEdit/org/gjt/sp/jedit/browser/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/browser/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/browser/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHAllocationExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAllocationExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHAllocationExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAllocationExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHAmbiguousName.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAmbiguousName.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHAmbiguousName.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAmbiguousName.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHArguments.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArguments.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHArguments.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArguments.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHArrayDimensions.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArrayDimensions.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHArrayDimensions.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArrayDimensions.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHArrayInitializer.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArrayInitializer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHArrayInitializer.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHArrayInitializer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHAssignment.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAssignment.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHAssignment.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHAssignment.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHBinaryExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHBinaryExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHBinaryExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHBinaryExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHBlock.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHCastExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHCastExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHCastExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHCastExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHClassDeclaration.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHClassDeclaration.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHClassDeclaration.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHClassDeclaration.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHEnhancedForStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHEnhancedForStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHEnhancedForStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHEnhancedForStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHForStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHForStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHForStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHForStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalComment.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalComment.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalComment.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalComment.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameter.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameter.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameters.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameters.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameters.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHFormalParameters.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHIfStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHIfStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHIfStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHIfStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHImportDeclaration.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHImportDeclaration.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHImportDeclaration.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHImportDeclaration.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHLiteral.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHLiteral.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHLiteral.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHLiteral.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHMethodDeclaration.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHMethodDeclaration.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHMethodDeclaration.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHMethodDeclaration.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHMethodInvocation.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHMethodInvocation.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHMethodInvocation.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHMethodInvocation.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHPackageDeclaration.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPackageDeclaration.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHPackageDeclaration.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPackageDeclaration.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimaryExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimaryExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimaryExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimaryExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimarySuffix.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimarySuffix.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimarySuffix.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimarySuffix.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimitiveType.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimitiveType.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHPrimitiveType.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHPrimitiveType.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHReturnStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHReturnStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHReturnStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHReturnStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHReturnType.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHReturnType.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHReturnType.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHReturnType.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHStatementExpressionList.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHStatementExpressionList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHStatementExpressionList.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHStatementExpressionList.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchLabel.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchLabel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchLabel.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchLabel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHSwitchStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHTernaryExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTernaryExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHTernaryExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTernaryExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHThrowStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHThrowStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHThrowStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHThrowStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHTryStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTryStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHTryStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTryStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHType.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHType.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHType.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHType.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHTypedVariableDeclaration.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTypedVariableDeclaration.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHTypedVariableDeclaration.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHTypedVariableDeclaration.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHUnaryExpression.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHUnaryExpression.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHUnaryExpression.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHUnaryExpression.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHVariableDeclarator.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHVariableDeclarator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHVariableDeclarator.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHVariableDeclarator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BSHWhileStatement.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHWhileStatement.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BSHWhileStatement.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BSHWhileStatement.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BlockNameSpace.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BlockNameSpace.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BlockNameSpace.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BlockNameSpace.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BshClass.scripted b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BshClass.scripted similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BshClass.scripted rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BshClass.scripted diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BshClassManager.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BshClassManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BshClassManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BshClassManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BshIterator.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BshIterator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BshIterator.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BshIterator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/BshMethod.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/BshMethod.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/BshMethod.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/BshMethod.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/CallStack.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/CallStack.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/CallStack.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/CallStack.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Capabilities.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Capabilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Capabilities.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Capabilities.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassGenerator.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGenerator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassGenerator.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGenerator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorImpl.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorImpl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorImpl.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorImpl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorUtil.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorUtil.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorUtil.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassGeneratorUtil.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassIdentifier.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassIdentifier.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassIdentifier.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassIdentifier.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassNameSpace.scripted b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassNameSpace.scripted similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassNameSpace.scripted rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassNameSpace.scripted diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ClassPathException.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassPathException.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ClassPathException.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ClassPathException.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/CollectionManager.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/CollectionManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/CollectionManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/CollectionManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/CommandLineReader.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/CommandLineReader.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/CommandLineReader.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/CommandLineReader.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ConsoleInterface.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ConsoleInterface.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ConsoleInterface.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ConsoleInterface.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/DelayedEvalBshMethod.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/DelayedEvalBshMethod.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/DelayedEvalBshMethod.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/DelayedEvalBshMethod.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/EvalError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/EvalError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/EvalError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/EvalError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ExternalNameSpace.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ExternalNameSpace.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ExternalNameSpace.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ExternalNameSpace.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Interpreter.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Interpreter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Interpreter.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Interpreter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/InterpreterError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/InterpreterError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/InterpreterError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/InterpreterError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/JJTParserState.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/JJTParserState.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/JJTParserState.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/JJTParserState.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/JThis.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/JThis.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/JThis.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/JThis.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/JavaCharStream.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/JavaCharStream.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/JavaCharStream.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/JavaCharStream.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/LHS.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/LHS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/LHS.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/LHS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Modifiers.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Modifiers.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Modifiers.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Modifiers.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Name.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Name.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Name.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Name.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/NameSource.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/NameSource.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/NameSource.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/NameSource.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/NameSpace.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/NameSpace.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/NameSpace.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/NameSpace.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Node.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Node.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Node.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Node.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ParseException.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ParseException.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ParseException.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ParseException.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Parser.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Parser.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Parser.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Parser.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ParserConstants.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserConstants.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ParserConstants.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserConstants.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ParserTokenManager.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserTokenManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ParserTokenManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserTokenManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ParserTreeConstants.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserTreeConstants.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ParserTreeConstants.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ParserTreeConstants.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Primitive.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Primitive.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Primitive.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Primitive.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Reflect.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Reflect.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Reflect.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Reflect.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Reflect.last b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Reflect.last similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Reflect.last rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Reflect.last diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ReflectError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ReflectError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ReflectError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ReflectError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ReflectManager.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ReflectManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ReflectManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ReflectManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Remote.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Remote.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Remote.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Remote.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/ReturnControl.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/ReturnControl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/ReturnControl.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/ReturnControl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/SimpleNode.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/SimpleNode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/SimpleNode.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/SimpleNode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/StringUtil.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/StringUtil.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/StringUtil.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/StringUtil.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/TargetError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/TargetError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/TargetError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/TargetError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/This.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/This.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/This.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/This.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Token.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Token.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Token.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Token.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/TokenMgrError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/TokenMgrError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/TokenMgrError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/TokenMgrError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Types.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Types.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Types.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Types.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/UtilEvalError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/UtilEvalError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/UtilEvalError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/UtilEvalError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/UtilTargetError.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/UtilTargetError.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/UtilTargetError.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/UtilTargetError.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/Variable.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/Variable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/Variable.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/Variable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/XThis.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/XThis.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/XThis.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/XThis.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/bsh.jj b/external-tests/jEdit/org/gjt/sp/jedit/bsh/bsh.jj similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/bsh.jj rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/bsh.jj diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/bsh.jjt b/external-tests/jEdit/org/gjt/sp/jedit/bsh/bsh.jjt similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/bsh.jjt rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/bsh.jjt diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassLoader.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassLoader.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassLoader.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassLoader.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassPath.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassPath.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassPath.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/BshClassPath.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassManagerImpl.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassManagerImpl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassManagerImpl.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassManagerImpl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassPathListener.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassPathListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassPathListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/ClassPathListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/classpath/DiscreteFilesClassLoader.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/DiscreteFilesClassLoader.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/classpath/DiscreteFilesClassLoader.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/classpath/DiscreteFilesClassLoader.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionIterator.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionIterator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionIterator.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionIterator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionManagerImpl.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionManagerImpl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionManagerImpl.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/collection/CollectionManagerImpl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/addClassPath.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/addClassPath.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/addClassPath.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/addClassPath.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/bg.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/bg.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/bg.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/bg.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/bind.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/bind.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/bind.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/bind.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/browseClass.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/browseClass.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/browseClass.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/browseClass.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/cat.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cat.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/cat.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cat.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/cd.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cd.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/cd.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cd.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/classBrowser.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/classBrowser.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/classBrowser.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/classBrowser.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/clear.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/clear.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/clear.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/clear.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/cp.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cp.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/cp.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/cp.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/debug.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/debug.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/debug.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/debug.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/desktop.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/desktop.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/desktop.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/desktop.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/dir.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/dir.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/dir.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/dir.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/dirname.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/dirname.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/dirname.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/dirname.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/editor.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/editor.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/editor.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/editor.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/error.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/error.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/error.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/error.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/eval.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/eval.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/eval.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/eval.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/exec.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/exec.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/exec.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/exec.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/exit.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/exit.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/exit.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/exit.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/extend.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/extend.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/extend.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/extend.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/fontMenu.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/fontMenu.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/fontMenu.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/fontMenu.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/frame.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/frame.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/frame.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/frame.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/getBshPrompt.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getBshPrompt.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/getBshPrompt.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getBshPrompt.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/getClass.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getClass.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/getClass.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getClass.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/getClassPath.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getClassPath.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/getClassPath.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getClassPath.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/getResource.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getResource.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/getResource.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getResource.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/getSourceFileInfo.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getSourceFileInfo.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/getSourceFileInfo.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/getSourceFileInfo.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/importCommands.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/importCommands.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/importCommands.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/importCommands.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/importObject.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/importObject.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/importObject.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/importObject.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/javap.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/javap.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/javap.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/javap.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/load.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/load.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/load.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/load.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/makeWorkspace.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/makeWorkspace.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/makeWorkspace.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/makeWorkspace.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/mv.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/mv.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/mv.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/mv.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/object.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/object.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/object.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/object.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/pathToFile.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/pathToFile.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/pathToFile.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/pathToFile.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/print.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/print.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/print.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/print.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/printBanner.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/printBanner.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/printBanner.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/printBanner.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/pwd.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/pwd.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/pwd.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/pwd.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/reloadClasses.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/reloadClasses.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/reloadClasses.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/reloadClasses.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/rm.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/rm.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/rm.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/rm.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/run.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/run.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/run.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/run.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/save.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/save.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/save.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/save.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/server.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/server.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/server.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/server.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setAccessibility.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setAccessibility.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setAccessibility.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setAccessibility.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setClassPath.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setClassPath.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setClassPath.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setClassPath.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setFont.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setFont.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setFont.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setFont.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setNameCompletion.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setNameCompletion.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setNameCompletion.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setNameCompletion.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setNameSpace.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setNameSpace.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setNameSpace.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setNameSpace.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/setStrictJava.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setStrictJava.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/setStrictJava.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/setStrictJava.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/show.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/show.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/show.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/show.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/source.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/source.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/source.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/source.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/sourceRelative.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/sourceRelative.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/sourceRelative.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/sourceRelative.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/thinBorder.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/thinBorder.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/thinBorder.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/thinBorder.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/unset.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/unset.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/unset.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/unset.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/which.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/which.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/which.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/which.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/commands/workspaceEditor.bsh b/external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/workspaceEditor.bsh similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/commands/workspaceEditor.bsh rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/commands/workspaceEditor.bsh diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ByteVector.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ByteVector.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ByteVector.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ByteVector.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassVisitor.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassVisitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassVisitor.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassVisitor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassWriter.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassWriter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassWriter.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/ClassWriter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeVisitor.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeVisitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeVisitor.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeVisitor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeWriter.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeWriter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeWriter.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/CodeWriter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Constants.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Constants.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Constants.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Constants.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Edge.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Edge.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Edge.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Edge.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Item.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Item.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Item.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Item.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Label.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Label.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Label.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Label.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Type.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Type.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Type.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/org/objectweb/asm/Type.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/package.html b/external-tests/jEdit/org/gjt/sp/jedit/bsh/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/bsh/reflect/ReflectManagerImpl.java b/external-tests/jEdit/org/gjt/sp/jedit/bsh/reflect/ReflectManagerImpl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bsh/reflect/ReflectManagerImpl.java rename to external-tests/jEdit/org/gjt/sp/jedit/bsh/reflect/ReflectManagerImpl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/BufferAdapter.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferAdapter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/BufferAdapter.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferAdapter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/BufferListener.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/BufferListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/BufferSegment.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferSegment.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/BufferSegment.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferSegment.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/BufferUndoListener.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferUndoListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/BufferUndoListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/BufferUndoListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/ContentManager.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/ContentManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/ContentManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/ContentManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/DefaultFoldHandlerProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/DummyFoldHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/DummyFoldHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/DummyFoldHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/DummyFoldHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/ExplicitFoldHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/FoldHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/FoldHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/FoldHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/FoldHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/FoldHandlerProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/FoldHandlerProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/FoldHandlerProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/FoldHandlerProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/IndentFoldHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/IndentFoldHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/IndentFoldHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/IndentFoldHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/JEditBuffer.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/JEditBuffer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/JEditBuffer.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/JEditBuffer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/KillRing.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/KillRing.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/KillRing.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/KillRing.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/LineManager.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/LineManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/LineManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/LineManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/PositionManager.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/PositionManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/PositionManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/PositionManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/UndoManager.java b/external-tests/jEdit/org/gjt/sp/jedit/buffer/UndoManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/UndoManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/UndoManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/buffer/package.html b/external-tests/jEdit/org/gjt/sp/jedit/buffer/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/buffer/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/buffer/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/BufferAutosaveRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferAutosaveRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/BufferAutosaveRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferAutosaveRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/BufferIORequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferIORequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/BufferIORequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferIORequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/BufferInsertRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferInsertRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/BufferInsertRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferInsertRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/BufferLoadRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferLoadRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/BufferLoadRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferLoadRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/BufferSaveRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/IoTask.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/IoTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/IoTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/IoTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/MarkersSaveRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/MarkersSaveRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/MarkersSaveRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/MarkersSaveRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferio/package.html b/external-tests/jEdit/org/gjt/sp/jedit/bufferio/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferio/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/bufferio/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSet.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetAdapter.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetAdapter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetAdapter.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetAdapter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetListener.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetManager.java b/external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferset/BufferSetManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/bufferset/BufferSetManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/bufferset/package.html b/external-tests/jEdit/org/gjt/sp/jedit/bufferset/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/bufferset/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/bufferset/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/catalog.dtd b/external-tests/jEdit/org/gjt/sp/jedit/catalog.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/catalog.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/catalog.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditDataFlavor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditRichText.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditRichText.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditRichText.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditRichText.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferable.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferable.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferableService.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferableService.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferableService.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/JEditTransferableService.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/ListVFSFileTransferable.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/ListVFSFileTransferable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/ListVFSFileTransferable.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/ListVFSFileTransferable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/RichJEditTextTransferableService.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/RichTextTransferable.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/RichTextTransferable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/RichTextTransferable.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/RichTextTransferable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/StringTransferableService.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/StringTransferableService.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/StringTransferableService.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/StringTransferableService.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/TransferHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/TransferHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/TransferHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/TransferHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/datatransfer/package.html b/external-tests/jEdit/org/gjt/sp/jedit/datatransfer/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/datatransfer/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/datatransfer/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/default.abbrevs b/external-tests/jEdit/org/gjt/sp/jedit/default.abbrevs similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/default.abbrevs rename to external-tests/jEdit/org/gjt/sp/jedit/default.abbrevs diff --git a/testes/jEdit/org/gjt/sp/jedit/dockables.dtd b/external-tests/jEdit/org/gjt/sp/jedit/dockables.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/dockables.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/dockables.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/dockables.xml b/external-tests/jEdit/org/gjt/sp/jedit/dockables.xml similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/dockables.xml rename to external-tests/jEdit/org/gjt/sp/jedit/dockables.xml diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AbbrevEditor.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AbbrevEditor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AbbrevEditor.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AbbrevEditor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AboutDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AboutDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AboutDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AboutDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AbstractContextOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AbstractContextOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AbstractContextOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AbstractContextOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ActionBar.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ActionBar.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ActionBar.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ActionBar.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AddAbbrevDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AddAbbrevDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AddAbbrevDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AddAbbrevDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AddModeDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AddModeDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AddModeDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AddModeDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/AnimatedIcon.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/AnimatedIcon.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/AnimatedIcon.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/AnimatedIcon.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/BeanShellErrorDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/BeanShellErrorDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/BeanShellErrorDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/BeanShellErrorDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/BufferOptions.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/BufferOptions.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/BufferOptions.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/BufferOptions.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/BufferSwitcher.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/BufferSwitcher.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/BufferSwitcher.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/BufferSwitcher.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/CloseDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/CloseDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/CloseDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/CloseDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ColorWellButton.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ColorWellButton.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ColorWellButton.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ColorWellButton.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/CompleteWord.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/CompleteWord.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/CompleteWord.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/CompleteWord.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/CompletionPopup.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/CompletionPopup.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/CompletionPopup.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/CompletionPopup.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ContextAddDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ContextAddDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ContextAddDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ContextAddDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DefaultFocusComponent.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DefaultFocusComponent.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DefaultFocusComponent.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DefaultFocusComponent.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DefaultInputHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DefaultInputHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DefaultInputHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DefaultInputHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableLayout.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableLayout.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableLayout.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableLayout.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockablePanel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockablePanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockablePanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockablePanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindow.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindow.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindow.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindow.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowContainer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowContainer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowContainer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowContainer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManager.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerImpl.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerImpl.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerImpl.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerImpl.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockableWindowManagerProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockingFrameworkProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockingFrameworkProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockingFrameworkProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockingFrameworkProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DockingLayoutManager.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DockingLayoutManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DockingLayoutManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DockingLayoutManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/DynamicContextMenuService.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/DynamicContextMenuService.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/DynamicContextMenuService.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/DynamicContextMenuService.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/EditAbbrevDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/EditAbbrevDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/EditAbbrevDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/EditAbbrevDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/EnhancedButton.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/EnhancedButton.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/EnhancedButton.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/EnhancedButton.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/EnhancedDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/EnhancedDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/EnhancedDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/EnhancedDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ErrorListDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ErrorListDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ErrorListDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ErrorListDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayout.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayout.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayout.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayout.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayoutConstraints.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayoutConstraints.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayoutConstraints.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ExtendedGridLayoutConstraints.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FilePropertiesDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FilePropertiesDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FilePropertiesDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FilePropertiesDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FilesChangedDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FilesChangedDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FilesChangedDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FilesChangedDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FilteredListModel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FilteredListModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FilteredListModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FilteredListModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FilteredTableModel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FilteredTableModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FilteredTableModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FilteredTableModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FloatingWindowContainer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FloatingWindowContainer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FloatingWindowContainer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FloatingWindowContainer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FontSelector.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FontSelector.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FontSelector.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FontSelector.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/FontSelectorDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/FontSelectorDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/FontSelectorDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/FontSelectorDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/GrabKeyDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/GrabKeyDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/GrabKeyDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/GrabKeyDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/HistoryModel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/HistoryModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/HistoryModelSaver.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryModelSaver.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/HistoryModelSaver.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryModelSaver.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/HistoryText.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryText.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/HistoryText.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryText.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/HistoryTextArea.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryTextArea.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/HistoryTextArea.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryTextArea.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/HistoryTextField.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryTextField.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/HistoryTextField.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/HistoryTextField.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/InputHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/InputHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/InputHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/InputHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/JCheckBoxList.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/JCheckBoxList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/JCheckBoxList.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/JCheckBoxList.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/JEditHistoryModelSaver.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/JEditHistoryModelSaver.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/JEditHistoryModelSaver.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/JEditHistoryModelSaver.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/KeyEventTranslator.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/KeyEventTranslator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/KeyEventTranslator.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/KeyEventTranslator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/KeyEventWorkaround.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/KeyEventWorkaround.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/KeyEventWorkaround.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/KeyEventWorkaround.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ListModelEditor.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ListModelEditor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ListModelEditor.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ListModelEditor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/LogViewer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/LogViewer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/LogViewer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/LogViewer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/MarkerViewer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/MarkerViewer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/MarkerViewer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/MarkerViewer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/MutableListModel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/MutableListModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/MutableListModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/MutableListModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/NumericTextField.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/NumericTextField.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/NumericTextField.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/NumericTextField.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/OptionsDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/OptionsDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/OptionsDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/OptionsDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/PanelWindowContainer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/PanelWindowContainer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/PanelWindowContainer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/PanelWindowContainer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/PasteFromListDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/PasteFromListDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/PasteFromListDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/PasteFromListDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/PasteSpecialDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/PasteSpecialDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/PasteSpecialDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/PasteSpecialDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/PingPongList.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/PingPongList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/PingPongList.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/PingPongList.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/RegisterViewer.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/RegisterViewer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/RegisterViewer.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/RegisterViewer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/RolloverButton.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/RolloverButton.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/RolloverButton.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/RolloverButton.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/SelectLineRange.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/SelectLineRange.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/SelectLineRange.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/SelectLineRange.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ShortcutPrefixActiveEvent.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/SplashScreen.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/SplashScreen.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/SplashScreen.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/SplashScreen.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/StatusBar.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/StatusBar.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/StatusBar.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/StatusBar.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/StyleEditor.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/StyleEditor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/StyleEditor.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/StyleEditor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/TaskMonitor.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/TaskMonitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/TaskMonitor.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/TaskMonitor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/TextAreaDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/TextAreaDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/TextAreaDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/TextAreaDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/TipOfTheDay.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/TipOfTheDay.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/TipOfTheDay.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/TipOfTheDay.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/ToolBarManager.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/ToolBarManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/ToolBarManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/ToolBarManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/VariableGridLayout.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/VariableGridLayout.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/VariableGridLayout.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/VariableGridLayout.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/package.html b/external-tests/jEdit/org/gjt/sp/jedit/gui/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/gui/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/BufferSetWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/BufferSetWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/BufferSetWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/BufferSetWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ClockWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ClockWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ClockWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ClockWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/EncodingWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/EncodingWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/EncodingWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/EncodingWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ErrorsWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ErrorsWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ErrorsWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ErrorsWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/FoldWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/FoldWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/FoldWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/FoldWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/IndentWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/IndentWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/IndentWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/IndentWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/LastModifiedWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/LastModifiedWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/LastModifiedWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/LastModifiedWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/LineSepWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/LineSepWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/LineSepWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/LineSepWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/MemoryStatusWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/MemoryStatusWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/MemoryStatusWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/MemoryStatusWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ModeWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ModeWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ModeWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ModeWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/MultiSelectWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/MultiSelectWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/MultiSelectWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/MultiSelectWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/OverwriteWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/OverwriteWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/OverwriteWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/OverwriteWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/RectSelectWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/RectSelectWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/RectSelectWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/RectSelectWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/SelectionLengthWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/SelectionLengthWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/SelectionLengthWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/SelectionLengthWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/StatusWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/StatusWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/StatusWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/StatusWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/TaskMonitorWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/TaskMonitorWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/TaskMonitorWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/TaskMonitorWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ToolTipLabel.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ToolTipLabel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/ToolTipLabel.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/ToolTipLabel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/Widget.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/Widget.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/Widget.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/Widget.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/statusbar/package.html b/external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/statusbar/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/gui/statusbar/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JEditSwingTrayIcon.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/tray/JEditTrayIcon.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JEditTrayIcon.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/tray/JEditTrayIcon.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JEditTrayIcon.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIcon.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIcon.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIcon.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIcon.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIconManager.java b/external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIconManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIconManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/gui/tray/JTrayIconManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/gui/tray/package.html b/external-tests/jEdit/org/gjt/sp/jedit/gui/tray/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/gui/tray/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/gui/tray/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpHistoryModel.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpHistoryModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpHistoryModel.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpHistoryModel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpHistoryModelListener.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpHistoryModelListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpHistoryModelListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpHistoryModelListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpIndex.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpIndex.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpIndex.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpIndex.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpSearchPanel.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpSearchPanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpSearchPanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpSearchPanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpTOCPanel.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpTOCPanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpTOCPanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpTOCPanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpViewer.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpViewer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpViewer.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpViewer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HelpViewerInterface.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HelpViewerInterface.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HelpViewerInterface.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HelpViewerInterface.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/HistoryButton.java b/external-tests/jEdit/org/gjt/sp/jedit/help/HistoryButton.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/HistoryButton.java rename to external-tests/jEdit/org/gjt/sp/jedit/help/HistoryButton.java diff --git a/testes/jEdit/org/gjt/sp/jedit/help/package.html b/external-tests/jEdit/org/gjt/sp/jedit/help/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/help/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/help/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/splash.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/splash.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/splash.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/splash.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/actions/close.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/actions/close.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/actions/close.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/actions/close.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/emblem/emblem-readonly.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/emblem/emblem-readonly.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/emblem/emblem-readonly.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/emblem/emblem-readonly.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-modified.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-modified.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-modified.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-modified.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-unmodified.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-unmodified.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-unmodified.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/10x10/status/document-unmodified.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/edit-select-all.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/edit-select-all.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/edit-select-all.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/edit-select-all.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-collapse.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-collapse.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-collapse.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-collapse.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-expand.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-expand.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-expand.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/group-expand.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/view-reload.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/view-reload.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/view-reload.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/actions/view-reload.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/devices/drive-harddisk.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/devices/drive-harddisk.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/devices/drive-harddisk.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/devices/drive-harddisk.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/mimetypes/text-x-generic.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/mimetypes/text-x-generic.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/mimetypes/text-x-generic.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/mimetypes/text-x-generic.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/places/folder.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/places/folder.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/places/folder.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/places/folder.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/status/folder-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/status/folder-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/status/folder-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/16x16/status/folder-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run-again.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run-again.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run-again.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run-again.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/application-run.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/copy-to-buffer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/copy-to-buffer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/copy-to-buffer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/copy-to-buffer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-close.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-close.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-close.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-close.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-print.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-print.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-print.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-print.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-properties.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-properties.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-properties.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-properties.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-reload2.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-reload2.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-reload2.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-reload2.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-all.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-all.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-all.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-all.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-as.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-as.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-as.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save-as.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/document-save.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-clear.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-clear.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-clear.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-clear.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-copy.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-copy.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-copy.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-copy.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-cut.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-cut.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-cut.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-cut.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-delete.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-delete.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-delete.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-delete.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-highlight-match.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-highlight-match.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-highlight-match.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-highlight-match.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-in-folder.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-in-folder.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-in-folder.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-in-folder.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-multiple.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-multiple.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-multiple.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-multiple.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-next.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-next.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-next.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-next.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-normal-match.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-normal-match.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-normal-match.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-normal-match.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-single.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-single.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-single.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find-single.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-find.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-paste.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-paste.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-paste.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-paste.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-redo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-redo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-redo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-redo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-undo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-undo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-undo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/edit-undo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/folder-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/folder-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/folder-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/folder-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-down.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-down.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-down.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-down.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-first.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-first.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-first.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-first.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-home.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-home.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-home.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-home.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-last.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-last.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-last.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-last.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-next.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-next.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-next.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-next.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-parent.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-parent.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-parent.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-parent.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-previous.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-previous.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-previous.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-previous.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-up.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-up.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-up.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/go-up.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-add.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-add.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-add.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-add.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-remove.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-remove.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-remove.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/list-remove.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-pause.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-pause.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-pause.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-pause.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-start.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-start.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-start.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/media-playback-start.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/printer-setup.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/printer-setup.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/printer-setup.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/printer-setup.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/process-stop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/process-stop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/process-stop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/process-stop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/resize-horisontal.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/resize-horisontal.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/resize-horisontal.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/resize-horisontal.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/run-to-buffer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/run-to-buffer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/run-to-buffer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/run-to-buffer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/view-refresh.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/view-refresh.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/view-refresh.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/view-refresh.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-horizontal.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-horizontal.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-horizontal.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-horizontal.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-vertical.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-vertical.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-vertical.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-split-vertical.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-unsplit.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-unsplit.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-unsplit.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/window-unsplit.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-in.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-in.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-in.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-in.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-out.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-out.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-out.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/actions/zoom-out.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/help-browser.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/help-browser.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/help-browser.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/help-browser.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/system-installer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/system-installer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/system-installer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/apps/system-installer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/categories/preferences-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/categories/preferences-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/categories/preferences-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/categories/preferences-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/drive-harddisk.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/drive-harddisk.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/drive-harddisk.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/drive-harddisk.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/media-floppy.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/media-floppy.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/media-floppy.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/media-floppy.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/printer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/printer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/printer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/devices/printer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/places/plugins.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/places/plugins.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/places/plugins.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/places/plugins.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/folder-visiting.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/folder-visiting.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/folder-visiting.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/folder-visiting.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/image-missing.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/image-missing.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/image-missing.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/22x22/status/image-missing.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/32x32/apps/jedit.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/32x32/apps/jedit.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/32x32/apps/jedit.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/32x32/apps/jedit.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/Blank24.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/Blank24.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/Blank24.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/Blank24.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/ToolbarMenu.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/ToolbarMenu.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/ToolbarMenu.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/ToolbarMenu.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/about.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/about.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/about.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/about.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-asc.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-asc.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-asc.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-asc.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-desc.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-desc.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-desc.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/arrow-desc.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout1.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout1.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout1.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout1.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout2.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout2.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout2.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout2.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout3.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout3.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout3.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout3.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout4.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout4.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout4.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/dock_layout4.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/loader.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/loader.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/classic/loader.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/classic/loader.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/actions/close.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/actions/close.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/actions/close.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/actions/close.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/emblem/emblem-readonly.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/emblem/emblem-readonly.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/emblem/emblem-readonly.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/emblem/emblem-readonly.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-modified.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-modified.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-modified.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-modified.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-unmodified.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-unmodified.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-unmodified.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/10x10/status/document-unmodified.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-close.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-close.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-close.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-close.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print-preview.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print-preview.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print-preview.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print-preview.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-print.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-properties.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-properties.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-properties.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-properties.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-all.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-all.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-all.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-all.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-as.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-as.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-as.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save-as.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/document-save.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-copy.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-copy.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-copy.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-copy.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-cut.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-cut.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-cut.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-cut.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-delete.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-delete.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-delete.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-delete.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find-replace.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find-replace.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find-replace.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find-replace.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-find.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-paste.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-paste.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-paste.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-paste.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-redo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-redo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-redo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-redo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-select-all.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-select-all.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-select-all.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-select-all.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-undo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-undo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-undo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/edit-undo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/folder-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/folder-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/folder-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/folder-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-collapse.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-collapse.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-collapse.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-collapse.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-expand.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-expand.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-expand.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/group-expand.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-add.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-add.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-add.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-add.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-remove.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-remove.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-remove.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/list-remove.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-playback-stop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-playback-stop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-playback-stop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-playback-stop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-record.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-record.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-record.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/media-record.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/process-stop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/process-stop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/process-stop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/process-stop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/view-refresh.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/view-refresh.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/view-refresh.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/view-refresh.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/window-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/window-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/window-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/actions/window-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/animations/process-working.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/animations/process-working.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/animations/process-working.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/animations/process-working.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/jedit.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/jedit.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/jedit.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/jedit.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/system-file-manager.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/system-file-manager.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/system-file-manager.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/apps/system-file-manager.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/applications-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/applications-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/applications-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/applications-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/preferences-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/preferences-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/preferences-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/categories/preferences-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/devices/drive-harddisk.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/devices/drive-harddisk.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/devices/drive-harddisk.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/devices/drive-harddisk.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-favorite.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-favorite.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-favorite.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-favorite.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-important.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-important.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-important.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-important.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-photos.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-photos.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-photos.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-photos.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-readonly.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-readonly.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-readonly.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-readonly.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-symbolic-link.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-symbolic-link.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-symbolic-link.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-symbolic-link.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-unreadable.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-unreadable.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-unreadable.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/emblem/emblem-unreadable.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/application-x-executable.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/application-x-executable.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/application-x-executable.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/application-x-executable.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/text-x-generic.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/text-x-generic.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/text-x-generic.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/mimetypes/text-x-generic.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/places/folder.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/places/folder.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/places/folder.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/places/folder.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-error.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-error.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-error.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-error.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-information.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-information.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-information.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-information.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-warning.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-warning.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-warning.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/dialog-warning.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-empty.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-empty.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-empty.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-empty.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/document-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-drag-accept.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-drag-accept.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-drag-accept.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-drag-accept.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-visiting.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-visiting.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-visiting.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/folder-visiting.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-loading.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-loading.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-loading.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-loading.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-missing.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-missing.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-missing.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/16x16/status/image-missing.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run-again.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run-again.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run-again.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run-again.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/application-run.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/bookmark-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/bookmark-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/bookmark-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/bookmark-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/copy-to-buffer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/copy-to-buffer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/copy-to-buffer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/copy-to-buffer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-close.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-close.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-close.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-close.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print-preview.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print-preview.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print-preview.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print-preview.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-print.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-properties.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-properties.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-properties.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-properties.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload2.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload2.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload2.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-reload2.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-all.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-all.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-all.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-all.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-as.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-as.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-as.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save-as.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/document-save.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-clear.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-clear.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-clear.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-clear.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-copy.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-copy.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-copy.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-copy.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-cut.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-cut.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-cut.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-cut.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-delete.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-delete.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-delete.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-delete.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-highlight-match.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-highlight-match.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-highlight-match.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-highlight-match.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-in-folder.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-in-folder.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-in-folder.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-in-folder.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-multiple.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-multiple.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-multiple.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-multiple.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-next.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-next.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-next.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-next.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-normal-match.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-normal-match.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-normal-match.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-normal-match.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-replace.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-replace.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-replace.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-replace.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-single.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-single.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-single.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find-single.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-find.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-paste.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-paste.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-paste.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-paste.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-redo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-redo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-redo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-redo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-undo.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-undo.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-undo.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/edit-undo.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/folder-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/folder-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/folder-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/folder-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-bottom.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-bottom.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-bottom.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-bottom.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-down.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-down.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-down.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-down.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-first.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-first.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-first.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-first.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-home.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-home.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-home.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-home.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-jump.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-jump.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-jump.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-jump.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-last.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-last.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-last.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-last.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-next.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-next.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-next.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-next.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-parent.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-parent.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-parent.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-parent.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-previous.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-previous.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-previous.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-previous.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-top.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-top.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-top.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-top.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-up.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-up.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-up.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/go-up.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-add.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-add.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-add.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-add.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-remove.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-remove.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-remove.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/list-remove.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-eject.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-eject.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-eject.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-eject.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-pause.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-pause.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-pause.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-pause.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-start.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-start.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-start.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-start.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-stop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-stop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-stop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-playback-stop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-record.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-record.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-record.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-record.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-backward.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-backward.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-backward.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-backward.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-forward.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-forward.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-forward.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-seek-forward.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-backward.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-backward.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-backward.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-backward.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-forward.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-forward.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-forward.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/media-skip-forward.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/printer-setup.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/printer-setup.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/printer-setup.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/printer-setup.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/process-stop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/process-stop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/process-stop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/process-stop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/resize-horisontal.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/resize-horisontal.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/resize-horisontal.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/resize-horisontal.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/run-to-buffer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/run-to-buffer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/run-to-buffer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/run-to-buffer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-log-out.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-log-out.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-log-out.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-log-out.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-search.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-search.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-search.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/system-search.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-fullscreen.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-fullscreen.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-fullscreen.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-fullscreen.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-refresh.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-refresh.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-refresh.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/view-refresh.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-new.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-new.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-new.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-new.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-horizontal.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-horizontal.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-horizontal.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-horizontal.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-vertical.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-vertical.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-vertical.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-split-vertical.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-unsplit.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-unsplit.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-unsplit.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/window-unsplit.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-in.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-in.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-in.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-in.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-out.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-out.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-out.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/actions/zoom-out.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/animations/process-working.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/animations/process-working.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/animations/process-working.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/animations/process-working.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/help-browser.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/help-browser.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/help-browser.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/help-browser.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/internet-web-browser.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/internet-web-browser.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/internet-web-browser.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/internet-web-browser.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-file-manager.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-file-manager.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-file-manager.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-file-manager.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-installer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-installer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-installer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/system-installer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/utilities-terminal.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/utilities-terminal.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/utilities-terminal.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/apps/utilities-terminal.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/applications-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/applications-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/applications-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/applications-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-desktop.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-desktop.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-desktop.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-desktop.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/categories/preferences-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/drive-harddisk.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/drive-harddisk.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/drive-harddisk.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/drive-harddisk.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/media-floppy.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/media-floppy.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/media-floppy.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/media-floppy.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/printer.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/printer.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/printer.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/devices/printer.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-important.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-important.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-important.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-important.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-readonly.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-readonly.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-readonly.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-readonly.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-symbolic-link.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-symbolic-link.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-symbolic-link.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-symbolic-link.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-system.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-system.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-system.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-system.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-unreadable.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-unreadable.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-unreadable.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/emblems/emblem-unreadable.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/image-x-generic.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/image-x-generic.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/image-x-generic.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/image-x-generic.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-html.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-html.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-html.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-html.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic-template.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic-template.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic-template.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic-template.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-generic.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-script.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-script.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-script.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/mimetypes/text-x-script.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder-saved-search.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder-saved-search.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder-saved-search.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder-saved-search.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/folder.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/plugins.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/plugins.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/plugins.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/plugins.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/user-home.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/user-home.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/user-home.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/places/user-home.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-error.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-error.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-error.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-error.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-information.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-information.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-information.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-information.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-warning.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-warning.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-warning.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/dialog-warning.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-drag-accept.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-drag-accept.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-drag-accept.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-drag-accept.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-open.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-open.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-open.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-open.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-visiting.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-visiting.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-visiting.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/folder-visiting.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-loading.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-loading.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-loading.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-loading.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-missing.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-missing.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-missing.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/22x22/status/image-missing.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/32x32/apps/jedit.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/32x32/apps/jedit.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/32x32/apps/jedit.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/32x32/apps/jedit.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/Blank24.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/Blank24.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/Blank24.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/Blank24.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/ToolbarMenu.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/ToolbarMenu.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/ToolbarMenu.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/ToolbarMenu.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/about.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/about.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/about.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/about.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-asc.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-asc.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-asc.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-asc.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-desc.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-desc.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-desc.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/arrow-desc.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout1.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout1.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout1.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout1.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout2.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout2.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout2.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout2.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout3.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout3.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout3.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout3.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout4.png b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout4.png similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout4.png rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/dock_layout4.png diff --git a/testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/loader.gif b/external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/loader.gif similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/icons/themes/tango/loader.gif rename to external-tests/jEdit/org/gjt/sp/jedit/icons/themes/tango/loader.gif diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/BracketIndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/BracketIndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/BracketIndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/BracketIndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/CloseBracketIndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/CloseBracketIndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/CloseBracketIndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/CloseBracketIndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/DeepIndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/DeepIndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/DeepIndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/DeepIndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/IndentAction.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/IndentAction.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/IndentAction.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/IndentAction.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/IndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/IndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/IndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/IndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/IndentRuleFactory.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/IndentRuleFactory.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/IndentRuleFactory.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/IndentRuleFactory.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/OpenBracketIndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/OpenBracketIndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/OpenBracketIndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/OpenBracketIndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/RegexpIndentRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/RegexpIndentRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/RegexpIndentRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/RegexpIndentRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/WhitespaceRule.java b/external-tests/jEdit/org/gjt/sp/jedit/indent/WhitespaceRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/WhitespaceRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/indent/WhitespaceRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/indent/package.html b/external-tests/jEdit/org/gjt/sp/jedit/indent/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/indent/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/indent/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/input/AbstractInputHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/input/AbstractInputHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/input/AbstractInputHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/input/AbstractInputHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/input/DefaultInputHandlerProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/input/InputHandlerProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/input/InputHandlerProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/input/InputHandlerProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/input/InputHandlerProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/input/TextAreaInputHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/input/TextAreaInputHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/input/TextAreaInputHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/input/TextAreaInputHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/input/package.html b/external-tests/jEdit/org/gjt/sp/jedit/input/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/input/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/input/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/io/AutoDetection.java b/external-tests/jEdit/org/gjt/sp/jedit/io/AutoDetection.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/AutoDetection.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/AutoDetection.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/CharsetEncoding.java b/external-tests/jEdit/org/gjt/sp/jedit/io/CharsetEncoding.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/CharsetEncoding.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/CharsetEncoding.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/CopyFileWorker.java b/external-tests/jEdit/org/gjt/sp/jedit/io/CopyFileWorker.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/CopyFileWorker.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/CopyFileWorker.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/Encoding.java b/external-tests/jEdit/org/gjt/sp/jedit/io/Encoding.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/Encoding.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/Encoding.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/EncodingDetector.java b/external-tests/jEdit/org/gjt/sp/jedit/io/EncodingDetector.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/EncodingDetector.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/EncodingDetector.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/EncodingServer.java b/external-tests/jEdit/org/gjt/sp/jedit/io/EncodingServer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/EncodingServer.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/EncodingServer.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/EncodingWithBOM.java b/external-tests/jEdit/org/gjt/sp/jedit/io/EncodingWithBOM.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/EncodingWithBOM.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/EncodingWithBOM.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/FavoritesVFS.java b/external-tests/jEdit/org/gjt/sp/jedit/io/FavoritesVFS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/FavoritesVFS.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/FavoritesVFS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/FileRootsVFS.java b/external-tests/jEdit/org/gjt/sp/jedit/io/FileRootsVFS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/FileRootsVFS.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/FileRootsVFS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/FileVFS.java b/external-tests/jEdit/org/gjt/sp/jedit/io/FileVFS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/FileVFS.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/FileVFS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/GlobVFSFileFilter.java b/external-tests/jEdit/org/gjt/sp/jedit/io/GlobVFSFileFilter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/GlobVFSFileFilter.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/GlobVFSFileFilter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/LocalFileSaveTask.java b/external-tests/jEdit/org/gjt/sp/jedit/io/LocalFileSaveTask.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/LocalFileSaveTask.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/LocalFileSaveTask.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/RegexEncodingDetector.java b/external-tests/jEdit/org/gjt/sp/jedit/io/RegexEncodingDetector.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/RegexEncodingDetector.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/RegexEncodingDetector.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/UrlVFS.java b/external-tests/jEdit/org/gjt/sp/jedit/io/UrlVFS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/UrlVFS.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/UrlVFS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/VFS.java b/external-tests/jEdit/org/gjt/sp/jedit/io/VFS.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/VFS.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/VFS.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/VFSFile.java b/external-tests/jEdit/org/gjt/sp/jedit/io/VFSFile.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/VFSFile.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/VFSFile.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/VFSFileFilter.java b/external-tests/jEdit/org/gjt/sp/jedit/io/VFSFileFilter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/VFSFileFilter.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/VFSFileFilter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/VFSManager.java b/external-tests/jEdit/org/gjt/sp/jedit/io/VFSManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/VFSManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/VFSManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/XMLEncodingDetector.java b/external-tests/jEdit/org/gjt/sp/jedit/io/XMLEncodingDetector.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/XMLEncodingDetector.java rename to external-tests/jEdit/org/gjt/sp/jedit/io/XMLEncodingDetector.java diff --git a/testes/jEdit/org/gjt/sp/jedit/io/package.html b/external-tests/jEdit/org/gjt/sp/jedit/io/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/io/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/io/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/jEdit.java b/external-tests/jEdit/org/gjt/sp/jedit/jEdit.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/jEdit.java rename to external-tests/jEdit/org/gjt/sp/jedit/jEdit.java diff --git a/testes/jEdit/org/gjt/sp/jedit/jedit.manifest b/external-tests/jEdit/org/gjt/sp/jedit/jedit.manifest similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/jedit.manifest rename to external-tests/jEdit/org/gjt/sp/jedit/jedit.manifest diff --git a/testes/jEdit/org/gjt/sp/jedit/jedit.props b/external-tests/jEdit/org/gjt/sp/jedit/jedit.props similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/jedit.props rename to external-tests/jEdit/org/gjt/sp/jedit/jedit.props diff --git a/testes/jEdit/org/gjt/sp/jedit/jedit_gui.props b/external-tests/jEdit/org/gjt/sp/jedit/jedit_gui.props similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/jedit_gui.props rename to external-tests/jEdit/org/gjt/sp/jedit/jedit_gui.props diff --git a/testes/jEdit/org/gjt/sp/jedit/killring.dtd b/external-tests/jEdit/org/gjt/sp/jedit/killring.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/killring.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/killring.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/DirectoryProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/DirectoryProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/DirectoryProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/DirectoryProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/DynamicMenuProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/DynamicMenuProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/DynamicMenuProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/DynamicMenuProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/EnhancedCheckBoxMenuItem.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedCheckBoxMenuItem.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/EnhancedCheckBoxMenuItem.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedCheckBoxMenuItem.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/EnhancedMenu.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedMenu.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/EnhancedMenu.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedMenu.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/EnhancedMenuItem.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedMenuItem.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/EnhancedMenuItem.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/EnhancedMenuItem.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/FavoritesProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/FavoritesProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/FavoritesProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/FavoritesProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/MacrosProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/MacrosProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/MacrosProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/MacrosProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/MarkersProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/MarkersProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/MarkersProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/MarkersProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/MenuItemTextComparator.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/MenuItemTextComparator.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/MenuItemTextComparator.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/MenuItemTextComparator.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/PluginsProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/PluginsProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/PluginsProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/PluginsProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/RecentDirectoriesProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/RecentDirectoriesProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/RecentDirectoriesProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/RecentDirectoriesProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/RecentFilesProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/RecentFilesProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/RecentFilesProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/RecentFilesProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/ReloadWithEncodingProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/menu/ReloadWithEncodingProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/ReloadWithEncodingProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/menu/ReloadWithEncodingProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/menu/package.html b/external-tests/jEdit/org/gjt/sp/jedit/menu/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/menu/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/menu/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/BufferChanging.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/BufferChanging.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/BufferChanging.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/BufferChanging.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/BufferUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/BufferUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/BufferUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/BufferUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/DockableWindowUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/DockableWindowUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/DockableWindowUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/DockableWindowUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/DynamicMenuChanged.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/DynamicMenuChanged.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/DynamicMenuChanged.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/DynamicMenuChanged.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/EditPaneUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/EditPaneUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/EditPaneUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/EditPaneUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/EditorExitRequested.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/EditorExitRequested.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/EditorExitRequested.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/EditorExitRequested.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/EditorExiting.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/EditorExiting.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/EditorExiting.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/EditorExiting.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/EditorStarted.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/EditorStarted.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/EditorStarted.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/EditorStarted.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/PluginUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/PluginUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/PluginUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/PluginUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/PositionChanging.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/PositionChanging.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/PositionChanging.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/PositionChanging.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/PropertiesChanged.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/PropertiesChanged.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/PropertiesChanged.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/PropertiesChanged.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/PropertiesChanging.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/PropertiesChanging.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/PropertiesChanging.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/PropertiesChanging.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/RegisterChanged.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/RegisterChanged.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/RegisterChanged.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/RegisterChanged.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/SearchSettingsChanged.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/SearchSettingsChanged.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/SearchSettingsChanged.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/SearchSettingsChanged.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/VFSPathSelected.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/VFSPathSelected.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/VFSPathSelected.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/VFSPathSelected.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/VFSUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/ViewUpdate.java b/external-tests/jEdit/org/gjt/sp/jedit/msg/ViewUpdate.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/ViewUpdate.java rename to external-tests/jEdit/org/gjt/sp/jedit/msg/ViewUpdate.java diff --git a/testes/jEdit/org/gjt/sp/jedit/msg/package.html b/external-tests/jEdit/org/gjt/sp/jedit/msg/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/msg/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/msg/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/options/AbbrevsOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/AbbrevsOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/AbbrevsOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/AbbrevsOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/AppearanceOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/AppearanceOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/AppearanceOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/AppearanceOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/BrowserColorsOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/BrowserColorsOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/BrowserColorsOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/BrowserColorsOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/BrowserContextOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/BrowserContextOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/BrowserContextOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/BrowserContextOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/BrowserOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/BrowserOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/BrowserOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/BrowserOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/BufferOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/BufferOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/BufferOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/BufferOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/ContextOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/ContextOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/ContextOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/ContextOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/DockingOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/DockingOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/DockingOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/DockingOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/EditingOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/EditingOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/EditingOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/EditingOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/EncodingsOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/EncodingsOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/EncodingsOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/EncodingsOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/FirewallOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/FirewallOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/FirewallOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/FirewallOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/GeneralOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/GeneralOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/GeneralOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/GeneralOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/GlobalOptions.java b/external-tests/jEdit/org/gjt/sp/jedit/options/GlobalOptions.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/GlobalOptions.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/GlobalOptions.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/GutterOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/GutterOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/GutterOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/GutterOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/IconTheme.java b/external-tests/jEdit/org/gjt/sp/jedit/options/IconTheme.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/IconTheme.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/IconTheme.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/IntegerInputVerifier.java b/external-tests/jEdit/org/gjt/sp/jedit/options/IntegerInputVerifier.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/IntegerInputVerifier.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/IntegerInputVerifier.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/LargeFilesOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/LargeFilesOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/LargeFilesOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/LargeFilesOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/MouseOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/MouseOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/MouseOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/MouseOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/PluginManagerOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/PluginManagerOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/PluginManagerOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/PluginManagerOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/PluginOptions.java b/external-tests/jEdit/org/gjt/sp/jedit/options/PluginOptions.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/PluginOptions.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/PluginOptions.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/PrintOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/PrintOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/PrintOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/PrintOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/SaveBackupOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/SaveBackupOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/SaveBackupOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/SaveBackupOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/ShortcutsOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/ShortcutsOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/ShortcutsOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/ShortcutsOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/StatusBarOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/StatusBarOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/StatusBarOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/StatusBarOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/SyntaxHiliteOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/SyntaxHiliteOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/SyntaxHiliteOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/SyntaxHiliteOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/TextAreaOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/TextAreaOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/TextAreaOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/TextAreaOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/ToolBarOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/ToolBarOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/ToolBarOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/ToolBarOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/ViewOptionPane.java b/external-tests/jEdit/org/gjt/sp/jedit/options/ViewOptionPane.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/ViewOptionPane.java rename to external-tests/jEdit/org/gjt/sp/jedit/options/ViewOptionPane.java diff --git a/testes/jEdit/org/gjt/sp/jedit/options/mirrors.dtd b/external-tests/jEdit/org/gjt/sp/jedit/options/mirrors.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/mirrors.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/options/mirrors.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/options/package.html b/external-tests/jEdit/org/gjt/sp/jedit/options/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/options/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/options/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/package.html b/external-tests/jEdit/org/gjt/sp/jedit/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/perspective.dtd b/external-tests/jEdit/org/gjt/sp/jedit/perspective.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/perspective.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/perspective.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/InstallPanel.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/InstallPanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/InstallPanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/InstallPanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/KeyboardCommand.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/KeyboardCommand.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/KeyboardCommand.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/KeyboardCommand.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/ManagePanel.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/ManagePanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/ManagePanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/ManagePanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorList.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorList.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorList.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorListHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorListHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorListHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/MirrorListHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginDetailPanel.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginDetailPanel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginDetailPanel.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginDetailPanel.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginList.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginList.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginList.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginListHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginListHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginListHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginListHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManager.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManagerProgress.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManagerProgress.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManagerProgress.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/PluginManagerProgress.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/Roster.java b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/Roster.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/Roster.java rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/Roster.java diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/package.html b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/pluginmgr/plugins.dtd b/external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/plugins.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/pluginmgr/plugins.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/pluginmgr/plugins.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/print/BufferPrintable.java b/external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrintable.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/print/BufferPrintable.java rename to external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrintable.java diff --git a/testes/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_3.java b/external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_3.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_3.java rename to external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_3.java diff --git a/testes/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_4.java b/external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_4.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_4.java rename to external-tests/jEdit/org/gjt/sp/jedit/print/BufferPrinter1_4.java diff --git a/testes/jEdit/org/gjt/sp/jedit/print/package.html b/external-tests/jEdit/org/gjt/sp/jedit/print/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/print/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/print/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/Handler.java b/external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/Handler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/Handler.java rename to external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/Handler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/PluginResURLConnection.java b/external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/PluginResURLConnection.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/PluginResURLConnection.java rename to external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/PluginResURLConnection.java diff --git a/testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/package.html b/external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/proto/jeditresource/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/proto/jeditresource/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/recent.dtd b/external-tests/jEdit/org/gjt/sp/jedit/recent.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/recent.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/recent.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/registers.dtd b/external-tests/jEdit/org/gjt/sp/jedit/registers.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/registers.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/registers.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/search/AllBufferSet.java b/external-tests/jEdit/org/gjt/sp/jedit/search/AllBufferSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/AllBufferSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/AllBufferSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/BoyerMooreSearchMatcher.java b/external-tests/jEdit/org/gjt/sp/jedit/search/BoyerMooreSearchMatcher.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/BoyerMooreSearchMatcher.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/BoyerMooreSearchMatcher.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/BufferListSet.java b/external-tests/jEdit/org/gjt/sp/jedit/search/BufferListSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/BufferListSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/BufferListSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/CurrentBufferSet.java b/external-tests/jEdit/org/gjt/sp/jedit/search/CurrentBufferSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/CurrentBufferSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/CurrentBufferSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/DirectoryListSet.java b/external-tests/jEdit/org/gjt/sp/jedit/search/DirectoryListSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/DirectoryListSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/DirectoryListSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchFileNode.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchFileNode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchFileNode.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchFileNode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchFolderNode.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchFolderNode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchFolderNode.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchFolderNode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchNode.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchNode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchNode.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchNode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchOperationNode.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchOperationNode.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchOperationNode.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchOperationNode.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchRequest.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchRequest.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchRequest.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchRequest.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchResult.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchResult.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchResult.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchResult.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchResults.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchResults.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchResults.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchResults.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/HyperSearchTreeNodeCallback.java b/external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchTreeNodeCallback.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/HyperSearchTreeNodeCallback.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/HyperSearchTreeNodeCallback.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/PatternSearchMatcher.java b/external-tests/jEdit/org/gjt/sp/jedit/search/PatternSearchMatcher.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/PatternSearchMatcher.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/PatternSearchMatcher.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/SearchAndReplace.java b/external-tests/jEdit/org/gjt/sp/jedit/search/SearchAndReplace.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/SearchAndReplace.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/SearchAndReplace.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/SearchBar.java b/external-tests/jEdit/org/gjt/sp/jedit/search/SearchBar.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/SearchBar.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/SearchBar.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/SearchDialog.java b/external-tests/jEdit/org/gjt/sp/jedit/search/SearchDialog.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/SearchDialog.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/SearchDialog.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/SearchFileSet.java b/external-tests/jEdit/org/gjt/sp/jedit/search/SearchFileSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/SearchFileSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/SearchFileSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/SearchMatcher.java b/external-tests/jEdit/org/gjt/sp/jedit/search/SearchMatcher.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/SearchMatcher.java rename to external-tests/jEdit/org/gjt/sp/jedit/search/SearchMatcher.java diff --git a/testes/jEdit/org/gjt/sp/jedit/search/package.html b/external-tests/jEdit/org/gjt/sp/jedit/search/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/search/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/search/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/services.dtd b/external-tests/jEdit/org/gjt/sp/jedit/services.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/services.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/services.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/services.xml b/external-tests/jEdit/org/gjt/sp/jedit/services.xml similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/services.xml rename to external-tests/jEdit/org/gjt/sp/jedit/services.xml diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/Chunk.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/Chunk.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/Chunk.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/Chunk.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/DefaultTokenHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/DefaultTokenHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/DefaultTokenHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/DefaultTokenHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/DisplayTokenHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/DisplayTokenHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/DisplayTokenHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/DisplayTokenHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/DummyTokenHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/DummyTokenHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/DummyTokenHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/DummyTokenHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/KeywordMap.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/KeywordMap.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/KeywordMap.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/KeywordMap.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/ModeProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/ModeProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/ModeProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/ModeProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/ParserRule.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/ParserRule.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/ParserRule.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/ParserRule.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/ParserRuleSet.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/ParserRuleSet.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/ParserRuleSet.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/ParserRuleSet.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/SyntaxStyle.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/SyntaxStyle.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/SyntaxStyle.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/SyntaxStyle.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/SyntaxUtilities.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/SyntaxUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/SyntaxUtilities.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/SyntaxUtilities.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/Token.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/Token.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/Token.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/Token.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/TokenHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/TokenHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/TokenHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/TokenHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/TokenMarker.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/TokenMarker.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/TokenMarker.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/TokenMarker.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/XModeHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/syntax/XModeHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/XModeHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/XModeHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/package.html b/external-tests/jEdit/org/gjt/sp/jedit/syntax/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/syntax/xmode.dtd b/external-tests/jEdit/org/gjt/sp/jedit/syntax/xmode.dtd similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/syntax/xmode.dtd rename to external-tests/jEdit/org/gjt/sp/jedit/syntax/xmode.dtd diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/Anchor.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/Anchor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/Anchor.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/Anchor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/AntiAlias.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/AntiAlias.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/AntiAlias.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/AntiAlias.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/BufferHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/BufferHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/BufferHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/BufferHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ChunkCache.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ChunkCache.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ChunkCache.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ChunkCache.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/CircleFoldPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/CircleFoldPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/CircleFoldPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/CircleFoldPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ColumnBlock.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ColumnBlock.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ColumnBlock.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ColumnBlock.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ColumnBlockLine.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ColumnBlockLine.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ColumnBlockLine.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ColumnBlockLine.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/DisplayManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ElasticTabStopBufferListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ElasticTabstopsTabExpander.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ExtensionManager.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ExtensionManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ExtensionManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ExtensionManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/FirstLine.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/FirstLine.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/FirstLine.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/FirstLine.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/FoldPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/FoldPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/FoldPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/FoldPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/Gutter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/Gutter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/Gutter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/Gutter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/GutterPopupHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/GutterPopupHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/GutterPopupHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/GutterPopupHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/InputMethodSupport.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/InputMethodSupport.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/InputMethodSupport.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/InputMethodSupport.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/JEditEmbeddedTextArea.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/JEditEmbeddedTextArea.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/JEditEmbeddedTextArea.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/JEditEmbeddedTextArea.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/JEditTextArea.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/JEditTextArea.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/JEditTextArea.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/JEditTextArea.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/MouseActions.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseActions.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/MouseActions.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseActions.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/MouseActionsProvider.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseActionsProvider.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/MouseActionsProvider.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseActionsProvider.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/MouseHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/MouseHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/MouseHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/Node.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/Node.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/Node.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/Node.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/RangeMap.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/RangeMap.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/RangeMap.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/RangeMap.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ScreenLineManager.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ScreenLineManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ScreenLineManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ScreenLineManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ScrollLayout.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollLayout.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ScrollLayout.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollLayout.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ScrollLineCount.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollLineCount.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ScrollLineCount.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollLineCount.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ScrollListener.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ScrollListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ScrollListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/Selection.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/Selection.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/Selection.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/Selection.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/SelectionManager.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/SelectionManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/SelectionManager.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/SelectionManager.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/ShapedFoldPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/ShapedFoldPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/ShapedFoldPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/ShapedFoldPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/SquareFoldPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/SquareFoldPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/SquareFoldPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/SquareFoldPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/StandaloneTextArea.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/StandaloneTextArea.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/StandaloneTextArea.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/StandaloneTextArea.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/StatusListener.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/StatusListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/StatusListener.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/StatusListener.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/StructureMatcher.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/StructureMatcher.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/StructureMatcher.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/StructureMatcher.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextArea.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextArea.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextArea.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextArea.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaBorder.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaBorder.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaBorder.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaBorder.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaDropHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaDropHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaDropHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaDropHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaException.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaException.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaException.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaException.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaExtension.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaExtension.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaExtension.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaExtension.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaMouseHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaTransferHandler.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaTransferHandler.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TextAreaTransferHandler.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TextAreaTransferHandler.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/TriangleFoldPainter.java b/external-tests/jEdit/org/gjt/sp/jedit/textarea/TriangleFoldPainter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/TriangleFoldPainter.java rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/TriangleFoldPainter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/package.html b/external-tests/jEdit/org/gjt/sp/jedit/textarea/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/package.html diff --git a/testes/jEdit/org/gjt/sp/jedit/textarea/textarea.actions.xml b/external-tests/jEdit/org/gjt/sp/jedit/textarea/textarea.actions.xml similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/textarea/textarea.actions.xml rename to external-tests/jEdit/org/gjt/sp/jedit/textarea/textarea.actions.xml diff --git a/testes/jEdit/org/gjt/sp/jedit/visitors/JEditVisitor.java b/external-tests/jEdit/org/gjt/sp/jedit/visitors/JEditVisitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/visitors/JEditVisitor.java rename to external-tests/jEdit/org/gjt/sp/jedit/visitors/JEditVisitor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/visitors/JEditVisitorAdapter.java b/external-tests/jEdit/org/gjt/sp/jedit/visitors/JEditVisitorAdapter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/visitors/JEditVisitorAdapter.java rename to external-tests/jEdit/org/gjt/sp/jedit/visitors/JEditVisitorAdapter.java diff --git a/testes/jEdit/org/gjt/sp/jedit/visitors/SaveCaretInfoVisitor.java b/external-tests/jEdit/org/gjt/sp/jedit/visitors/SaveCaretInfoVisitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/visitors/SaveCaretInfoVisitor.java rename to external-tests/jEdit/org/gjt/sp/jedit/visitors/SaveCaretInfoVisitor.java diff --git a/testes/jEdit/org/gjt/sp/jedit/visitors/package.html b/external-tests/jEdit/org/gjt/sp/jedit/visitors/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/jedit/visitors/package.html rename to external-tests/jEdit/org/gjt/sp/jedit/visitors/package.html diff --git a/testes/jEdit/org/gjt/sp/util/AwtRunnableQueue.java b/external-tests/jEdit/org/gjt/sp/util/AwtRunnableQueue.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/AwtRunnableQueue.java rename to external-tests/jEdit/org/gjt/sp/util/AwtRunnableQueue.java diff --git a/testes/jEdit/org/gjt/sp/util/EnhancedTreeCellRenderer.java b/external-tests/jEdit/org/gjt/sp/util/EnhancedTreeCellRenderer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/EnhancedTreeCellRenderer.java rename to external-tests/jEdit/org/gjt/sp/util/EnhancedTreeCellRenderer.java diff --git a/testes/jEdit/org/gjt/sp/util/HtmlUtilities.java b/external-tests/jEdit/org/gjt/sp/util/HtmlUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/HtmlUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/HtmlUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/IOUtilities.java b/external-tests/jEdit/org/gjt/sp/util/IOUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/IOUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/IOUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/IntegerArray.java b/external-tests/jEdit/org/gjt/sp/util/IntegerArray.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/IntegerArray.java rename to external-tests/jEdit/org/gjt/sp/util/IntegerArray.java diff --git a/testes/jEdit/org/gjt/sp/util/Log.java b/external-tests/jEdit/org/gjt/sp/util/Log.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/Log.java rename to external-tests/jEdit/org/gjt/sp/util/Log.java diff --git a/testes/jEdit/org/gjt/sp/util/ProgressObserver.java b/external-tests/jEdit/org/gjt/sp/util/ProgressObserver.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/ProgressObserver.java rename to external-tests/jEdit/org/gjt/sp/util/ProgressObserver.java diff --git a/testes/jEdit/org/gjt/sp/util/PropertiesBean.java b/external-tests/jEdit/org/gjt/sp/util/PropertiesBean.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/PropertiesBean.java rename to external-tests/jEdit/org/gjt/sp/util/PropertiesBean.java diff --git a/testes/jEdit/org/gjt/sp/util/ReverseCharSequence.java b/external-tests/jEdit/org/gjt/sp/util/ReverseCharSequence.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/ReverseCharSequence.java rename to external-tests/jEdit/org/gjt/sp/util/ReverseCharSequence.java diff --git a/testes/jEdit/org/gjt/sp/util/SegmentBuffer.java b/external-tests/jEdit/org/gjt/sp/util/SegmentBuffer.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/SegmentBuffer.java rename to external-tests/jEdit/org/gjt/sp/util/SegmentBuffer.java diff --git a/testes/jEdit/org/gjt/sp/util/SegmentCharSequence.java b/external-tests/jEdit/org/gjt/sp/util/SegmentCharSequence.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/SegmentCharSequence.java rename to external-tests/jEdit/org/gjt/sp/util/SegmentCharSequence.java diff --git a/testes/jEdit/org/gjt/sp/util/StandardUtilities.java b/external-tests/jEdit/org/gjt/sp/util/StandardUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/StandardUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/StandardUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/StringList.java b/external-tests/jEdit/org/gjt/sp/util/StringList.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/StringList.java rename to external-tests/jEdit/org/gjt/sp/util/StringList.java diff --git a/testes/jEdit/org/gjt/sp/util/StringModel.java b/external-tests/jEdit/org/gjt/sp/util/StringModel.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/StringModel.java rename to external-tests/jEdit/org/gjt/sp/util/StringModel.java diff --git a/testes/jEdit/org/gjt/sp/util/SyntaxUtilities.java b/external-tests/jEdit/org/gjt/sp/util/SyntaxUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/SyntaxUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/SyntaxUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/Task.java b/external-tests/jEdit/org/gjt/sp/util/Task.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/Task.java rename to external-tests/jEdit/org/gjt/sp/util/Task.java diff --git a/testes/jEdit/org/gjt/sp/util/TaskAdapter.java b/external-tests/jEdit/org/gjt/sp/util/TaskAdapter.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/TaskAdapter.java rename to external-tests/jEdit/org/gjt/sp/util/TaskAdapter.java diff --git a/testes/jEdit/org/gjt/sp/util/TaskListener.java b/external-tests/jEdit/org/gjt/sp/util/TaskListener.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/TaskListener.java rename to external-tests/jEdit/org/gjt/sp/util/TaskListener.java diff --git a/testes/jEdit/org/gjt/sp/util/TaskManager.java b/external-tests/jEdit/org/gjt/sp/util/TaskManager.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/TaskManager.java rename to external-tests/jEdit/org/gjt/sp/util/TaskManager.java diff --git a/testes/jEdit/org/gjt/sp/util/ThreadAbortMonitor.java b/external-tests/jEdit/org/gjt/sp/util/ThreadAbortMonitor.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/ThreadAbortMonitor.java rename to external-tests/jEdit/org/gjt/sp/util/ThreadAbortMonitor.java diff --git a/testes/jEdit/org/gjt/sp/util/ThreadUtilities.java b/external-tests/jEdit/org/gjt/sp/util/ThreadUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/ThreadUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/ThreadUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/XMLUtilities.java b/external-tests/jEdit/org/gjt/sp/util/XMLUtilities.java similarity index 100% rename from testes/jEdit/org/gjt/sp/util/XMLUtilities.java rename to external-tests/jEdit/org/gjt/sp/util/XMLUtilities.java diff --git a/testes/jEdit/org/gjt/sp/util/package.html b/external-tests/jEdit/org/gjt/sp/util/package.html similarity index 100% rename from testes/jEdit/org/gjt/sp/util/package.html rename to external-tests/jEdit/org/gjt/sp/util/package.html diff --git a/testes/jEdit/org/jedit/core/FileOpenerService.java b/external-tests/jEdit/org/jedit/core/FileOpenerService.java similarity index 100% rename from testes/jEdit/org/jedit/core/FileOpenerService.java rename to external-tests/jEdit/org/jedit/core/FileOpenerService.java diff --git a/testes/jEdit/org/jedit/core/MigrationService.java b/external-tests/jEdit/org/jedit/core/MigrationService.java similarity index 100% rename from testes/jEdit/org/jedit/core/MigrationService.java rename to external-tests/jEdit/org/jedit/core/MigrationService.java diff --git a/testes/jEdit/org/jedit/core/package.html b/external-tests/jEdit/org/jedit/core/package.html similarity index 100% rename from testes/jEdit/org/jedit/core/package.html rename to external-tests/jEdit/org/jedit/core/package.html diff --git a/testes/jEdit/org/jedit/io/Native2ASCIIEncoding.java b/external-tests/jEdit/org/jedit/io/Native2ASCIIEncoding.java similarity index 100% rename from testes/jEdit/org/jedit/io/Native2ASCIIEncoding.java rename to external-tests/jEdit/org/jedit/io/Native2ASCIIEncoding.java diff --git a/testes/jEdit/org/jedit/keymap/EmacsUtil.java b/external-tests/jEdit/org/jedit/keymap/EmacsUtil.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/EmacsUtil.java rename to external-tests/jEdit/org/jedit/keymap/EmacsUtil.java diff --git a/testes/jEdit/org/jedit/keymap/Keymap.java b/external-tests/jEdit/org/jedit/keymap/Keymap.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/Keymap.java rename to external-tests/jEdit/org/jedit/keymap/Keymap.java diff --git a/testes/jEdit/org/jedit/keymap/KeymapFileFilter.java b/external-tests/jEdit/org/jedit/keymap/KeymapFileFilter.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/KeymapFileFilter.java rename to external-tests/jEdit/org/jedit/keymap/KeymapFileFilter.java diff --git a/testes/jEdit/org/jedit/keymap/KeymapImpl.java b/external-tests/jEdit/org/jedit/keymap/KeymapImpl.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/KeymapImpl.java rename to external-tests/jEdit/org/jedit/keymap/KeymapImpl.java diff --git a/testes/jEdit/org/jedit/keymap/KeymapManager.java b/external-tests/jEdit/org/jedit/keymap/KeymapManager.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/KeymapManager.java rename to external-tests/jEdit/org/jedit/keymap/KeymapManager.java diff --git a/testes/jEdit/org/jedit/keymap/KeymapManagerImpl.java b/external-tests/jEdit/org/jedit/keymap/KeymapManagerImpl.java similarity index 100% rename from testes/jEdit/org/jedit/keymap/KeymapManagerImpl.java rename to external-tests/jEdit/org/jedit/keymap/KeymapManagerImpl.java diff --git a/testes/jEdit/org/jedit/keymap/package.html b/external-tests/jEdit/org/jedit/keymap/package.html similarity index 100% rename from testes/jEdit/org/jedit/keymap/package.html rename to external-tests/jEdit/org/jedit/keymap/package.html diff --git a/testes/jEdit/org/jedit/localization/jedit_cs.props b/external-tests/jEdit/org/jedit/localization/jedit_cs.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_cs.props rename to external-tests/jEdit/org/jedit/localization/jedit_cs.props diff --git a/testes/jEdit/org/jedit/localization/jedit_de.props b/external-tests/jEdit/org/jedit/localization/jedit_de.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_de.props rename to external-tests/jEdit/org/jedit/localization/jedit_de.props diff --git a/testes/jEdit/org/jedit/localization/jedit_en.props b/external-tests/jEdit/org/jedit/localization/jedit_en.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_en.props rename to external-tests/jEdit/org/jedit/localization/jedit_en.props diff --git a/testes/jEdit/org/jedit/localization/jedit_fr.props b/external-tests/jEdit/org/jedit/localization/jedit_fr.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_fr.props rename to external-tests/jEdit/org/jedit/localization/jedit_fr.props diff --git a/testes/jEdit/org/jedit/localization/jedit_ja.props b/external-tests/jEdit/org/jedit/localization/jedit_ja.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_ja.props rename to external-tests/jEdit/org/jedit/localization/jedit_ja.props diff --git a/testes/jEdit/org/jedit/localization/jedit_ko.props b/external-tests/jEdit/org/jedit/localization/jedit_ko.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_ko.props rename to external-tests/jEdit/org/jedit/localization/jedit_ko.props diff --git a/testes/jEdit/org/jedit/localization/jedit_ru.props b/external-tests/jEdit/org/jedit/localization/jedit_ru.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_ru.props rename to external-tests/jEdit/org/jedit/localization/jedit_ru.props diff --git a/testes/jEdit/org/jedit/localization/jedit_zh.props b/external-tests/jEdit/org/jedit/localization/jedit_zh.props similarity index 100% rename from testes/jEdit/org/jedit/localization/jedit_zh.props rename to external-tests/jEdit/org/jedit/localization/jedit_zh.props diff --git a/testes/jEdit/org/jedit/localization/package.html b/external-tests/jEdit/org/jedit/localization/package.html similarity index 100% rename from testes/jEdit/org/jedit/localization/package.html rename to external-tests/jEdit/org/jedit/localization/package.html diff --git a/testes/jEdit/org/jedit/migration/CheckFileStatus.java b/external-tests/jEdit/org/jedit/migration/CheckFileStatus.java similarity index 100% rename from testes/jEdit/org/jedit/migration/CheckFileStatus.java rename to external-tests/jEdit/org/jedit/migration/CheckFileStatus.java diff --git a/testes/jEdit/org/jedit/migration/KeymapMigration.java b/external-tests/jEdit/org/jedit/migration/KeymapMigration.java similarity index 100% rename from testes/jEdit/org/jedit/migration/KeymapMigration.java rename to external-tests/jEdit/org/jedit/migration/KeymapMigration.java diff --git a/testes/jEdit/org/jedit/migration/OneTimeMigrationService.java b/external-tests/jEdit/org/jedit/migration/OneTimeMigrationService.java similarity index 100% rename from testes/jEdit/org/jedit/migration/OneTimeMigrationService.java rename to external-tests/jEdit/org/jedit/migration/OneTimeMigrationService.java diff --git a/testes/jEdit/org/jedit/migration/package.html b/external-tests/jEdit/org/jedit/migration/package.html similarity index 100% rename from testes/jEdit/org/jedit/migration/package.html rename to external-tests/jEdit/org/jedit/migration/package.html diff --git a/testes/jEdit/org/jedit/options/CombinedOptions.java b/external-tests/jEdit/org/jedit/options/CombinedOptions.java similarity index 100% rename from testes/jEdit/org/jedit/options/CombinedOptions.java rename to external-tests/jEdit/org/jedit/options/CombinedOptions.java diff --git a/testes/jEdit/org/jedit/options/GlobalOptionGroup.java b/external-tests/jEdit/org/jedit/options/GlobalOptionGroup.java similarity index 100% rename from testes/jEdit/org/jedit/options/GlobalOptionGroup.java rename to external-tests/jEdit/org/jedit/options/GlobalOptionGroup.java diff --git a/testes/jEdit/org/jedit/options/OptionGroupPane.java b/external-tests/jEdit/org/jedit/options/OptionGroupPane.java similarity index 100% rename from testes/jEdit/org/jedit/options/OptionGroupPane.java rename to external-tests/jEdit/org/jedit/options/OptionGroupPane.java diff --git a/testes/jEdit/org/jedit/options/PluginOptionGroup.java b/external-tests/jEdit/org/jedit/options/PluginOptionGroup.java similarity index 100% rename from testes/jEdit/org/jedit/options/PluginOptionGroup.java rename to external-tests/jEdit/org/jedit/options/PluginOptionGroup.java diff --git a/testes/jEdit/org/jedit/options/TabbedOptionDialog.java b/external-tests/jEdit/org/jedit/options/TabbedOptionDialog.java similarity index 100% rename from testes/jEdit/org/jedit/options/TabbedOptionDialog.java rename to external-tests/jEdit/org/jedit/options/TabbedOptionDialog.java diff --git a/testes/jEdit/org/jedit/options/package.html b/external-tests/jEdit/org/jedit/options/package.html similarity index 100% rename from testes/jEdit/org/jedit/options/package.html rename to external-tests/jEdit/org/jedit/options/package.html diff --git a/testes/jEdit/org/jedit/package.html b/external-tests/jEdit/org/jedit/package.html similarity index 100% rename from testes/jEdit/org/jedit/package.html rename to external-tests/jEdit/org/jedit/package.html diff --git a/testes/jEdit/package-files/linux/deb/Packages b/external-tests/jEdit/package-files/linux/deb/Packages similarity index 100% rename from testes/jEdit/package-files/linux/deb/Packages rename to external-tests/jEdit/package-files/linux/deb/Packages diff --git a/testes/jEdit/package-files/linux/deb/control b/external-tests/jEdit/package-files/linux/deb/control similarity index 100% rename from testes/jEdit/package-files/linux/deb/control rename to external-tests/jEdit/package-files/linux/deb/control diff --git a/testes/jEdit/package-files/linux/deb/jedit b/external-tests/jEdit/package-files/linux/deb/jedit similarity index 100% rename from testes/jEdit/package-files/linux/deb/jedit rename to external-tests/jEdit/package-files/linux/deb/jedit diff --git a/testes/jEdit/package-files/linux/deb/jedit.desktop b/external-tests/jEdit/package-files/linux/deb/jedit.desktop similarity index 100% rename from testes/jEdit/package-files/linux/deb/jedit.desktop rename to external-tests/jEdit/package-files/linux/deb/jedit.desktop diff --git a/testes/jEdit/package-files/linux/deb/postinst b/external-tests/jEdit/package-files/linux/deb/postinst similarity index 100% rename from testes/jEdit/package-files/linux/deb/postinst rename to external-tests/jEdit/package-files/linux/deb/postinst diff --git a/testes/jEdit/package-files/linux/deb/postrm b/external-tests/jEdit/package-files/linux/deb/postrm similarity index 100% rename from testes/jEdit/package-files/linux/deb/postrm rename to external-tests/jEdit/package-files/linux/deb/postrm diff --git a/testes/jEdit/package-files/linux/jedit b/external-tests/jEdit/package-files/linux/jedit similarity index 100% rename from testes/jEdit/package-files/linux/jedit rename to external-tests/jEdit/package-files/linux/jedit diff --git a/testes/jEdit/package-files/linux/jedit.1 b/external-tests/jEdit/package-files/linux/jedit.1 similarity index 100% rename from testes/jEdit/package-files/linux/jedit.1 rename to external-tests/jEdit/package-files/linux/jedit.1 diff --git a/testes/jEdit/package-files/linux/rpm/jedit.spec b/external-tests/jEdit/package-files/linux/rpm/jedit.spec similarity index 100% rename from testes/jEdit/package-files/linux/rpm/jedit.spec rename to external-tests/jEdit/package-files/linux/rpm/jedit.spec diff --git a/testes/jEdit/package-files/linux/slackware/doinst.sh b/external-tests/jEdit/package-files/linux/slackware/doinst.sh similarity index 100% rename from testes/jEdit/package-files/linux/slackware/doinst.sh rename to external-tests/jEdit/package-files/linux/slackware/doinst.sh diff --git a/testes/jEdit/package-files/linux/slackware/jEdit.desktop b/external-tests/jEdit/package-files/linux/slackware/jEdit.desktop similarity index 100% rename from testes/jEdit/package-files/linux/slackware/jEdit.desktop rename to external-tests/jEdit/package-files/linux/slackware/jEdit.desktop diff --git a/testes/jEdit/package-files/linux/slackware/slack-desc b/external-tests/jEdit/package-files/linux/slackware/slack-desc similarity index 100% rename from testes/jEdit/package-files/linux/slackware/slack-desc rename to external-tests/jEdit/package-files/linux/slackware/slack-desc diff --git a/testes/jEdit/package-files/linux/slackware/slack-required b/external-tests/jEdit/package-files/linux/slackware/slack-required similarity index 100% rename from testes/jEdit/package-files/linux/slackware/slack-required rename to external-tests/jEdit/package-files/linux/slackware/slack-required diff --git a/testes/jEdit/package-files/os2/jedit.cmd b/external-tests/jEdit/package-files/os2/jedit.cmd similarity index 100% rename from testes/jEdit/package-files/os2/jedit.cmd rename to external-tests/jEdit/package-files/os2/jedit.cmd diff --git a/testes/jEdit/package-files/osx/.background/background.png b/external-tests/jEdit/package-files/osx/.background/background.png similarity index 100% rename from testes/jEdit/package-files/osx/.background/background.png rename to external-tests/jEdit/package-files/osx/.background/background.png diff --git a/testes/jEdit/package-files/osx/DS_Store b/external-tests/jEdit/package-files/osx/DS_Store similarity index 100% rename from testes/jEdit/package-files/osx/DS_Store rename to external-tests/jEdit/package-files/osx/DS_Store diff --git a/testes/jEdit/package-files/osx/jedit b/external-tests/jEdit/package-files/osx/jedit similarity index 100% rename from testes/jEdit/package-files/osx/jedit rename to external-tests/jEdit/package-files/osx/jedit diff --git a/testes/jEdit/package-files/windows/jEdit.url b/external-tests/jEdit/package-files/windows/jEdit.url similarity index 100% rename from testes/jEdit/package-files/windows/jEdit.url rename to external-tests/jEdit/package-files/windows/jEdit.url diff --git a/testes/jEdit/package-files/windows/jedit.launch4j.xml b/external-tests/jEdit/package-files/windows/jedit.launch4j.xml similarity index 100% rename from testes/jEdit/package-files/windows/jedit.launch4j.xml rename to external-tests/jEdit/package-files/windows/jedit.launch4j.xml diff --git a/testes/jEdit/package-files/windows/win32installer.iss b/external-tests/jEdit/package-files/windows/win32installer.iss similarity index 100% rename from testes/jEdit/package-files/windows/win32installer.iss rename to external-tests/jEdit/package-files/windows/win32installer.iss diff --git a/testes/jEdit/properties/README.txt b/external-tests/jEdit/properties/README.txt similarity index 100% rename from testes/jEdit/properties/README.txt rename to external-tests/jEdit/properties/README.txt diff --git a/testes/jEdit/startup/README.txt b/external-tests/jEdit/startup/README.txt similarity index 100% rename from testes/jEdit/startup/README.txt rename to external-tests/jEdit/startup/README.txt diff --git a/testes/jEdit/startup/startup.bsh b/external-tests/jEdit/startup/startup.bsh similarity index 100% rename from testes/jEdit/startup/startup.bsh rename to external-tests/jEdit/startup/startup.bsh diff --git a/testes/jEdit/test/org/jedit/io/Native2ASCIIEncodingTest.java b/external-tests/jEdit/test/org/jedit/io/Native2ASCIIEncodingTest.java similarity index 100% rename from testes/jEdit/test/org/jedit/io/Native2ASCIIEncodingTest.java rename to external-tests/jEdit/test/org/jedit/io/Native2ASCIIEncodingTest.java diff --git a/src/Driver.rsc b/src/Driver.rsc index c7be16a..17315ee 100644 --- a/src/Driver.rsc +++ b/src/Driver.rsc @@ -62,15 +62,7 @@ public void refactorProjects(loc input, bool verbose = true) { } /** - * Aplica a transformacao multicatch a todos os arquivos de - * um projeto. Acredito que essa funcao possa ser generalizada, - * uma vez que apenas a linha que chama "refactorMultiCatch" e - * uma que realiza o println precisam ser alteradas para as - * demais transformacoes. Algor para ser investigado posteriormente. - * - * Alem disso, deve ser possivel utilizar um estilo mais funcional - * nessa implementacao. Mas ok, eh a primeira tentativa. Depois - * melhoramos. + * Run the transformations according to a specific pattern. */ public void executeTransformations(list[loc] files, int percent, bool verbose, tuple[int, CompilationUnit](CompilationUnit) transformation, str name) { list[tuple[int, loc, CompilationUnit]] processedFiles = []; diff --git a/src/ParseTreeVisualization.rsc b/src/lang/java/analysis/ParseTreeVisualization.rsc similarity index 78% rename from src/ParseTreeVisualization.rsc rename to src/lang/java/analysis/ParseTreeVisualization.rsc index ca2d2ab..9a1bf55 100644 --- a/src/ParseTreeVisualization.rsc +++ b/src/lang/java/analysis/ParseTreeVisualization.rsc @@ -1,4 +1,4 @@ -module ParseTreeVisualization +module lang::java::analysis::ParseTreeVisualization import lang::java::\syntax::Java18; import ParseTree; diff --git a/src/SimpleMetrics.rsc b/src/lang/java/analysis/SimpleMetrics.rsc similarity index 98% rename from src/SimpleMetrics.rsc rename to src/lang/java/analysis/SimpleMetrics.rsc index f654b58..4bff590 100644 --- a/src/SimpleMetrics.rsc +++ b/src/lang/java/analysis/SimpleMetrics.rsc @@ -1,4 +1,4 @@ -module SimpleMetrics +module lang::analysis::SimpleMetrics import lang::java::\syntax::Java18; import ManageCompilationUnit; diff --git a/src/lang/java/refactoring/FilterPattern.rsc b/src/lang/java/refactoring/FilterPattern.rsc index 215e6b6..d6220e4 100644 --- a/src/lang/java/refactoring/FilterPattern.rsc +++ b/src/lang/java/refactoring/FilterPattern.rsc @@ -3,6 +3,7 @@ module lang::java::refactoring::FilterPattern import ParseTree; import lang::java::\syntax::Java18; + /** * Refactor a compilation unit to replace * foreach statements, according to the @@ -11,10 +12,17 @@ import lang::java::\syntax::Java18; public tuple[int, CompilationUnit] refactorFilterPattern(CompilationUnit cu) { int total = 0; CompilationUnit unit = visit(cu) { - case(BlockStatements)`for( : ) { if() { return true; }}` : { + case(BlockStatements)`for( : ) { if() { .add(); } }` : { total += 1; - insert (BlockStatements)`c = exp.stream().filter(var -\> e).list();`; + insert (BlockStatements)` = .stream().filter( -\> ).collect(Collectors.toList());`; } }; + if(total > 0) { + unit = visit(unit) { + case(Imports)`` : { + insert (Imports)`import java.util.stream.Collectors;`; + } + } + } return ; } \ No newline at end of file diff --git a/src/lang/java/syntax/Java18.rsc b/src/lang/java/syntax/Java18.rsc index 15545af..da187a3 100644 --- a/src/lang/java/syntax/Java18.rsc +++ b/src/lang/java/syntax/Java18.rsc @@ -15,7 +15,7 @@ module lang::java::\syntax::Java18 -start syntax CompilationUnit = PackageDeclaration? ImportDeclaration* TypeDeclaration* LAYOUT?; +start syntax CompilationUnit = PackageDeclaration? Imports TypeDeclaration* LAYOUT?; syntax Literal = IntegerLiteral | FloatingPointLiteral @@ -25,6 +25,8 @@ syntax Literal = IntegerLiteral | NullLiteral ; +syntax Imports = ImportDeclaration*; + /* * Productions from §4 (Types, Values, and Variables) */ diff --git a/src/AllTestes.rsc b/src/tests/Parser.rsc similarity index 98% rename from src/AllTestes.rsc rename to src/tests/Parser.rsc index ac7e717..5e288f5 100644 --- a/src/AllTestes.rsc +++ b/src/tests/Parser.rsc @@ -1,4 +1,4 @@ -module AllTestes +module tests::Parser import lang::java::\syntax::Java18; import ParseTree; diff --git a/testes/di.csv b/testes/di.csv deleted file mode 100644 index 21736a7..0000000 --- a/testes/di.csv +++ /dev/null @@ -1,5 +0,0 @@ -UltimateAndroid,3f468aaa06027b5f619e567b91fa92fcdd9d6fa6,DI,10,/Users/rbonifacio/Documents/scam-2017/UltimateAndroid,7919 -# OpenRefine,a6ec53c6218bc30867dfbb04acd84221725cb2e2,DI,30,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/OpenRefine -# spring-boot,91ac9440ffa76939f0ef7d64a0d9f508225de1e9,DI,50,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/spring-boot -# RecyclerViewSnap,264572ccad4e204342d62e451229f055098deede,DI,70,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/RecyclerViewSnap -# elasticsearch,16af0a9ce23abbe2efce8ea950107b3e8bc3c0f8,DI,90,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/elasticsearch \ No newline at end of file diff --git a/testes/projects.csv b/testes/projects.csv deleted file mode 100644 index 42ea0d7..0000000 --- a/testes/projects.csv +++ /dev/null @@ -1,19 +0,0 @@ -## orientdb,6212d1f2270367e70d92ced6e68bb3d5e88b9b82,MC,10,/Users/rbonifacio/Documents/scam-2017/orientdb,217647,2936,634,git://github.com/orientechnologies/orientdb.git,OrientDB is the first Multi-Model DBMS with Document & Graph engine. OrientDB can run distributed (Multi-Master),supports SQL,ACID Transactions,Full-Text indexing,Reactive Queries and has a small memory footprint. OrientDB is licensed with Apache 2 license and the development is driven by OrientDB LTD and a worldwide Open Source community. -## flink,54ceec16c11655da4181c0816a3b12d1c4bab465,MC,30,/Users/rbonifacio/Documents/scam-2017/flink,118781,2242,1575,git://github.com/apache/flink.git,Mirror of Apache Flink,,,, -### graylog2-server,3bfdd2654c05b65d5675f68c5d1785680f851a45,MC,50,/Users/rbonifacio/Documents/scam-2017/graylog2-server,99420,3068,445,git://github.com/Graylog2/graylog2-server.git,Free and open source log management,,,, -### smile,7015b154efe5c7c7baeda8945411e09e3849b6d3,MC,70,/Users/rbonifacio/Documents/scam-2017/smile,147830,3127,498,git://github.com/haifengl/smile.git,Statistical Machine Intelligence & Learning Engine,,,, -## VitamioBundle,77bd421e6ae874943291867edde0a371fe09fb0c,MC,90,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/VitamioBundle,186316,3974,2013,git://github.com/yixia/VitamioBundle.git,Vitamio for Android,,,, -# phonegap-facebook-plugin,544cc06b0968b32dae4a8f97c1b01a3d5c74a1b6,SS,10,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/phonegap-facebook-plugin,75734,1926,1701,git://github.com/Wizcorp/phonegap-facebook-plugin.git,The official plugin for Facebook in Apache Cordova/PhoneGap,,,, -# vert.x,f3552369cc15ef7b571d9f51e371ebef9eaf75d5,SS,30,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/vert.x,97613,5980,1126,git://github.com/eclipse/vert.x.git,Vert.x is a tool-kit for building reactive applications on the JVM,,,, -# material-dialogs,5553c6dfd1885dcb4daa528a72d26e84ab4a31b0,SS,50,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/material-dialogs,153880,9403,1897,git://github.com/afollestad/material-dialogs.git,A beautiful,fluid,and customizable dialogs API.,, -# fresco,79ccc218221d1ab9c3a43108ec00da3e8d5fa903,SS,70,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/fresco,56594,12495,3297,git://github.com/facebook/fresco.git,An Android library for managing images and the memory they use.,,,, -# grails-core,713556687a2bab988053c910c651a1139a6cc55f,SS,90,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/grails-core,348080,2098,880,git://github.com/grails/grails-core.git,The Grails Web Application Framework,,,, -# aws-sdk-java,21bfda8f0697ef9055c400360e476f8867032288,VA,10,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/aws-sdk-java,625939,1921,1424,git://github.com/aws/aws-sdk-java.git,The official AWS SDK for Java.,,,, -# bazel,bc133cb5b95d0897b8e4fcc5ac63b8ad7dd96671,VA,30,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/bazel,359548,6261,835,git://github.com/bazelbuild/bazel.git,Correct,reproducible,and fast builds for everyone.,, -# cassandra,049ba2d4d54d22a4dad147b34f37ec0f8c3caa51,VA,50,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/cassandra,234478,3450,1587,git://github.com/apache/cassandra.git,Mirror of Apache Cassandra,,,, -# XCL-Charts,542b068f6d6704731a7bcaa7464ecbff00152387,VA,70,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/XCL-Charts,133181,2104,889,git://github.com/xcltapestry/XCL-Charts.git,Android图表库(XCL-Charts is a free charting library for Android platform.),基于Android Canvas来绘制各种图表,使用简便,定制灵活。目前支持3D/非3D/背向式/横向/竖向柱形图(Bar Chart)、3D/非3D饼图(Pie Chart)、堆叠图(Stacked Bar Chart)、面积图(Area Chart)、 折线图(Line Chart)、曲线图(Spline Chart)、环形图(Dount Chart)、南丁格尔玫瑰图(Rose Chart)、仪表盘(Dial Chart)、刻度盘(Gauge Chart)、雷达图(Radar Chart)、漏斗图(Funnel Chart)、圆形图(Circle Chart)、弧线比较图、散点图(Scatter Chart)、气泡图(Bubble Chart)、范围条形图(RangeBar Chart)等图表。其它特性还包括支持图表缩放、手势移动、点击响应、动画效果、多轴显示、图表参考线、混合图表及同数据源不同图表类型切换等。, -# guice,d2f039541811ebc6d0ab3ba94df302eb70d34037,VA,90,/Users/rbonifacio/Documents/scriptsMSR/scam-2017/guice,62785,4960,799,git://github.com/google/guice.git,Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 6 and above,brought to you by Google.,,, -# -# -### nenhuma transformacao aplicada -## processados \ No newline at end of file From 15786f09243f9dc47d2607e752bbef80dec14fb1 Mon Sep 17 00:00:00 2001 From: Rodrigo Bonifacio Date: Wed, 7 Jun 2017 10:27:29 -0300 Subject: [PATCH 138/156] example of input file --- external-tests/mc.csv | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 external-tests/mc.csv diff --git a/external-tests/mc.csv b/external-tests/mc.csv new file mode 100644 index 0000000..2bcb2b1 --- /dev/null +++ b/external-tests/mc.csv @@ -0,0 +1,18 @@ +# zaproxy,c341b7ac5c62ebf0c7439e5992108f8961978dc9,MC,30,Users/rbonifacio/Documents/scam-2017/zaproxy,152460 +# FacebookFresco,602bd2f9e2e849f69806a81c66b8a45afd98c041,MC,10,/Users/rbonifacio/Documents/scam-2017/fresco,72616 +# freeline,800950b2a4eabc7ac756d9900450cc464bad03b7,MC,50,/Users/rbonifacio/Documents/scam-2017/freeline,5108 +# jna,690ad977343e341f51335ec23e6fdff1adca3851,MC,70,/Users/rbonifacio/Documents/scam-2017/jna,74288 +# uCrop,f9f75f73e0e338548b7fd2c8b6c7c87ed613b236,MC,90,/Users/rbonifacio/Documents/scam-2017/uCrop,4 +# antlr4,fd5efc250d2a1664336df7778fc571cdad0cb40d,DI,50,/Users/rbonifacio/Documents/scam-2017/antlr4/tool/src,150032 +# antlr4,fd5efc250d2a1664336df7778fc571cdad0cb40d,AC,50,/Users/rbonifacio/Documents/scam-2017/antlr4/tool/src,150032 +# rascal,44a414ac26fba6bced00686bcbf400169f1e5e5e,MC,50,/Users/rbonifacio/Documents/scam-2017/rascal/src/org/rascalmpl/interpreter,151998 +# rascal,44a414ac26fba6bced00686bcbf400169f1e5e5e,DI,50,/Users/rbonifacio/Documents/scam-2017/rascal/src/org/rascalmpl/interpreter,151998 +# rascal,44a414ac26fba6bced00686bcbf400169f1e5e5e,FP,50,/Users/rbonifacio/Documents/scam-2017/rascal/src/org/rascalmpl/interpreter,151998 +# rascal,44a414ac26fba6bced00686bcbf400169f1e5e5e,EP,50,/Users/rbonifacio/Documents/scam-2017/rascal/src/org/rascalmpl/interpreter,151998 +# rascal,44a414ac26fba6bced00686bcbf400169f1e5e5e,SS,50,/Users/rbonifacio/Documents/scam-2017/rascal/src/org/rascalmpl/interpreter,151998 +# neo4j-community-kernel,c5659f8660e8d2ed18550597b60c19bbb4b45f21,MC,30,/Users/rbonifacio/Documents/scam-2017/neo4j/community/kernel,237108 +## neo4j-community-kernel,c5659f8660e8d2ed18550597b60c19bbb4b45f21,DI,30,/Users/rbonifacio/Documents/scam-2017/neo4j/community/kernel,237108 +# neo4j-community-kernel,c5659f8660e8d2ed18550597b60c19bbb4b45f21,FP,90,/Users/rbonifacio/Documents/scam-2017/neo4j/community/kernel,237108 +# neo4j-community-kernel,c5659f8660e8d2ed18550597b60c19bbb4b45f21,EP,90,/Users/rbonifacio/Documents/scam-2017/neo4j/community/kernel,237108 +# neo4j-community-kernel,c5659f8660e8d2ed18550597b60c19bbb4b45f21,MC,90,/Users/rbonifacio/Documents/scam-2017/neo4j/community/kernel,237108 +core-nlp,ab635c274ceb2b873eb87e380076a4ca61c70b0a,MC,50,/Users/rbonifacio/Documents/scam-2017/CoreNLP,557318 \ No newline at end of file From e841847c23397b089ce25b7889e05817e7cbc00d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sat, 10 Jun 2017 22:48:33 -0300 Subject: [PATCH 139/156] Finally transforming a compilation unit with the refactors. --- .../forloop/EnhancedForLoopRefactorer.rsc | 67 +++++++++++-------- .../test/EnhancedForLoopRefactorerTest.rsc | 9 ++- 2 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index a182643..75a2a5b 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -11,7 +11,9 @@ import lang::java::refactoring::forloop::ForLoopToFunctional; import lang::java::refactoring::forloop::ClassFieldsFinder; import lang::java::refactoring::forloop::MethodVar; -private set[str] checkedExceptionClasses; +private bool PRINT_DEBUG = false; + +private set[str] checkedExceptionClasses = {}; private set[MethodVar] currentClassFields = {}; @@ -26,38 +28,43 @@ public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { javaFileContent = readFile(fileLoc); try { unit = parse(#CompilationUnit, javaFileContent); - alreadyComputedClassFields = false; - lookForForStatements(unit); + refactorEnhancedForStatements(unit); } catch: continue; } println("refactoredCount: " + toString(refactoredCount)); } -private void lookForForStatements(CompilationUnit unit) { - visit(unit) { - case MethodDeclaration methodDeclaration: - lookForEnhancedForStatementsInMethod(unit, methodDeclaration); - } -} - -private void lookForEnhancedForStatementsInMethod(CompilationUnit unit, MethodDeclaration methodDeclaration) { - visit(methodDeclaration) { - case (MethodDeclaration) ` `: - lookForEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); - } +// Losing format after a method is refactored. +public CompilationUnit refactorEnhancedForStatements(CompilationUnit unit) { + alreadyComputedClassFields = false; + CompilationUnit refactoredUnit = visit(unit) { + case (MethodDeclaration) ` `: { + MethodBody refactoredMethoBody = visit(mBody) { + case MethodBody methodBody: insert refactorEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); + }; + + insert((MethodDeclaration) ` `); + } + }; + + return refactoredUnit; } // TODO What happens when two for statements are refactored inside the same method? -private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { +private MethodBody refactorEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { set[MethodVar] availableVars = {}; alreadyComputedCurrentMethodAvailableVars = false; + MethodBody refactoredMethodBody = methodBody; top-down visit(methodBody) { case EnhancedForStatement forStmt: { - println("for"); - println(forStmt); - println(); + if(PRINT_DEBUG) { + println("for"); + println(forStmt); + println(); + } + if(!alreadyComputedClassFields) { currentClassFields = findClassFields(unit); alreadyComputedClassFields = true; @@ -77,27 +84,31 @@ private void lookForEnhancedForStatementsInMethodBody(CompilationUnit unit, Meth if(isLoopRefactorable(availableVars, collectionId, loopBody)) { try { - refactored = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); + refactoredMethodBody = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); refactoredCount += 1; - println("refactored: " + toString(refactoredCount)); - println(enhancedForStmt); - println("---"); - println(refactored); - println(); - } catch: { + + if(PRINT_DEBUG) { + println("refactored: " + toString(refactoredCount)); + println(enhancedForStmt); + println("---"); + println(refactoredMethodBody); + println(); + } + } catch: continue; - } } } } } - } + } } case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } + + return refactoredMethodBody; } private bool isLoopRefactorable(set[MethodVar] availableVariables, Expression collectionId, Statement loopBody) { diff --git a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc index 4e714a4..e34255e 100644 --- a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc +++ b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc @@ -1,10 +1,17 @@ module lang::java::refactoring::forloop::\test::EnhancedForLoopRefactorerTest import IO; +import ParseTree; +import lang::java::\syntax::Java18; import lang::java::refactoring::forloop::EnhancedForLoopRefactorer; public test bool refactorableInnerLoopButNotOuterLoop() { classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ClassRefactorableInnerLoopButNotOuter|; - forLoopToFunctional([classLoc], {}); + unit = parse(#CompilationUnit, classLoc); + refactored = refactorEnhancedForStatements(unit); + + println("\n\n printando teste \n\n"); + println(refactored); + return false; } \ No newline at end of file From 0d209ad7a9415984d1bff8a41723e9c7a14eaf2a Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sat, 10 Jun 2017 23:39:45 -0300 Subject: [PATCH 140/156] Fixing typos --- .../java/refactoring/forloop/EnhancedForLoopRefactorer.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 75a2a5b..69a950e 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -35,16 +35,16 @@ public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { println("refactoredCount: " + toString(refactoredCount)); } -// Losing format after a method is refactored. +// Losing formatting after a method is refactored. public CompilationUnit refactorEnhancedForStatements(CompilationUnit unit) { alreadyComputedClassFields = false; CompilationUnit refactoredUnit = visit(unit) { case (MethodDeclaration) ` `: { - MethodBody refactoredMethoBody = visit(mBody) { + MethodBody refactoredMethodBody = visit(mBody) { case MethodBody methodBody: insert refactorEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); }; - insert((MethodDeclaration) ` `); + insert((MethodDeclaration) ` `); } }; From de0588c05d29e26ad6455c249687c497be21848d Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 11:25:21 -0300 Subject: [PATCH 141/156] Test case for refactoring an inner loop, but not an outer loop. --- .../forloop/EnhancedForLoopRefactorer.rsc | 4 ++-- .../test/EnhancedForLoopRefactorerTest.rsc | 18 ++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 69a950e..515ce43 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -17,7 +17,7 @@ private set[str] checkedExceptionClasses = {}; private set[MethodVar] currentClassFields = {}; -private bool alreadyComputedClassFields; +private bool alreadyComputedClassFields = false; private int refactoredCount = 0; @@ -52,7 +52,7 @@ public CompilationUnit refactorEnhancedForStatements(CompilationUnit unit) { } // TODO What happens when two for statements are refactored inside the same method? -private MethodBody refactorEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { +public MethodBody refactorEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { set[MethodVar] availableVars = {}; alreadyComputedCurrentMethodAvailableVars = false; MethodBody refactoredMethodBody = methodBody; diff --git a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc index e34255e..1bd896a 100644 --- a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc +++ b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc @@ -1,17 +1,15 @@ module lang::java::refactoring::forloop::\test::EnhancedForLoopRefactorerTest -import IO; -import ParseTree; -import lang::java::\syntax::Java18; import lang::java::refactoring::forloop::EnhancedForLoopRefactorer; +import lang::java::refactoring::forloop::\test::resources::RefactorerTestResources; -public test bool refactorableInnerLoopButNotOuterLoop() { - classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ClassRefactorableInnerLoopButNotOuter|; - unit = parse(#CompilationUnit, classLoc); - refactored = refactorEnhancedForStatements(unit); +// comparing an entire file is not that practical +// comparing methods then +// but definitely should automate test for entire compilation unit +public test bool shouldRefactorInnerLoopButNoutOuterLoop() { + refactorable = innerLoopButNotOuterLoop(); - println("\n\n printando teste \n\n"); - println(refactored); + refactored = refactorEnhancedForStatementsInMethodBody(refactorable.unit, refactorable.header, refactorable.body); - return false; + return refactored == refactorable.refactored; } \ No newline at end of file From 46044ba1fcb3f5b6aa7a14799c5c984d0d5a6257 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 13:37:00 -0300 Subject: [PATCH 142/156] Counting occurrences and test case for inner loop. --- .../forloop/EnhancedForLoopRefactorer.rsc | 85 +++++++++---------- .../test/EnhancedForLoopRefactorerTest.rsc | 6 +- .../resources/RefactorerTestResources.rsc | 18 ++++ 3 files changed, 63 insertions(+), 46 deletions(-) create mode 100644 src/lang/java/refactoring/forloop/test/resources/RefactorerTestResources.rsc diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 515ce43..154420d 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -36,79 +36,76 @@ public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { } // Losing formatting after a method is refactored. -public CompilationUnit refactorEnhancedForStatements(CompilationUnit unit) { +public tuple[CompilationUnit unit, int occurrences] refactorEnhancedForStatements(CompilationUnit unit) { + int occurrences = 0; alreadyComputedClassFields = false; CompilationUnit refactoredUnit = visit(unit) { case (MethodDeclaration) ` `: { MethodBody refactoredMethodBody = visit(mBody) { - case MethodBody methodBody: insert refactorEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); + case MethodBody methodBody: { + refactored = refactorEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); + occurrences += refactored.occurrences; + insert refactored.body; + } }; insert((MethodDeclaration) ` `); } }; - return refactoredUnit; + return ; } // TODO What happens when two for statements are refactored inside the same method? -public MethodBody refactorEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { +public tuple[MethodBody body, int occurrences] refactorEnhancedForStatementsInMethodBody(CompilationUnit unit, MethodHeader methodHeader, MethodBody methodBody) { set[MethodVar] availableVars = {}; alreadyComputedCurrentMethodAvailableVars = false; + occurrences = 0; + MethodBody refactoredMethodBody = methodBody; top-down visit(methodBody) { - case EnhancedForStatement forStmt: { - if(PRINT_DEBUG) { - println("for"); - println(forStmt); - println(); - } - - if(!alreadyComputedClassFields) { - currentClassFields = findClassFields(unit); - alreadyComputedClassFields = true; - } - - if(!alreadyComputedCurrentMethodAvailableVars) { - methodVars = findLocalVariables(methodHeader, methodBody); - availableVars = retainLocalVariablesIfDuplicates(currentClassFields, methodVars); - alreadyComputedAvailableVars = true; - } + case EnhancedForStatement enhancedForStmt: + visit(enhancedForStmt) { - top-down visit(forStmt) { - case EnhancedForStatement enhancedForStmt: { - visit(enhancedForStmt) { - case (EnhancedForStatement) `for ( : ) `: { - - if(isLoopRefactorable(availableVars, collectionId, loopBody)) { - - try { - refactoredMethodBody = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); - refactoredCount += 1; + case (EnhancedForStatement) `for ( : ) `: { + + if(!alreadyComputedClassFields) { + currentClassFields = findClassFields(unit); + alreadyComputedClassFields = true; + } + + if(!alreadyComputedCurrentMethodAvailableVars) { + methodVars = findLocalVariables(methodHeader, methodBody); + availableVars = retainLocalVariablesIfDuplicates(currentClassFields, methodVars); + alreadyComputedAvailableVars = true; + } - if(PRINT_DEBUG) { - println("refactored: " + toString(refactoredCount)); - println(enhancedForStmt); - println("---"); - println(refactoredMethodBody); - println(); - } - } catch: - continue; - + if(isLoopRefactorable(availableVars, collectionId, loopBody)) { + + try { + refactoredMethodBody = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); + occurrences += 1; + + if(PRINT_DEBUG) { + println("refactored: " + toString(occurrences)); + println(enhancedForStmt); + println("---"); + println(refactoredMethodBody); + println(); } - } + } catch: + continue; } } + } - } case (EnhancedForStatementNoShortIf) `for ( : ) `: println("TODO"); } - return refactoredMethodBody; + return ; } private bool isLoopRefactorable(set[MethodVar] availableVariables, Expression collectionId, Statement loopBody) { diff --git a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc index 1bd896a..e8907f7 100644 --- a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc +++ b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc @@ -1,9 +1,10 @@ module lang::java::refactoring::forloop::\test::EnhancedForLoopRefactorerTest +import IO; import lang::java::refactoring::forloop::EnhancedForLoopRefactorer; import lang::java::refactoring::forloop::\test::resources::RefactorerTestResources; -// comparing an entire file is not that practical +// comparing an entire file is not that practical // comparing methods then // but definitely should automate test for entire compilation unit public test bool shouldRefactorInnerLoopButNoutOuterLoop() { @@ -11,5 +12,6 @@ public test bool shouldRefactorInnerLoopButNoutOuterLoop() { refactored = refactorEnhancedForStatementsInMethodBody(refactorable.unit, refactorable.header, refactorable.body); - return refactored == refactorable.refactored; + return refactored.body == refactorable.refactored && + refactored.occurrences == 1; } \ No newline at end of file diff --git a/src/lang/java/refactoring/forloop/test/resources/RefactorerTestResources.rsc b/src/lang/java/refactoring/forloop/test/resources/RefactorerTestResources.rsc new file mode 100644 index 0000000..eb288d8 --- /dev/null +++ b/src/lang/java/refactoring/forloop/test/resources/RefactorerTestResources.rsc @@ -0,0 +1,18 @@ +module lang::java::refactoring::forloop::\test::resources::RefactorerTestResources + +import IO; +import ParseTree; +import lang::java::\syntax::Java18; + +public data RefactorableFor = refactorableFor(CompilationUnit unit, MethodHeader header, MethodBody body, MethodBody refactored); + +public RefactorableFor innerLoopButNotOuterLoop() { + classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java|; + unit = parse(#CompilationUnit, readFile(classLoc)); + header = parse(#MethodHeader, "void scanPackage(\r\n\t\t\tClassPathScanningCandidateComponentProvider componentProvider,\r\n\t\t\tString packageToScan)"); + body = parse(#MethodBody, "{\r\n\t\tfor (BeanDefinition candidate : componentProvider\r\n\t\t\t\t.findCandidateComponents(packageToScan)) {\r\n\t\t\tif (candidate instanceof ScannedGenericBeanDefinition) {\r\n\t\t\t\tfor (ServletComponentHandler handler : HANDLERS) {\r\n\t\t\t\t\thandler.handle(((ScannedGenericBeanDefinition) candidate),\r\n\t\t\t\t\t\t\t(BeanDefinitionRegistry) this.applicationContext);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}"); + + refactored = parse(#MethodBody, "{\r\n\t\tfor (BeanDefinition candidate : componentProvider\r\n\t\t\t\t.findCandidateComponents(packageToScan)) {\r\n\t\t\tif (candidate instanceof ScannedGenericBeanDefinition) {\r\n\t\t\t\tHANDLERS.forEach(handler -\> {\nhandler.handle(((ScannedGenericBeanDefinition) candidate),\r\n\t\t\t\t\t\t\t(BeanDefinitionRegistry) this.applicationContext);\n});\r\n\t\t\t}\r\n\t\t}\r\n\t}"); + + return refactorableFor(unit, header, body, refactored); +} \ No newline at end of file From 99dfb952c6a32c9a12af0046658e8ff92352fff6 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 14:28:44 -0300 Subject: [PATCH 143/156] Removing folder 'testes' from .gitignore --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index b3dafd1..c5e82d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -bin -testes \ No newline at end of file +bin \ No newline at end of file From b8288a3afba55a3a145d8b44eed3c1059fffb1fc Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 14:54:02 -0300 Subject: [PATCH 144/156] Fixing the declaration of a test case. Of course it was a failing test. --- .../forloop/test/ProspectiveOperationTest.rsc | 2 +- .../ProspectiveOperationTestResources.rsc | 2 +- .../LoopRefactorableInnerLoopButNotOuter | 9 ++ ...vletComponentRegisteringPostProcessor.java | 116 ++++++++++++++++++ 4 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 testes/forloop/Refactorer/LoopRefactorableInnerLoopButNotOuter create mode 100644 testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java diff --git a/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc index 2331587..347a02b 100644 --- a/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ProspectiveOperationTest.rsc @@ -141,7 +141,7 @@ public test bool innerIfAsNotTheLastStatementShouldBeAMap() { prospectiveOperations[4].operation == FOR_EACH; } -public void shouldThrowExceptionOnLoopWithInnerLoop() { +public test bool shouldThrowExceptionOnLoopWithInnerLoop() { tuple [set[MethodVar] vars, EnhancedForStatement loop] loop = outerLoopWithInnerLoop(); try { diff --git a/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc index 56fd7c3..cdb224b 100644 --- a/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc +++ b/src/lang/java/refactoring/forloop/test/resources/ProspectiveOperationTestResources.rsc @@ -146,7 +146,7 @@ public tuple [set[MethodVar] vars, EnhancedForStatement loop] outerLoopWithInner methodBody = parse(#MethodBody, "{" + loopStr + "}"); localVars = findLocalVariables(methodHeader, methodBody); - classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ClassRefactorableInnerLoopButNotOuter|; + classLoc = |project://rascal-Java8//testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java|; classFields = findClassFields(parse(#CompilationUnit, classLoc)); availableVars = localVars + classFields; diff --git a/testes/forloop/Refactorer/LoopRefactorableInnerLoopButNotOuter b/testes/forloop/Refactorer/LoopRefactorableInnerLoopButNotOuter new file mode 100644 index 0000000..ab71835 --- /dev/null +++ b/testes/forloop/Refactorer/LoopRefactorableInnerLoopButNotOuter @@ -0,0 +1,9 @@ +for (BeanDefinition candidate : componentProvider + .findCandidateComponents(packageToScan)) { + if (candidate instanceof ScannedGenericBeanDefinition) { + for (ServletComponentHandler handler : HANDLERS) { + handler.handle(((ScannedGenericBeanDefinition) candidate), + (BeanDefinitionRegistry) this.applicationContext); + } + } + } \ No newline at end of file diff --git a/testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java b/testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java new file mode 100644 index 0000000..4d9b41f --- /dev/null +++ b/testes/forloop/Refactorer/ServletComponentRegisteringPostProcessor.java @@ -0,0 +1,116 @@ +/* + * Copyright 2012-2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.web.servlet; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.config.BeanFactoryPostProcessor; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; +import org.springframework.context.annotation.ScannedGenericBeanDefinition; +import org.springframework.web.context.WebApplicationContext; + +/** + * {@link BeanFactoryPostProcessor} that registers beans for Servlet components found via + * package scanning. + * + * @author Andy Wilkinson + * @see ServletComponentScan + * @see ServletComponentScanRegistrar + */ +class ServletComponentRegisteringPostProcessor + implements BeanFactoryPostProcessor, ApplicationContextAware { + + private static final List HANDLERS; + + static { + List handlers = new ArrayList<>(); + handlers.add(new WebServletHandler()); + handlers.add(new WebFilterHandler()); + handlers.add(new WebListenerHandler()); + HANDLERS = Collections.unmodifiableList(handlers); + } + + private final Set packagesToScan; + + private ApplicationContext applicationContext; + + ServletComponentRegisteringPostProcessor(Set packagesToScan) { + this.packagesToScan = packagesToScan; + } + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) + throws BeansException { + if (isRunningInEmbeddedWebServer()) { + ClassPathScanningCandidateComponentProvider componentProvider = createComponentProvider(); + for (String packageToScan : this.packagesToScan) { + scanPackage(componentProvider, packageToScan); + } + } + } + + private void scanPackage( + ClassPathScanningCandidateComponentProvider componentProvider, + String packageToScan) { + for (BeanDefinition candidate : componentProvider + .findCandidateComponents(packageToScan)) { + if (candidate instanceof ScannedGenericBeanDefinition) { + for (ServletComponentHandler handler : HANDLERS) { + handler.handle(((ScannedGenericBeanDefinition) candidate), + (BeanDefinitionRegistry) this.applicationContext); + } + } + } + } + + private boolean isRunningInEmbeddedWebServer() { + return this.applicationContext instanceof WebApplicationContext + && ((WebApplicationContext) this.applicationContext) + .getServletContext() == null; + } + + private ClassPathScanningCandidateComponentProvider createComponentProvider() { + ClassPathScanningCandidateComponentProvider componentProvider = new ClassPathScanningCandidateComponentProvider( + false); + componentProvider.setEnvironment(this.applicationContext.getEnvironment()); + componentProvider.setResourceLoader(this.applicationContext); + for (ServletComponentHandler handler : HANDLERS) { + componentProvider.addIncludeFilter(handler.getTypeFilter()); + } + return componentProvider; + } + + Set getPackagesToScan() { + return Collections.unmodifiableSet(this.packagesToScan); + } + + @Override + public void setApplicationContext(ApplicationContext applicationContext) + throws BeansException { + this.applicationContext = applicationContext; + } + +} From bee31a006b68c2cd267dc7a797100e97b131c2bf Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 17:51:45 -0300 Subject: [PATCH 145/156] Not breaking into prospective operation an inner loop inside an if --- .../java/refactoring/forloop/ProspectiveOperation.rsc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc b/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc index 9bdf04c..5c6cdc4 100644 --- a/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc +++ b/src/lang/java/refactoring/forloop/ProspectiveOperation.rsc @@ -5,7 +5,7 @@ import List; import String; import lang::java::\syntax::Java18; import ParseTree; -import ParseTreeVisualization; +import java::lang::analysis::ParseTreeVisualization; import lang::java::refactoring::forloop::MethodVar; import lang::java::refactoring::forloop::OperationType; import lang::java::refactoring::forloop::BreakIntoStatements; @@ -17,6 +17,7 @@ private list[MethodVar] methodLocalVars; public list[ProspectiveOperation] retrieveProspectiveOperations(set[MethodVar] localVars, EnhancedForStatement forStmt) { methodLocalVars = localVars; list[ProspectiveOperation] prospectiveOperations = []; + // TODO can receive as parameter only the loopBody from Refactorer. saving a visit. top-down visit(forStmt) { case (EnhancedForStatement) `for ( : ) `: { prospectiveOperations = retrieveProspectiveOperationsFromStatement(stmt); @@ -91,6 +92,10 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem foundReturn = true; prOps += createAnyMatchOrNoneMatchPrOp("", ""); } + + case IfThenElseStatement ifElseStmt: throw "Not Refactoring If/Else for now"; + case ForStatement _: throw "Not Refactoring Inner Loops for now"; + case WhileStatement _: throw "Not Refactoring While Loops inside ForStatement for now"; } if (!foundReturn) { @@ -102,6 +107,7 @@ private list[ProspectiveOperation] retrieveProspectiveOperationsFromIfThenStatem } } } + } } } From a6bcbb90dec4c42f1a31d101f0573cd46a45f1fe Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 17:51:45 -0300 Subject: [PATCH 146/156] Fixing helper test method to reflect how 'production' code is working --- src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc b/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc index f932f2f..c322377 100644 --- a/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopBodyReferences.rsc @@ -16,7 +16,7 @@ public int getTotalOfNonEffectiveFinalVarsReferenced(set[MethodVar] localVariabl } public Statement retrieveLoopBodyFromEnhancedFor(EnhancedForStatement forStmt) { - visit (forStmt) { + top-down-break visit (forStmt) { case (EnhancedForStatement) `for ( : ) `: return loopBody; } From 85ef54793ac0d6741e1807ce95b49c91d5d88a99 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 17:51:45 -0300 Subject: [PATCH 147/156] Fixing import of ParseTreeVisualization (changed folder) --- .../java/refactoring/forloop/test/BreakIntoStatementsTest.rsc | 2 +- .../java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc index e8a5b7e..0a2230a 100644 --- a/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc +++ b/src/lang/java/refactoring/forloop/test/BreakIntoStatementsTest.rsc @@ -6,7 +6,7 @@ import lang::java::\syntax::Java18; import lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources; import lang::java::refactoring::forloop::ForLoopBodyReferences; import ParseTree; -import ParseTreeVisualization; +import java::lang::analysis::ParseTreeVisualization; public test bool ex1() { fileLoc = |project://rascal-Java8//testes/forloop/ProspectiveOperation/SimpleShortEnhancedLoop|; diff --git a/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc index 5125742..e35dfcb 100644 --- a/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc @@ -4,7 +4,7 @@ import IO; import String; import lang::java::\syntax::Java18; import ParseTree; -import ParseTreeVisualization; +import java::lang::analysis::ParseTreeVisualization; import lang::java::refactoring::forloop::ForLoopToFunctional; import lang::java::refactoring::forloop::MethodVar; From 935aedddbc1dd221cba6d61fadd3f9d907c78143 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 17:51:45 -0300 Subject: [PATCH 148/156] Refactoring correctly the inner loop but not the outsider. --- .../java/refactoring/forloop/EnhancedForLoopRefactorer.rsc | 7 +++++-- .../forloop/test/EnhancedForLoopRefactorerTest.rsc | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 154420d..e8af419 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -94,8 +94,11 @@ public tuple[MethodBody body, int occurrences] refactorEnhancedForStatementsInMe println(refactoredMethodBody); println(); } - } catch: - continue; + } catch: { + // ignore. continuing + // 'continue' do not works as expected in 'visit' statements + ; + } } } diff --git a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc index e8907f7..1babb40 100644 --- a/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc +++ b/src/lang/java/refactoring/forloop/test/EnhancedForLoopRefactorerTest.rsc @@ -8,7 +8,7 @@ import lang::java::refactoring::forloop::\test::resources::RefactorerTestResourc // comparing methods then // but definitely should automate test for entire compilation unit public test bool shouldRefactorInnerLoopButNoutOuterLoop() { - refactorable = innerLoopButNotOuterLoop(); + RefactorableFor refactorable = innerLoopButNotOuterLoop(); refactored = refactorEnhancedForStatementsInMethodBody(refactorable.unit, refactorable.header, refactorable.body); From 11b688caf816aceb21a23c40192da61aa9f80087 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Sun, 11 Jun 2017 17:51:45 -0300 Subject: [PATCH 149/156] Small improvements on comments and stuff --- .../java/refactoring/forloop/EnhancedForLoopRefactorer.rsc | 6 ++++-- src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc | 7 +------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index e8af419..16f0a92 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -11,7 +11,7 @@ import lang::java::refactoring::forloop::ForLoopToFunctional; import lang::java::refactoring::forloop::ClassFieldsFinder; import lang::java::refactoring::forloop::MethodVar; -private bool PRINT_DEBUG = false; +private bool PRINT_DEBUG = true; private set[str] checkedExceptionClasses = {}; @@ -87,8 +87,10 @@ public tuple[MethodBody body, int occurrences] refactorEnhancedForStatementsInMe refactoredMethodBody = refactorEnhancedToFunctional(availableVars, enhancedForStmt, methodBody, iteratedVarName, collectionId); occurrences += 1; + refactoredCount += 1; + if(PRINT_DEBUG) { - println("refactored: " + toString(occurrences)); + println("refactored: " + toString(refactoredCount)); println(enhancedForStmt); println("---"); println(refactoredMethodBody); diff --git a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc index d5613db..01b7463 100644 --- a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc @@ -17,10 +17,6 @@ import lang::java::refactoring::forloop::BreakIntoStatements; public data ComposableProspectiveOperation = composableProspectiveOperation(ProspectiveOperation prOp, set[str] neededVars, set[str] availableVars); public MethodBody refactorEnhancedToFunctional(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { - return buildRefactoredMethodBody(methodVars, forStmt, methodBody, iteratedVarName, collectionId); -} - -private MethodBody buildRefactoredMethodBody(set[MethodVar] methodVars, EnhancedForStatement forStmt, MethodBody methodBody, VariableDeclaratorId iteratedVarName, Expression collectionId) { refactored = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); forStatement = parse(#Statement, unparse(forStmt)); refactoredMethodBody = refactorToFunctional(methodBody, forStatement, refactored); @@ -86,7 +82,6 @@ private list[ComposableProspectiveOperation] mergeIntoComposableOperations(list[ ComposableProspectiveOperation beforeLast = composablePrOps[opsSize - 2]; merged = mergeComposablePrOps(beforeLast, last); - // XXX analyze if this "merging" is correct. probably not composablePrOps = slice(composablePrOps, 0, opsSize - 2) + merged; opsSize = size(composablePrOps); @@ -321,7 +316,7 @@ private str getLambdaBodyForMapWhenLocalVariableDeclaration(str stmt) { throw "No variable initializer in MAP"; } -// TODO check for prefix and postfix increment/decrement after ProspectiveOperation is working +// TODO check if prefix and postfix increment/decrement after ProspectiveOperation is working private str buildMapReduceOperation(set[MethodVar] methodVars, ComposableProspectiveOperation cPrOp) { mapOperation = ""; reduceOperation = ""; From c90adade4b9673a8fad1c91d052c5746038235e7 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 22 Jun 2017 21:31:33 -0300 Subject: [PATCH 150/156] Preparing to name lambda arg with the same name as LocalVariableDeclaration - This is actually a little different implementation from LAMBDAFICATOR --- src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc | 8 ++++++-- .../refactoring/forloop/test/ForLoopToFunctionalTest.rsc | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc index 01b7463..690b04a 100644 --- a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc @@ -217,7 +217,7 @@ private ComposableProspectiveOperation addReturnToMapBody(ComposableProspectiveO else stmts += stmt; - varName = isEmpty(nextNeededVars) ? "_item" : getOneFrom(nextNeededVars); + varName = retrieveLambdaParameterNameWhenNotSingleStmtVarDecl(nextNeededVars); stmts += "return ;"; block = transformStatementsInBlock(stmts); @@ -268,7 +268,11 @@ private str buildChainableOperation(set[MethodVar] methodVars, ComposableProspec } private str retrieveLambdaParameterName(ComposableProspectiveOperation cPrOp) { - return isEmpty(cPrOp.neededVars) ? "_item" : getOneFrom(cPrOp.neededVars); + return retrieveLambdaParameterNameWhenNotSingleStmtVarDecl(cPrOp.neededVars); +} + +private str retrieveLambdaParameterNameWhenNotSingleStmtVarDecl(set[str] neededVars) { + return isEmpty(neededVars) ? "_item" : getOneFrom(neededVars); } private str retrieveLambdaBody(ProspectiveOperation prOp) { diff --git a/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc index e35dfcb..0ae6fe9 100644 --- a/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc +++ b/src/lang/java/refactoring/forloop/test/ForLoopToFunctionalTest.rsc @@ -14,7 +14,7 @@ import lang::java::refactoring::forloop::\test::resources::LocalVariablesFinderT import lang::java::refactoring::forloop::\test::resources::ProspectiveOperationTestResources; -public test bool ex1() { +public test bool shouldNameLambdaArgWithTheSameNameWhenMapIsASingleStmtVarDeclaration() { fileLoc = |project://rascal-Java8//testes/forloop/ForLoopToFunctional/T1.java|; methodBody = parse(#MethodBody, readFile(fileLoc)); methodHeader = parse(#MethodHeader, "TestSuite createTestSuite()"); @@ -25,7 +25,7 @@ public test bool ex1() { refactoredStatement = buildRefactoredEnhancedFor(methodVars, forStmt, methodBody, iteratedVarName, collectionId); - return "" == "testers.stream().map(testerClass -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\n suite.addTest(testerSuite);\n });"; + return "" == "testers.stream().map(testerSuite -\> makeSuiteForTesterClass((Class\\>) testerClass)).filter(testerSuite -\> testerSuite.countTestCases() \> 0).forEach(testerSuite -\> {\n suite.addTest(testerSuite);\n });"; } public test bool reduceAsNotTheLastOperationShouldNotBeRefactored() { @@ -146,7 +146,7 @@ public test bool loopWithIfWithTwoStatementsInsideBlockShouldRefactorInnerIfAsMa refactoredStatement = buildRefactoredEnhancedFor(loop.vars, loop.loop, methodBody, iteratedVarName, collectionId); - return "" == "endpoints.stream().filter(endpoint -\> isIncluded(endpoint)).map(endpoint -\> endpointHandlerMapping.getPath(endpoint.getPath())).map(path -\> {\npaths.add(path);\nreturn path;\n}).map(path -\> {\nif (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}\nreturn path;\n}).forEach(path -\> {\npaths.add(path + \"/\");\n});"; + return "" == "endpoints.stream().filter(endpoint -\> isIncluded(endpoint)).map(path -\> endpointHandlerMapping.getPath(endpoint.getPath())).map(path -\> {\npaths.add(path);\nreturn path;\n}).map(path -\> {\nif (!path.equals(\"\")) {\r\n\t\t\t\t\t\tpaths.add(path + \"/**\");\r\n\t\t\t\t\t\t// Add Spring MVC-generated additional paths\r\n\t\t\t\t\t\tpaths.add(path + \".*\");\r\n\t\t\t\t\t}\nreturn path;\n}).forEach(path -\> {\npaths.add(path + \"/\");\n});"; } public test bool anotherIfThatIsMap() { From dc4c2dcc8d2786d666d128182d6653130569c609 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Thu, 22 Jun 2017 21:31:33 -0300 Subject: [PATCH 151/156] Lambda arg with the same name as/when single local variable declaration stmt --- .../forloop/ForLoopToFunctional.rsc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc index 690b04a..6789198 100644 --- a/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc +++ b/src/lang/java/refactoring/forloop/ForLoopToFunctional.rsc @@ -268,9 +268,28 @@ private str buildChainableOperation(set[MethodVar] methodVars, ComposableProspec } private str retrieveLambdaParameterName(ComposableProspectiveOperation cPrOp) { + singleStmtVarDecl = checkIfSingleStmtVarDecl(cPrOp.prOp.stmt); + if (singleStmtVarDecl.condition) + return singleStmtVarDecl.name; return retrieveLambdaParameterNameWhenNotSingleStmtVarDecl(cPrOp.neededVars); } +private tuple[bool condition, str name] checkIfSingleStmtVarDecl(str stmt) { + semiCollonOccurrences = findAll("", ";"); + isSingleStmt = size(semiCollonOccurrences) == 1; + if(isSingleStmt) { + try { + lvdl = parse(#LocalVariableDeclarationStatement, stmt); + visit (lvdl) { + case (VariableDeclaratorId) ``: + return ">; + } + } catch: + return ; + } + return ; +} + private str retrieveLambdaParameterNameWhenNotSingleStmtVarDecl(set[str] neededVars) { return isEmpty(neededVars) ? "_item" : getOneFrom(neededVars); } From acbc1a001ce39db1207b3d2ef09c01d66db26689 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 23 Jun 2017 11:53:58 -0300 Subject: [PATCH 152/156] Fixing ExceptionFinder module declaration --- src/lang/java/analysis/ExceptionFinder.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/java/analysis/ExceptionFinder.rsc b/src/lang/java/analysis/ExceptionFinder.rsc index 63a6bbd..9ceefa3 100644 --- a/src/lang/java/analysis/ExceptionFinder.rsc +++ b/src/lang/java/analysis/ExceptionFinder.rsc @@ -1,4 +1,4 @@ -module ExceptionFinder +module lang::java::analysis::ExceptionFinder import IO; import lang::java::m3::M3Util; @@ -16,7 +16,7 @@ private data ClassAndSuperClass = classAndSuperClass(str className, str superCla private bool printAllFileNamesThatCouldNotBeParsed = false; -set[str] findCheckedExceptions(list[loc] javaFilesLocations) { +public set[str] findCheckedExceptions(list[loc] javaFilesLocations) { initializeClassesFound(); for(javaFileLocation <- javaFilesLocations) tryToVisitFileLookingForClassesWithSubClasses(javaFileLocation); From 16f90fa4dcd4cbf03f5a9a0d41b5857a99703da5 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 23 Jun 2017 11:54:23 -0300 Subject: [PATCH 153/156] Integrating ForLoopToFunctional into Driver --- src/Driver.rsc | 9 ++++++++- .../refactoring/forloop/EnhancedForLoopRefactorer.rsc | 11 ++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Driver.rsc b/src/Driver.rsc index 17315ee..941d50e 100644 --- a/src/Driver.rsc +++ b/src/Driver.rsc @@ -19,6 +19,9 @@ import lang::java::refactoring::AnonymousToLambda; import lang::java::refactoring::ExistPatternToLambda; import lang::java::refactoring::FilterPattern; +import lang::java::refactoring::forloop::EnhancedForLoopRefactorer; +import lang::java::analysis::ExceptionFinder; + import lang::java::util::ManageCompilationUnit; import lang::java::m3::M3Util; import lang::java::\syntax::Java18; @@ -55,7 +58,11 @@ public void refactorProjects(loc input, bool verbose = true) { case /DI/: executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorDiamond, "diamond"); case /AC/: executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorAnonymousInnerClass, "aic"); case /EP/: executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorExistPattern, "exist pattern"); - case /FP/: executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorFilterPattern, "filter pattern"); + case /FP/: executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorFilterPattern, "filter pattern"); + case /FUNC/: { + checkedExceptionClasses = findCheckedExceptions(projectFiles); + executeTransformations(projectFiles, toInt(projectDescriptor[3]), verbose, refactorForLoopToFunctional, "ForLoopToFunctional"); + } default: logMessage(" ... nothing to be done"); } } diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 16f0a92..3758cfc 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -11,9 +11,9 @@ import lang::java::refactoring::forloop::ForLoopToFunctional; import lang::java::refactoring::forloop::ClassFieldsFinder; import lang::java::refactoring::forloop::MethodVar; -private bool PRINT_DEBUG = true; +private bool PRINT_DEBUG = false; -private set[str] checkedExceptionClasses = {}; +public set[str] checkedExceptionClasses = {}; private set[MethodVar] currentClassFields = {}; @@ -21,6 +21,7 @@ private bool alreadyComputedClassFields = false; private int refactoredCount = 0; +// Method for debugging. Not used by driver public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { refactoredCount = 0; checkedExceptionClasses = checkedExceptions; @@ -28,7 +29,7 @@ public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { javaFileContent = readFile(fileLoc); try { unit = parse(#CompilationUnit, javaFileContent); - refactorEnhancedForStatements(unit); + refactorForLoopToFunctional(unit); } catch: continue; } @@ -36,7 +37,7 @@ public void forLoopToFunctional(list[loc] locs, set[str] checkedExceptions) { } // Losing formatting after a method is refactored. -public tuple[CompilationUnit unit, int occurrences] refactorEnhancedForStatements(CompilationUnit unit) { +public tuple[int occurrences, CompilationUnit unit] refactorForLoopToFunctional(CompilationUnit unit) { int occurrences = 0; alreadyComputedClassFields = false; CompilationUnit refactoredUnit = visit(unit) { @@ -53,7 +54,7 @@ public tuple[CompilationUnit unit, int occurrences] refactorEnhancedForStatemen } }; - return ; + return ; } // TODO What happens when two for statements are refactored inside the same method? From 6c52f69c345fe96258bd78b6abc5a2e1ade5fef8 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 23 Jun 2017 14:41:50 -0300 Subject: [PATCH 154/156] Avoiding, the max we can, to not modify other methods. - The transformations are mostly having identation problems. --- .../refactoring/forloop/EnhancedForLoopRefactorer.rsc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc index 3758cfc..03d2d1d 100644 --- a/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc +++ b/src/lang/java/refactoring/forloop/EnhancedForLoopRefactorer.rsc @@ -42,6 +42,8 @@ public tuple[int occurrences, CompilationUnit unit] refactorForLoopToFunctional( alreadyComputedClassFields = false; CompilationUnit refactoredUnit = visit(unit) { case (MethodDeclaration) ` `: { + refactoredCountBeforeCurrentMethod = refactoredCount; + MethodBody refactoredMethodBody = visit(mBody) { case MethodBody methodBody: { refactored = refactorEnhancedForStatementsInMethodBody(unit, methodHeader, methodBody); @@ -50,7 +52,11 @@ public tuple[int occurrences, CompilationUnit unit] refactorForLoopToFunctional( } }; - insert((MethodDeclaration) ` `); + // Avoiding adding extra blank spaces when method is not refactored. + // Not sure why, also not a big deal, but is annoying + methodWasRefactored = refactoredCountBeforeCurrentMethod != refactoredCount; + if (methodWasRefactored) + insert((MethodDeclaration) ` `); } }; From 16361f9958c461bc77274aa2327f05fc88bde296 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 23 Jun 2017 14:42:05 -0300 Subject: [PATCH 155/156] Fixing a typo in Driver's logs. --- src/Driver.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Driver.rsc b/src/Driver.rsc index 941d50e..a2a7c13 100644 --- a/src/Driver.rsc +++ b/src/Driver.rsc @@ -100,7 +100,7 @@ public void executeTransformations(list[loc] files, int percent, bool verbose, t int totalOfChangedFiles = exportResults(toApply, processedFiles, verbose, name); t1 = now(); logMessage("- Number of files: " + toString(size(files))); - logMessage("- Processed Filies: " + toString(size(processedFiles))); + logMessage("- Processed Files: " + toString(size(processedFiles))); logMessage("- Exported Files: " + toString(size(toApply))); logMessage("- Total of files changed: " + toString(totalOfChangedFiles)); logMessage("- Total of transformations: " + toString(totalOfTransformations)); From 0fbc73f997402c4ff314b708ef31db2d55810907 Mon Sep 17 00:00:00 2001 From: Diego Marcilio Date: Fri, 23 Jun 2017 14:51:17 -0300 Subject: [PATCH 156/156] Fixing ExceptionFinderTest --- src/lang/java/analysis/test/ExceptionFinderTest.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/java/analysis/test/ExceptionFinderTest.rsc b/src/lang/java/analysis/test/ExceptionFinderTest.rsc index bd07cc2..422db10 100644 --- a/src/lang/java/analysis/test/ExceptionFinderTest.rsc +++ b/src/lang/java/analysis/test/ExceptionFinderTest.rsc @@ -1,8 +1,8 @@ -module ExceptionFinderTest +module lang::java::analysis::\test::ExceptionFinderTest import lang::java::m3::M3Util; import IO; -import ExceptionFinder; +import lang::java::analysis::ExceptionFinder; private loc zipFile = |jar:///D:/exception-hierarchy.zip!|; private list[loc] javaClassesLocations = listAllJavaFiles(zipFile);