diff --git a/FlexPMD/language-module/parser/parser-impl/pom.xml b/FlexPMD/language-module/parser/parser-impl/pom.xml
index 6a9275b..3a9c0cb 100644
--- a/FlexPMD/language-module/parser/parser-impl/pom.xml
+++ b/FlexPMD/language-module/parser/parser-impl/pom.xml
@@ -44,9 +44,9 @@
         </dependency>
 
         <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.8.8</version>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractAs3ParserTestBase.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractAs3ParserTestBase.java
index 7bf16c3..a90eea0 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractAs3ParserTestBase.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractAs3ParserTestBase.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.IParserNode;
-import org.testng.annotations.BeforeMethod;
+import org.junit.Before;
 
 public abstract class AbstractAs3ParserTestBase {
 
@@ -65,7 +65,7 @@
     protected AS3Parser asp;
     protected AS3Scanner scn;
 
-    @BeforeMethod(alwaysRun = true)
+    @Before
     public void setUp() {
         asp = new AS3Parser(null);
         scn = asp.getScn();
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractStatementTestBase.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractStatementTestBase.java
index 4bf1dca..b80b0fc 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractStatementTestBase.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/AbstractStatementTestBase.java
@@ -16,7 +16,7 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
 
@@ -28,7 +28,7 @@
         scn.setLines(new String[] {input, "__END__"});
         asp.nextToken();
         final String result = new ASTToXMLConverter().convert(asp.parseStatement());
-        assertEquals(expected, result, message);
+        assertEquals(message, expected, result);
     }
 
 }
\ No newline at end of file
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NestedNodeTest.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NestedNodeTest.java
index 4d50d65..d1b5f2b 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NestedNodeTest.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NestedNodeTest.java
@@ -16,19 +16,19 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.NodeKind;
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
+import org.junit.Before;
+import org.junit.Test;
 
 public class NestedNodeTest extends AbstractAs3ParserTestBase {
 
     private NestedNode function;
 
     @Override
-    @BeforeMethod
+    @Before
     public void setUp() {
         super.setUp();
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NodeTest.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NodeTest.java
index ca59b93..624b0fa 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NodeTest.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/NodeTest.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class NodeTest extends AbstractAs3ParserTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Parser.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Parser.java
index 2860721..7d1f903 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Parser.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Parser.java
@@ -16,12 +16,12 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.IParserNode;
 import org.apache.flex.pmd.parser.exceptions.TokenException;
 import org.apache.flex.pmd.utils.FileUtils;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Scanner.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Scanner.java
index 5e930f3..4c43f46 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Scanner.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3Scanner.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.ast.Token;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestAS3Scanner extends AbstractAs3ParserTestBase {
 
@@ -304,8 +304,7 @@
     private void assertText(final String message,
                             final String text) {
         Token token = scn.nextToken();
-        assertEquals(text,
-                token.getText(), message);
+        assertEquals(message, text, token.getText());
     }
 
     private String join(final String[] lines,
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3ScannerWithFiles.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3ScannerWithFiles.java
index 2cd057f..6869626 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3ScannerWithFiles.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestAS3ScannerWithFiles.java
@@ -16,11 +16,12 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.ast.Token;
 import org.apache.flex.pmd.utils.FileUtils;
-import org.testng.annotations.Test;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import java.io.File;
 import java.io.IOException;
@@ -28,8 +29,8 @@
 
 public class TestAS3ScannerWithFiles extends AbstractAs3ParserTestBase {
 
-    @Test(enabled = false)
-    // Simple.as has the completely wrong structure ... have to fix this first.
+    @Test
+    @Ignore("Simple.as has the completely wrong structure ... have to fix this first.")
     public void testSimple() throws IOException,
             URISyntaxException {
         final String[] expected = new String[]
@@ -53,9 +54,9 @@
                         ";",
                         "}",
                         "}"};
-/*      assertFile( expected,
+      assertFile( expected,
                   "Simple.as" );
-*/
+
     }
 
     private void assertFile(final String[] expected,
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClass.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClass.java
index 600d6d2..8319194 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClass.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClass.java
@@ -16,7 +16,7 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClassContent.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClassContent.java
index 124c339..3b04ced 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClassContent.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestClassContent.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestClassContent extends AbstractAs3ParserTestBase {
 
@@ -270,7 +270,7 @@
         asp.nextToken(); // first call
         asp.nextToken(); // skip {
         final String result = new ASTToXMLConverter().convert(asp.parseClassContent());
-        assertEquals("<content line=\"2\">" + expected + "</content>", result, message);
+        assertEquals(message, "<content line=\"2\">" + expected + "</content>", result);
     }
 
     private void assertClassContent(final String message,
@@ -280,6 +280,6 @@
         asp.nextToken(); // first call
         asp.nextToken(); // skip {
         final String result = new ASTToXMLConverter().convert(asp.parseClassContent());
-        assertEquals("<content line=\"2\">" + expected + "</content>", result, message);
+        assertEquals(message, "<content line=\"2\">" + expected + "</content>", result);
     }
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestCompilationUnit.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestCompilationUnit.java
index a59d9c3..99ad0f0 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestCompilationUnit.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestCompilationUnit.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestCompilationUnit extends AbstractAs3ParserTestBase {
 
@@ -79,6 +79,6 @@
                 {input,
                         "__END__"});
         final String result = new ASTToXMLConverter().convert(asp.parseCompilationUnit());
-        assertEquals(expected, result, message);
+        assertEquals(message, expected, result);
     }
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestConstStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestConstStatement.java
index 5743275..e2fd635 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestConstStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestConstStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestConstStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestDoStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestDoStatement.java
index d650f0a..11f03fe 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestDoStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestDoStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestDoStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestE4xExpression.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestE4xExpression.java
index 3ad142a..2449082 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestE4xExpression.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestE4xExpression.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestE4xExpression extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestEmptyStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestEmptyStatement.java
index 454744a..04a1c73 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestEmptyStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestEmptyStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestEmptyStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestExpression.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestExpression.java
index bda05e8..c77aebb 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestExpression.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestExpression.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestExpression extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestForStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestForStatement.java
index 8560c13..2be367b 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestForStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestForStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestForStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestIfStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestIfStatement.java
index 06c2f7f..04f36d6 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestIfStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestIfStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestIfStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterface.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterface.java
index cf27b05..43fdd9a 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterface.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterface.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestInterface extends AbstractAs3ParserTestBase {
 
@@ -66,7 +66,7 @@
         asp.nextToken(); // first call
         asp.nextToken(); // skip {
         final String result = new ASTToXMLConverter().convert(asp.parsePackageContent());
-        assertEquals(expected, result, message);
+        assertEquals(message, expected, result);
     }
 
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterfaceContent.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterfaceContent.java
index ea99d9b..db2fe8e 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterfaceContent.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestInterfaceContent.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestInterfaceContent extends AbstractAs3ParserTestBase {
 
@@ -83,6 +83,6 @@
         asp.nextToken(); // first call
         asp.nextToken(); // skip {
         final String result = new ASTToXMLConverter().convert(asp.parseInterfaceContent());
-        assertEquals("<content line=\"2\">" + expected + "</content>", result, message);
+        assertEquals(message, "<content line=\"2\">" + expected + "</content>", result);
     }
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPackageContent.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPackageContent.java
index 224a0dd..230ec1d 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPackageContent.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPackageContent.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestPackageContent extends AbstractAs3ParserTestBase {
 
@@ -199,6 +199,6 @@
         asp.nextToken(); // first call
         asp.nextToken(); // skip {
         final String result = new ASTToXMLConverter().convert(asp.parsePackageContent());
-        assertEquals(expected, result, message);
+        assertEquals(message, expected, result);
     }
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPrimaryExpression.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPrimaryExpression.java
index 81a8730..28b1ef2 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPrimaryExpression.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestPrimaryExpression.java
@@ -16,10 +16,10 @@
  */
 package org.apache.flex.pmd.parser.impl;
 
-import static org.testng.Assert.*;
+import static org.junit.Assert.*;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestPrimaryExpression extends AbstractAs3ParserTestBase {
 
@@ -96,7 +96,7 @@
                         "__END__"});
         asp.nextToken();
         final String result = new ASTToXMLConverter().convert(asp.parsePrimaryExpression());
-        assertEquals("<primary line=\"1\">" + expected + "</primary>", result, "unexpected");
+        assertEquals("unexpected", "<primary line=\"1\">" + expected + "</primary>", result);
     }
 
 }
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestReturnStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestReturnStatement.java
index 8110a05..2050d6f 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestReturnStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestReturnStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestReturnStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestSwitchStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestSwitchStatement.java
index 284cc6b..919d630 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestSwitchStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestSwitchStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestSwitchStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestTryCatchFinallyStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestTryCatchFinallyStatement.java
index 190f129..4f3d332 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestTryCatchFinallyStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestTryCatchFinallyStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestTryCatchFinallyStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestUnaryExpression.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestUnaryExpression.java
index 5cc2b01..1f1d5b1 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestUnaryExpression.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestUnaryExpression.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestUnaryExpression extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestVarStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestVarStatement.java
index 325ed06..b18ebff 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestVarStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestVarStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestVarStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestWhileStatement.java b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestWhileStatement.java
index 6cd12dc..db4f6ac 100644
--- a/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestWhileStatement.java
+++ b/FlexPMD/language-module/parser/parser-impl/src/test/java/org/apache/flex/pmd/parser/impl/TestWhileStatement.java
@@ -17,7 +17,7 @@
 package org.apache.flex.pmd.parser.impl;
 
 import org.apache.flex.pmd.parser.exceptions.TokenException;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public class TestWhileStatement extends AbstractStatementTestBase {
 
diff --git a/FlexPMD/language-module/pmd-flex/pom.xml b/FlexPMD/language-module/pmd-flex/pom.xml
index 15e2676..3164f05 100644
--- a/FlexPMD/language-module/pmd-flex/pom.xml
+++ b/FlexPMD/language-module/pmd-flex/pom.xml
@@ -43,6 +43,12 @@
             <artifactId>parser-impl</artifactId>
             <version>2.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.flex.pmd.ruleset</groupId>
+            <artifactId>ruleset-flex-basic</artifactId>
+            <version>2.0.0-SNAPSHOT</version>
+        </dependency>
+
 
         <dependency>
             <groupId>net.sourceforge.pmd</groupId>
@@ -50,6 +56,12 @@
             <version>${pmd.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/FlexPMD/language-module/pmd-flex/src/test/java/org/apache/flex/pmd/rule/BasicTest.java b/FlexPMD/language-module/pmd-flex/src/test/java/org/apache/flex/pmd/rule/BasicTest.java
index 8d21143..6d2ce33 100644
--- a/FlexPMD/language-module/pmd-flex/src/test/java/org/apache/flex/pmd/rule/BasicTest.java
+++ b/FlexPMD/language-module/pmd-flex/src/test/java/org/apache/flex/pmd/rule/BasicTest.java
@@ -5,12 +5,13 @@
 /**
  * Created by christoferdutz on 06.03.15.
  */
-public class BasicTest extends SimpleAggregatorTst {
+public class BasicTest /*extends SimpleAggregatorTst*/ {
 
-    private static final String RULESET = "flex-basic";
+    private static final String RULESET = "flex-architecture";
 
-    @Override
+    /*@Override
     protected void setUp() {
-//        addRule(RULESET, "simpletest");
-    }
+        addRule(RULESET, "ViewComponentReferencedInModelRule");
+    }*/
+
 }
diff --git a/FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/simpletest.xml b/FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/ViewComponentReferencedInModelRule.xml
similarity index 94%
rename from FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/simpletest.xml
rename to FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/ViewComponentReferencedInModelRule.xml
index 2cf2f0b..e18e0d0 100644
--- a/FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/simpletest.xml
+++ b/FlexPMD/language-module/pmd-flex/src/test/resources/org/apache/flex/pmd/rule/xml/ViewComponentReferencedInModelRule.xml
@@ -60,7 +60,7 @@
 
     <test-code>
         <description>Simple method</description>
-        <rule-property name="reportLevel">1</rule-property>
+        <!--rule-property name="reportLevel">1</rule-property-->
         <expected-problems>2</expected-problems>
         <expected-messages>
             <message>The class 'Foo' has a Cyclomatic Complexity of 2 (Highest = 1).</message>
@@ -74,7 +74,7 @@
     </test-code>
     <test-code>
         <description>testLessComplicatedThanReportLevel</description>
-        <rule-property name="reportLevel">10</rule-property>
+        <!--rule-property name="reportLevel">10</rule-property-->
         <expected-problems>0</expected-problems>
         <code><![CDATA[
 public class Foo {
@@ -84,7 +84,7 @@
     </test-code>
     <test-code>
         <description>Complicated method</description>
-        <rule-property name="reportLevel">10</rule-property>
+        <!--rule-property name="reportLevel">10</rule-property-->
         <expected-problems>2</expected-problems>
         <expected-messages>
             <message>The class 'Foo' has a Cyclomatic Complexity of 12 (Highest = 11).</message>
@@ -94,7 +94,7 @@
     </test-code>
     <test-code>
         <description>Constructor</description>
-        <rule-property name="reportLevel">1</rule-property>
+        <!--rule-property name="reportLevel">1</rule-property-->
         <expected-problems>2</expected-problems>
         <expected-messages>
             <message>The class 'Foo' has a Cyclomatic Complexity of 2 (Highest = 1).</message>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/pom.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/pom.xml
index b60a384..330d387 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/pom.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/pom.xml
@@ -45,9 +45,9 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.8.8</version>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/architecture.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/architecture.xml
index 2b7776b..3cc0157 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/architecture.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/architecture.xml
@@ -27,9 +27,10 @@
       The Architecture ruleset contains a collection of good practices around architecture.
 	</description>
 	
-	<rule class="com.adobe.ac.pmd.rules.architecture.ViewComponentReferencedInModelRule"
-		message="A view component should not be referenced in a model class"
-        language="flex">
+	<rule name="ViewComponentReferencedInModelRule"
+          class="org.apache.flex.pmd.rules.architecture.ViewComponentReferencedInModelRule"
+          message="A view component should not be referenced in a model class"
+          language="flex">
 		<description></description>
 		<priority>3</priority>
 		<example>
@@ -44,14 +45,18 @@
       </example>
 	</rule>
 
-	<rule class="org.apache.flex.pmd.rules.architecture.MonkeyPatchingRule"
-		message="This class looks to be duplicated with a SDK class">
+	<rule name="MonkeyPatchingRule"
+          class="org.apache.flex.pmd.rules.architecture.MonkeyPatchingRule"
+          message="This class looks to be duplicated with a SDK class"
+          language="flex">
 		<description>Monkey patching can be a risky undertaking because it is not using intended extensibility points and thus may have unintended consequences or make migration to newer versions of the SDK more difficult</description>
 		<priority>1</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.architecture.UseInternalClassOutsideApiClass"
-		message="This class imports an internal class ({0}) from another function area ({1})">
+	<rule name="UseInternalClassOutsideApiClass"
+          class="org.apache.flex.pmd.rules.architecture.UseInternalClassOutsideApiClass"
+          message="This class imports an internal class ({0}) from another function area ({1})"
+          language="flex">
 		<description>If you have different functionalities, you probably don't want every class of each to be accessible from any other functional areas.
 So you probably want to use this packaging:
 [org].[project].func1.api
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/asdocs.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/asdocs.xml
index fca2dee..ebb4e4b 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/asdocs.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/asdocs.xml
@@ -29,19 +29,19 @@
     </description>
     
 	<rule 
-		class="com.adobe.ac.pmd.rules.asdocs.AttributeAsDocMissingRule"
+		class="org.apache.flex.pmd.rules.asdocs.AttributeAsDocMissingRule"
 		message="This attribute ({0}) should be documented with AsDocs.">
 		<priority>3</priority>
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.asdocs.ClassAsDocMissingRule"
+		class="org.apache.flex.pmd.rules.asdocs.ClassAsDocMissingRule"
 		message="This class ({0}) should be documented with AsDocs.">
 		<priority>3</priority>
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.asdocs.MethodAsDocMissingRule"
+		class="org.apache.flex.pmd.rules.asdocs.MethodAsDocMissingRule"
 		message="This method ({0}) should be documented with AsDocs.">
 		<priority>3</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/basic_mxml.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/basic_mxml.xml
index 1378fc7..0b7e643 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/basic_mxml.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/basic_mxml.xml
@@ -27,17 +27,17 @@
       The Basic MXML Ruleset contains a collection of good practices which everyone should follow.
     </description>
 
-	<rule class="com.adobe.ac.pmd.rules.mxml.MoreThanOneEntryPointInMxmlRule"
+	<rule class="org.apache.flex.pmd.rules.mxml.MoreThanOneEntryPointInMxmlRule"
 		message="There is more than 1 public variable in this MXML component">
 		<priority>5</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.mxml.MoreThanTwoEntryPointsInMxmlRule"
+	<rule class="org.apache.flex.pmd.rules.mxml.MoreThanTwoEntryPointsInMxmlRule"
 		message="There are more than 2 public variables in this MXML component">
 		<priority>3</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.mxml.TooLongScriptBlockRule"
+	<rule class="org.apache.flex.pmd.rules.mxml.TooLongScriptBlockRule"
 		message="This script block is too long ({0} maximum, but {1} actually)">
 		<priority>3</priority>
 		<properties>
@@ -47,13 +47,13 @@
 		</properties>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.mxml.CodeBehindInMxmlRule"
+	<rule class="org.apache.flex.pmd.rules.mxml.CodeBehindInMxmlRule"
 		message="Avoid using code behind files">
 		<description>Code behind files are tightly coupled with the view, not unit-testable, not easy to navigate the code code base and not reusable. Try using presentation model pattern, or observer pattern</description>
 		<priority>5</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.mxml.TooManyStatesInMxmlRule"
+	<rule class="org.apache.flex.pmd.rules.mxml.TooManyStatesInMxmlRule"
 	message="Having too many states does not help visibility. Try to refactor this view component.">
 		<priority>3</priority>
 		<properties>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/binding.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/binding.xml
index a2c2b43..d617724 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/binding.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/binding.xml
@@ -27,7 +27,7 @@
       The Binding ruleset contains a collection of good practices around usage of binding.
 	</description>
 
-	<rule class="com.adobe.ac.pmd.rules.binding.BindingUtilsRule"
+	<rule class="org.apache.flex.pmd.rules.binding.BindingUtilsRule"
 		message="BindingUtils class uses hard coded strings, which won't be picked up by the compiler if you rename this attribute. You should probably consider refactoring using events">
 		<description></description>
 		<priority>1</priority>
@@ -42,7 +42,7 @@
       	 </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.binding.ChangeWatcherRule"
+	<rule class="org.apache.flex.pmd.rules.binding.ChangeWatcherRule"
 		message="ChangeWatcher class uses hard coded strings to specify the attribute name, to listen to. Prefer listening to events or setters">
 		<priority>1</priority>
 		<example>
@@ -53,7 +53,7 @@
 		</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.binding.TooLongBindingExpressionRule"
+	<rule class="org.apache.flex.pmd.rules.binding.TooLongBindingExpressionRule"
 		message="This binding expression is too long ({0} dots maximum, but {1} actually)">
 		<description>A Binding expression is executed as soon as one of the bindable attributes changed. If a binding expression contains too many expression, there could be some performance issue.</description>
 		<priority>3</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/cairngorm.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/cairngorm.xml
index 6083ba0..0353fb7 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/cairngorm.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/cairngorm.xml
@@ -26,7 +26,7 @@
       The Cairngorm Ruleset contains a collection of good practices related to Cairngorm.
     </description>
     
-	<rule class="com.adobe.ac.pmd.rules.cairngorm.BindableModelLocatorRule"
+	<rule class="org.apache.flex.pmd.rules.cairngorm.BindableModelLocatorRule"
 		message="A modelLocator must not be Bindable at a class level">
 		<description>A bindable ModelLocator could leads to performance issues due to bindings</description>
 		<priority>1</priority>
@@ -39,7 +39,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.cairngorm.ReferenceModelLocatorOutsideTheMainApplicationRule"
+		class="org.apache.flex.pmd.rules.cairngorm.ReferenceModelLocatorOutsideTheMainApplicationRule"
 		message="The ModelLocator should be only accessible from the main application file">
 		<description>The ModelLocator should be only accessible from the main application file. Then sub-models should be injected to the nested views.</description>
 		<priority>3</priority>
@@ -55,7 +55,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.cairngorm.FatControllerRule"
+	<rule class="org.apache.flex.pmd.rules.cairngorm.FatControllerRule"
 		message="A FrontController must nor add all its commands within the Controller constructor">
 		<description>Try split them into methods where you add commands depending on their functional area.</description>
 		<priority>3</priority>
@@ -88,7 +88,7 @@
 	</rule>
 
 	<rule
-		class="com.adobe.ac.pmd.rules.cairngorm.BadCairngormEventNameFormatRule"
+		class="org.apache.flex.pmd.rules.cairngorm.BadCairngormEventNameFormatRule"
 		message="A Cairngorm event name should contain the function area name before the actual event name">
 		<description>You would have something like 'productManagement.getProducts' as an event name.</description>
 		<priority>3</priority>
@@ -113,7 +113,7 @@
        </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.cairngorm.CairngormEventDispatcherCallExplicitlyRule"
+	<rule class="org.apache.flex.pmd.rules.cairngorm.CairngormEventDispatcherCallExplicitlyRule"
 		  message="CairngormEventDispatcher is called explicitly. {0}">
 		  <priority>3</priority>
 		  <example>
@@ -127,7 +127,7 @@
 		  </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.cairngorm.ModelLocatorReferencedMoreThanOncePerClassRule"
+	<rule class="org.apache.flex.pmd.rules.cairngorm.ModelLocatorReferencedMoreThanOncePerClassRule"
 		message="Only one reference of ModelLocator is allowed per class">
 		<priority>3</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/component.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/component.xml
index b851ac5..b2928f6 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/component.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/component.xml
@@ -28,14 +28,14 @@
    </description>
    
 	<rule
-		class="com.adobe.ac.pmd.rules.component.UpdateChildrenNumberInUpdateDisplayListRule"
+		class="org.apache.flex.pmd.rules.component.UpdateChildrenNumberInUpdateDisplayListRule"
 		message="Flex specific - Do not add or remove displayable children from updateDisplayList">
 		<description>UpdateDisplayList is called everytime a child is invalidated. So calling addChild or removeChild in this function could be really CPU consuming</description>
 		<priority>1</priority>
 		<example></example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.component.CallLaterDirectlyRule"
+	<rule class="org.apache.flex.pmd.rules.component.CallLaterDirectlyRule"
 		message="Flex specific - Don't call 'callLater' explicitly">
 		<description>If you needed to call 'callLater' explicitly, then you probably did not extend the correct component life cycle.</description>
 		<priority>1</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/css.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/css.xml
index 89d8597..abbf837 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/css.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/css.xml
@@ -28,13 +28,13 @@
 		styling.
     </description>
     
-	<rule class="com.adobe.ac.pmd.rules.css.StyleBlockInMxmlRule"
+	<rule class="org.apache.flex.pmd.rules.css.StyleBlockInMxmlRule"
 		message="The style block is embed in the MXML file">
 		<description>It is not a good practice to embed style blocks inside the MXML component. Prefer using external CSS files.</description>
 		<priority>3</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.css.UseCssInsteadOfEmbedMetaDataRule"
+	<rule class="org.apache.flex.pmd.rules.css.UseCssInsteadOfEmbedMetaDataRule"
 		message="Embed metadata detected in source code where a stylesheet may be cleaner">
 		<priority>5</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/empty.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/empty.xml
index f747c0d..de15067 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/empty.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/empty.xml
@@ -27,7 +27,7 @@
       The Empty ruleset contains a collection of rules detecting empty statements.
 	</description>
 	
-	<rule class="com.adobe.ac.pmd.rules.empty.EmptyCatchStatementRule"
+	<rule class="org.apache.flex.pmd.rules.empty.EmptyCatchStatementRule"
 		message="This catch statement is empty">
 		<priority>3</priority>
 		<example>
@@ -46,7 +46,7 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.empty.EmptyIfStmtRule"
+	<rule class="org.apache.flex.pmd.rules.empty.EmptyIfStmtRule"
 		message="No statements in this if statement">
 		<description>Empty If Statement finds instances where a condition is checked but nothing is done about it. </description>
 		<priority>3</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/event.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/event.xml
index 6213052..a1f1191 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/event.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/event.xml
@@ -27,7 +27,7 @@
       The Event ruleset contains a collection of rules related to event bad practices.
 	</description>
 	
-	<rule class="com.adobe.ac.pmd.rules.event.EventMissingCloneFunctionRule"
+	<rule class="org.apache.flex.pmd.rules.event.EventMissingCloneFunctionRule"
 		message="The clone event must be overiden in a custom event">
 		<description>When creating your own custom Event class, you must override the inherited Event.clone() method in order for it to duplicate the properties of your custom class. If you do not set all the properties that you add in your event subclass, those properties will not have the correct values when the event is cloned. This is important because the Flex SDK clones events whenever redispatching takes place. </description>
 		<priority>1</priority>
@@ -44,7 +44,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.event.PublicVariableInCustomEventRule"
+		class="org.apache.flex.pmd.rules.event.PublicVariableInCustomEventRule"
 		message="No public variables should be inside a custom event. This variable ({0}) is public">
 		<description>In order to improve encapsulation in your custom event, it is better not to have public variable in your event. Prefer having read-only attributes, set by the event constructor.</description>
 		<priority>3</priority>
@@ -61,7 +61,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.event.ConstructorDispatchingEventRule"
+		class="org.apache.flex.pmd.rules.event.ConstructorDispatchingEventRule"
 		message="An event is dispatched in a constructor">
 		<description>This is pointless, since event listeners cannot be attached to an object before it has been constructed, so nothing can ever hear the event</description>
 		<priority>1</priority>
@@ -75,7 +75,7 @@
 }
 		</example>
 	</rule>
-	<rule class="com.adobe.ac.pmd.rules.event.DefaultEventNameRule"
+	<rule class="org.apache.flex.pmd.rules.event.DefaultEventNameRule"
 		message="Event name should be set explicitly">
 		<priority>3</priority>
 		<example>
@@ -89,7 +89,7 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.event.DispatchHardCodedEventNameRule"
+	<rule class="org.apache.flex.pmd.rules.event.DispatchHardCodedEventNameRule"
 		message="DispatchEvent function must dispatch constant strings">
 		<description>You should not dispatch a plain string. If you rename this string, you need to replace the string listener as well. Use constants instead</description>
 		<priority>1</priority>
@@ -105,7 +105,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.event.ListenForHardCodedEventNameRule"
+		class="org.apache.flex.pmd.rules.event.ListenForHardCodedEventNameRule"
 		message="addEventListener must not contain hard coded strings">
 		<description>You should not listen for a plain string. If you rename this string, you need to replace the string listener as well. Use constants instead</description>
 		<priority>1</priority>
@@ -121,7 +121,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.event.UnboundTypeInMetadataRule"
+		class="org.apache.flex.pmd.rules.event.UnboundTypeInMetadataRule"
 		message="This type ({0}) was not found within the scope against which PMD was run">
 		<priority>1</priority>
 		<example>
@@ -133,7 +133,7 @@
 	</rule>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.event.UntypedEventMetadataRule"
+		class="org.apache.flex.pmd.rules.event.UntypedEventMetadataRule"
 		message="This event type is not specified">
 		<description>Specifying a type will allow Flash builder and the class to have this event exposed in its API</description>
 		<priority>3</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/flexunit.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/flexunit.xml
index 9649ceb..0c7eee9 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/flexunit.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/flexunit.xml
@@ -27,7 +27,7 @@
       The FlexUnit Ruleset contains a collection of good practices related to FlexUnit (1 and 4).
     </description>
     
-	<rule class="com.adobe.ac.pmd.rules.flexunit.EmptyUnitTest"
+	<rule class="org.apache.flex.pmd.rules.flexunit.EmptyUnitTest"
 		message="A test should contain at least one assertion">
 		<priority>3</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/indentation.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/indentation.xml
index 0ca4684..6df1f62 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/indentation.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/indentation.xml
@@ -25,7 +25,7 @@
 	
 	<description/>
 	
-	<rule class="com.adobe.ac.pmd.rules.style.TabUsedAsIndentorRule" message="Tabulations are not accepted for indentation. Please use spaces instead.">
+	<rule class="org.apache.flex.pmd.rules.style.TabUsedAsIndentorRule" message="Tabulations are not accepted for indentation. Please use spaces instead.">
 		<priority>3</priority>
 	</rule>
 		
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/maintanability.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/maintanability.xml
index 6f7ca5c..605edec 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/maintanability.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/maintanability.xml
@@ -27,16 +27,16 @@
       The Maintanability ruleset contains a collection of good practices around Maintanability.
 	</description>
 	
-	<rule since="1.1" class="com.adobe.ac.pmd.rules.maintanability.OnlyOneReturnRule" message="A method should have only one exit point, and that should be the last statement in the method">
+	<rule since="1.1" class="org.apache.flex.pmd.rules.maintanability.OnlyOneReturnRule" message="A method should have only one exit point, and that should be the last statement in the method">
 		<priority>3</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.maintanability.AlertShowRule" message="Do not call Alert.show directly">
+	<rule class="org.apache.flex.pmd.rules.maintanability.AlertShowRule" message="Do not call Alert.show directly">
 		<description>You should not Alert.show() directly. If an error occurred in the system, you should probably use an ErrorManager to have a consistent way to manage those errors.</description>
 		<priority>1</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.ExcessiveImportRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.ExcessiveImportRule"
 		message="A high number of imports can indicate a high degree of coupling within an object. ({0} maximum but {1} actually)">
 		<description>A high number of imports can indicate a high degree of coupling within an object. Rule counts the number of unique imports and reports a violation if the count is above the user defined threshold.</description>
 		<priority>3</priority>
@@ -58,7 +58,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.TrueFalseConditionRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.TrueFalseConditionRule"
 		message="This test contains a hard coded boolean value. You could remove it by having '{0}'">
 		<priority>3</priority>
 		<example>
@@ -71,12 +71,12 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.AvoidUsingPublicStaticFieldRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.AvoidUsingPublicStaticFieldRule"
 	message="If this field ({0}) was meant to be a constant, make it constant. Otherwise, if it is used as a global variable, you may want to redesign this class">
 		<priority>3</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.DynamicClassRule" message="A class must not be dynamic">
+	<rule class="org.apache.flex.pmd.rules.maintanability.DynamicClassRule" message="A class must not be dynamic">
 		<description>When using dynamic classes, you cannot control how the developer will use your class. It makes refactoring really difficult</description>
 		<priority>1</priority>
 		<example>
@@ -86,7 +86,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
 		message="Do not use Object class">
 		<description>It is a bad practice to use the dynamic class Object. Prefer using strongly typed object, or marker interface in order to avoid silent compilation errors while refactoring</description>
 		<priority>1</priority>
@@ -98,7 +98,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseDictionaryTypeRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseDictionaryTypeRule"
 		message="Do not use Dictionnary class">
 		<description>It is a bad practice to use the dynamic class Dictionary. Prefer using strongly typed object, or marker interface in order to avoid silent compilation errors while refactoring</description>
 		<priority>1</priority>
@@ -110,7 +110,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.NonStaticConstantFieldRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.NonStaticConstantFieldRule"
 		message="A constant field should be static ({0})">
 		<description>
       </description>
@@ -123,7 +123,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
 		message="Use strongly typed objects instead of *">
 		<description></description>
 		<priority>1</priority>
@@ -135,7 +135,7 @@
         </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.UselessOverridenFunctionRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.UselessOverridenFunctionRule"
 		message="This method is empty. This should be removed ({0})">
 		<description>This function is not needed.</description>
 		<priority>3</priority>
@@ -147,7 +147,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.AvoidProtectedFieldInFinalClassRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.AvoidProtectedFieldInFinalClassRule"
 		message="Protected accessors are useless in a final class. Make it private ({0})">
 		<priority>3</priority>
 		<example>
@@ -158,12 +158,12 @@
         </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.AvoidUsingWithKeyWordRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.AvoidUsingWithKeyWordRule"
 		message="You should not use the with keyword. It does not help readability">
 		<priority>3</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.ArrayFieldWithNoArrayElementTypeRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.ArrayFieldWithNoArrayElementTypeRule"
 		message="ArrayElementType metadata is not specified for this array-type field ({0})">
 		<description>
         </description>
@@ -178,7 +178,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.ClassAndExtensionAreIdenticalRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.ClassAndExtensionAreIdenticalRule"
 		message="The extension name is the same as the class name">
 		<description/>
 		<priority>3</priority>
@@ -192,7 +192,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.ProtectedStaticMethodRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.ProtectedStaticMethodRule"
 		message="This method ({0}) should be private">
 		<description/>
 		<priority>3</priority>
@@ -203,7 +203,7 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.EmptyStatementRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.EmptyStatementRule"
 		message="This statement is empty">
 		<description/>
 		<priority>5</priority>
@@ -217,7 +217,7 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.maintanability.ReferenceToVariableBindingFromItsInitializerRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.ReferenceToVariableBindingFromItsInitializerRule"
 		message="The initializer refers to its variable. Its value will be null.">
 		<priority>1</priority>
 		<example>
@@ -230,7 +230,7 @@
 } 		
 		</example>
 	</rule>
-	<rule class="com.adobe.ac.pmd.rules.maintanability.AvoidUseOfAsKeywordRule"
+	<rule class="org.apache.flex.pmd.rules.maintanability.AvoidUseOfAsKeywordRule"
 		message="Enforce that as is not used (silently ignores the cast and nulls the property when the type is wrong)">
 		<priority>5</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/multitouch.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/multitouch.xml
index c1a82dd..a43894e 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/multitouch.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/multitouch.xml
@@ -27,12 +27,12 @@
       The MultiTouch ruleset contains a collection of good practices when developping multitouch applications.
 	</description>
 	
-	<rule since="1.2" class="com.adobe.ac.pmd.rules.multiscreen.AvoidRollMouseEventRule" 
+	<rule since="1.2" class="org.apache.flex.pmd.rules.multiscreen.AvoidRollMouseEventRule"
 			message="Roll mouse events are not getting caught by a multi-touch device.">
 		<priority>1</priority>
 	</rule>
 
-	<rule since="1.2" class="com.adobe.ac.pmd.rules.multiscreen.AvoidTooltipRule" 
+	<rule since="1.2" class="org.apache.flex.pmd.rules.multiscreen.AvoidTooltipRule"
 			message="Tooltip cannot be visible on a multi-touch device.">
 		<priority>1</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/naming.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/naming.xml
index 4a94511..9bdead0 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/naming.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/naming.xml
@@ -27,7 +27,7 @@
       The Basic As3 Ruleset contains a collection of good practices which everyone should follow.
   </description>
   
-	<rule class="com.adobe.ac.pmd.rules.naming.TooShortVariableRule"
+	<rule class="org.apache.flex.pmd.rules.naming.TooShortVariableRule"
 		message="This variable name is too short ({0} characters minimum, but {1} actually)">
 		<description>Detects when a field, local, or parameter has a very short name.</description>
 		<priority>5</priority>
@@ -49,7 +49,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.naming.PackageCaseRule"
+	<rule class="org.apache.flex.pmd.rules.naming.PackageCaseRule"
 		message="A package name should be lower case ({0})">
 		<description>Detects when a package definition contains upper case characters.</description>
 		<priority>3</priority>
@@ -65,7 +65,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.naming.VariableNameEndingWithNumericRule"
+	<rule class="org.apache.flex.pmd.rules.naming.VariableNameEndingWithNumericRule"
 		message="Using digits at the end of a symbol does not help understanging the meaning of it. ({0})">
 		<priority>3</priority>
 		<example>
@@ -78,7 +78,7 @@
 		</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.naming.PropertyHiddenByLocalVariableRule"
+	<rule class="org.apache.flex.pmd.rules.naming.PropertyHiddenByLocalVariableRule"
 		message="A class property is hidden by this local variable ({0})">
 		<priority>3</priority>
 		<example>
@@ -94,7 +94,7 @@
 		</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.IncorrectClassCase"
+	<rule class="org.apache.flex.pmd.rules.naming.IncorrectClassCase"
 		message="A class name must start by an uppercase character">
 		<description></description>
 		<priority>3</priority>
@@ -105,7 +105,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.WronglyNamedVariableRule"
+	<rule class="org.apache.flex.pmd.rules.naming.WronglyNamedVariableRule"
 		message="This variable ({0}) seems to be incorrectly named. Let your creativity flow">
 		<priority>3</priority>	
 		<example>
@@ -123,22 +123,22 @@
 		</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.BooleanAttributeShouldContainIsHasRule"
+	<rule class="org.apache.flex.pmd.rules.naming.BooleanAttributeShouldContainIsHasRule"
 		message="Differentiate the Boolean variables from other variable types ({0}); for example: canAnimate, isConnected, or hasChildren.">
 		<priority>5</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.naming.CapitalizeConstantsRule"
+	<rule class="org.apache.flex.pmd.rules.naming.CapitalizeConstantsRule"
 		message="Constant variables should be in all CAPS with each word separated by an underscore ({0})">
 		<priority>3</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.InterfaceNamingRule"
+	<rule class="org.apache.flex.pmd.rules.naming.InterfaceNamingRule"
 		message="Interface name should start with I">
 		<priority>1</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.TooLongFunctionNameRule"
+	<rule class="org.apache.flex.pmd.rules.naming.TooLongFunctionNameRule"
 		message="This function name ({0}) is too long ({1} characters minimum, but {2} actually)">
 		<priority>5</priority>
 		<properties>
@@ -148,7 +148,7 @@
 		</properties>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.naming.IncorrectEventHandlerNameRule"
+	<rule class="org.apache.flex.pmd.rules.naming.IncorrectEventHandlerNameRule"
 		message="This event handler name ({0}) is not correct. You should use [{1}] as prefix and [{2}] as suffix">
 		<priority>5</priority>
 		<properties>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/parsley.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/parsley.xml
index 1afd3c9..8803727 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/parsley.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/parsley.xml
@@ -29,7 +29,7 @@
     </description>
     
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.InaccessibleMetaDataRule"
+		class="org.apache.flex.pmd.rules.parsley.InaccessibleMetaDataRule"
 		message="Parsley metadata should not be placed on inaccessible members.">
 		<description>Parsley can only process metadata that is placed onto public members.</description>
 		<priority>1</priority>
@@ -42,7 +42,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.MismatchedManagedEventRule"
+		class="org.apache.flex.pmd.rules.parsley.MismatchedManagedEventRule"
 		message="Managed events should have matching [Event] metadata">
 		<description>Each managed event should have matching [Event] metadata.</description>
 		<priority>1</priority>
@@ -56,7 +56,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.MessageInterceptorSignatureRule"
+		class="org.apache.flex.pmd.rules.parsley.MessageInterceptorSignatureRule"
 		message="The signature of the message interceptor {0} is not correct. {1}.">
 		<description></description>
 		<priority>1</priority>
@@ -87,7 +87,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.MisplacedMetaDataRule"
+		class="org.apache.flex.pmd.rules.parsley.MisplacedMetaDataRule"
 		message="This metadata {0} is misplaced">
 		<description></description>
 		<priority>1</priority>
@@ -96,7 +96,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.RedundantMessageHandlerTypeAttributeRule"
+		class="org.apache.flex.pmd.rules.parsley.RedundantMessageHandlerTypeAttributeRule"
 		message="This type metadata argument is redundant with the handler argument type">
 		<description></description>
 		<priority>3</priority>
@@ -111,7 +111,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.RedundantMethodAttributeRule"
+		class="org.apache.flex.pmd.rules.parsley.RedundantMethodAttributeRule"
 		message="This method metadata argument is redundant with the handler name">
 		<priority>3</priority>
 		<example> <![CDATA[
@@ -124,7 +124,7 @@
 	</rule>
 
 	<rule 
-		class="com.adobe.ac.pmd.rules.parsley.UnknownMetaDataAttributeRule"
+		class="org.apache.flex.pmd.rules.parsley.UnknownMetaDataAttributeRule"
 		message="This metadata attribute {0} is unknown">
 		<description></description>
 		<priority>1</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/performance.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/performance.xml
index ed46d9b..08e41e8 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/performance.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/performance.xml
@@ -27,7 +27,7 @@
       This Ruleset contains a collection of good practices related to the performance (CPU and memory).
   </description>
   
-	<rule class="com.adobe.ac.pmd.rules.performance.DynamicFiltersUsedInPopup"
+	<rule class="org.apache.flex.pmd.rules.performance.DynamicFiltersUsedInPopup"
 		message="A popup should not use dynamic filters">
 		<description>Prefer using embed filters in assets</description>
 		<priority>3</priority>
@@ -35,7 +35,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.performance.CyclomaticComplexityRule"
+	<rule class="org.apache.flex.pmd.rules.performance.CyclomaticComplexityRule"
 		message="This method is too complex. Maximum complexity is {0}, but its cyclomatic complexity was {1}">
 		<priority>3</priority>
 		<properties>
@@ -45,23 +45,23 @@
 		</properties>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.performance.HeavyConstructorRule"
+	<rule class="org.apache.flex.pmd.rules.performance.HeavyConstructorRule"
 		message="Constructor must be as lightweight as possible. No control statement allowed, whereas a cyclomatic complexe of {0} has been detected">
 		<description><![CDATA[The Just-In-Time compiler does not compile constructors. Make them as lightweight as possible, or move the complexity of the code to a method called by the constructor. Then the complexity will be compiled by the JIT.]]></description>
 		<priority>3</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.performance.CreationPolicySetToAllRule"
+	<rule class="org.apache.flex.pmd.rules.performance.CreationPolicySetToAllRule"
 		message="creationPolicy to ALL impacts the performance significantly">
 		<priority>1</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.performance.BindableClassRule"
+	<rule class="org.apache.flex.pmd.rules.performance.BindableClassRule"
 		message="Globally bindable classes can lead to unexpected behaviour especially when you have a setter to a property, and hits the performance of the application">
 		<priority>3</priority>	
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.AvoidInstanciationInLoopRule"
+	<rule class="org.apache.flex.pmd.rules.performance.AvoidInstanciationInLoopRule"
 		message="Instanciating a variable in a loop can be expensive">
 		<description></description>
 		<priority>5</priority>
@@ -69,7 +69,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.AvoidDeclarationInLoopRule"
+	<rule class="org.apache.flex.pmd.rules.performance.AvoidDeclarationInLoopRule"
 		message="Declaring a variable in a loop can be expensive">
 		<description></description>
 		<priority>5</priority>
@@ -77,18 +77,18 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.DeeplyNestedIfRule"
+	<rule class="org.apache.flex.pmd.rules.performance.DeeplyNestedIfRule"
 		message="Nested if statements are not a good design">
 		<priority>3</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.RecursiveStyleManagerRule"
+	<rule class="org.apache.flex.pmd.rules.performance.RecursiveStyleManagerRule"
 		message="Detect calls to the StyleManager that don’t pass “false” as the second parameter">
 		<description>A recursive style manager call can be a very expensive operation, causing parts of the UI to flicker visibly. Instead it is preferable to defer the creation of parts of the UI that depend on a runtime CSS SWF until after the SWF has been loaded. In this case a recursive call is not required.</description>
 		<priority>3</priority>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.AvoidUsingMathFloorRule"
+	<rule class="org.apache.flex.pmd.rules.performance.AvoidUsingMathFloorRule"
 		message="VM will automatically do the rounding when using an int, so it should be : var position:int = floatingValue;">
 		<priority>5</priority>
 		<example>
@@ -96,7 +96,7 @@
 		</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.AvoidUsingMathCeilRule"
+	<rule class="org.apache.flex.pmd.rules.performance.AvoidUsingMathCeilRule"
 		message="VM will automatically do the rounding when using an int, so should be : var position:int = floatingValue + 1;">
 		<priority>5</priority>
 		<example>
@@ -104,7 +104,7 @@
 		</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.performance.AvoidUsingMathRoundRule"
+	<rule class="org.apache.flex.pmd.rules.performance.AvoidUsingMathRoundRule"
 		message="manual calculation will be much faster : var position:int = (floatingValue > 0.0) ? int(floatingValue + 0.5) : int(floatingValue - 0.5);">
 		<priority>5</priority>
 		<example>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/security.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/security.xml
index 1955467..05b98e6 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/security.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/security.xml
@@ -27,7 +27,7 @@
       The Security AS3 Ruleset contains a collection of best practices related to secure code.
     </description>
     
-	<rule class="com.adobe.ac.pmd.rules.security.InsecureExactSettingsRule"
+	<rule class="org.apache.flex.pmd.rules.security.InsecureExactSettingsRule"
 		message="Security.exactSettings is set to an insecure value">
 		<description>The security.exactSettings value should remain set at the default true value. Setting this value to false could make the SWF vulnerable to cross-domain attacks.</description>
 		<priority>1</priority>
@@ -37,7 +37,7 @@
       	</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.security.AllowAllSecureDomainRule"
+	<rule class="org.apache.flex.pmd.rules.security.AllowAllSecureDomainRule"
 		message="Security.allowDomain is set to an insecure value">
 		<description>The security.allowDomain value of "*" will allow any domain to cross-script into the domain of this SWF and exercise its functionality.</description>
 		<priority>1</priority>
@@ -47,7 +47,7 @@
       	</example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.security.LocalConnectionStarRule"
+	<rule class="org.apache.flex.pmd.rules.security.LocalConnectionStarRule"
 		message="LocalConnection.allowDomain is set to an insecure value">
 		<description>The LocalConnection.allowDomain value of "*" will allow any domain to connect to this SWF and call its functions.</description>
 		<priority>1</priority>
@@ -57,7 +57,7 @@
       	</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.security.AllowInsecureDomainRule"
+	<rule class="org.apache.flex.pmd.rules.security.AllowInsecureDomainRule"
 		message="Potentially unnecessary use of allowInsecureDomain">
 		<description>Using allowInsecureDomain will allow untrusted content from an HTTP site to inject data into a trusted HTTPS connection which may comprimise the integrity of the HTTPS connection. The use of allowDomain is preferred.</description>
 		<priority>1</priority>
@@ -68,7 +68,7 @@
       	</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.security.LSOSecureFalseRule"
+	<rule class="org.apache.flex.pmd.rules.security.LSOSecureFalseRule"
 		message="The secure flag is set to false">
 		<description>If this SWF is being served over HTTPS then the secure flag should be set to true. This can help prevent sensitive SSL protected information from being shared within insecure HTTP content. If this SWF is served over HTTP then you can ignore this warning.</description>
 		<priority>5</priority>
@@ -78,7 +78,7 @@
       	</example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.security.ImportLoadBestPracticeRule"
+	<rule class="org.apache.flex.pmd.rules.security.ImportLoadBestPracticeRule"
 		message="Set allowCodeImport to false when import loading images">
 		<description>If this loader is only intended to load image files (GIF,JPG,PNG) then be sure to set the allowCodeImport value to false. Setting this flag will reduce the chances of an untrusted SWF gaining access to your site. If your intent is to load a SWF, the URL for the request is a static value for a trusted site and/or you have already set the allowCodeImport flag, then you can ignore this warning.</description>
 		<priority>5</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/sizing.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/sizing.xml
index f2030bf..a16472c 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/sizing.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/sizing.xml
@@ -27,7 +27,7 @@
       The Sizing As3 Ruleset contains a collection of good practices related to code sizing.
     </description>
     
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooManyFunctionRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooManyFunctionRule"
 		message="Too many methods detected ({0} maximum, but {1} actually)">
 		<description>A class with too many methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to have more fine grained objects.</description>
 		<priority>3</priority>
@@ -47,7 +47,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooLongFunctionRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooLongFunctionRule"
 		message="This function is far too long ({0} maximum, but {1} actually)">
 		<description>Violations of this rule usually indicate that the method has too much responsibility. Try to reduce the method size by creating helper methods and removing any copy/pasted code.</description>
 		<priority>3</priority>
@@ -69,7 +69,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooLongSwitchCaseRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooLongSwitchCaseRule"
 		message="Long switch case detected ({0} lines maximum, but {1} actually)">
 		<description>A switch case statement should be either empty, or contain a break, or call another method.</description>
 		<priority>3</priority>
@@ -101,7 +101,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooManyParametersRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooManyParametersRule"
 		message="Long parameter list detected ({0} maximum, but {1} actually)">
 		<description>Long parameter lists can indicate that a new object should be created to wrap the numerous parameters.  Basically, try to group the parameters together.
       </description>
@@ -122,7 +122,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooManyPublicRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooManyPublicRule"
 		message="Too many public fields or functions detected ({0} maximum, but {1} actually)">
 		<description>A large number of public methods and attributes declared in a class can indicate the class may need to be broken up as increased effort will be required to thoroughly test it.</description>
 		<priority>3</priority>
@@ -149,7 +149,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooManyFieldsRule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooManyFieldsRule"
 		message="Too many field detected ({0} maximum, but {1} actually)">
 		<description>Classes that have too many fields could be redesigned to have fewer fields, possibly  through some nested object grouping of some of the information.  For example, a class with  city/state/zipcode fields could instead have one Address field.</description>
 		<priority>3</priority>
@@ -171,7 +171,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.sizing.TooManyFieldInVORule"
+	<rule class="org.apache.flex.pmd.rules.sizing.TooManyFieldInVORule"
 		message="Too many field detected ({0} maximum, but {1} actually)">
 		<priority>3</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/style.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/style.xml
index e60c32c..2d85123 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/style.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/style.xml
@@ -27,7 +27,7 @@
       The Architecture ruleset contains a collection of good practices around architecture.
 	</description>
 
-	<rule class="com.adobe.ac.pmd.rules.style.ConstructorNonEmptyReturnTypeRule"
+	<rule class="org.apache.flex.pmd.rules.style.ConstructorNonEmptyReturnTypeRule"
 		message="A constructor should not have a return type">
 		<description>Even if this is syntactically correct, there should not be a return type for a constructor.</description>
 		<priority>5</priority>
@@ -41,7 +41,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.style.OverLongLineRule"
+	<rule class="org.apache.flex.pmd.rules.style.OverLongLineRule"
 		message="Too long line ({0} maximum, but {1} actually)">
 		<description></description>
 		<priority>5</priority>
@@ -54,7 +54,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.style.ImportFromSamePackageRule"
+	<rule class="org.apache.flex.pmd.rules.style.ImportFromSamePackageRule"
 		message="Imports from the same package are not necessary">
 		<description></description>
 		<priority>5</priority>
@@ -71,12 +71,12 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.style.CopyrightMissingRule"
+	<rule class="org.apache.flex.pmd.rules.style.CopyrightMissingRule"
 		message="The copyright header is missing in this file">
 		<priority>5</priority>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.style.BadFormatLoggerRule"
+	<rule class="org.apache.flex.pmd.rules.style.BadFormatLoggerRule"
 		message="The logger is not correctly formatted because {0}">
 		<description></description>
 		<priority>5</priority>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/switches.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/switches.xml
index ea8514f..4fc4d79 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/switches.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/switches.xml
@@ -28,7 +28,7 @@
 	</description>
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.switchrules.SwitchStatementsShouldHaveDefaultRule"
+		class="org.apache.flex.pmd.rules.switchrules.SwitchStatementsShouldHaveDefaultRule"
 		message="A switch statement does not contain a default statement">
 		<description>Switch statements should have a default label in order to detect corner cases.</description>
 		<priority>1</priority>
@@ -47,7 +47,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.switchrules.NestedSwitchRule"
+	<rule class="org.apache.flex.pmd.rules.switchrules.NestedSwitchRule"
 		message="Switch must not be nested">
 		<description>As a general practice, switch statement should not be used. Prefer using inheritance. It is even harder to read when switch statements are nested.</description>
 		<priority>3</priority>
@@ -72,7 +72,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.switchrules.NonBreakableSwitchCaseRule"
+	<rule class="org.apache.flex.pmd.rules.switchrules.NonBreakableSwitchCaseRule"
 		message="Switch case must include break statement">
 		<priority>1</priority>
 		<example>
@@ -91,7 +91,7 @@
 
 	
 	<rule
-		class="com.adobe.ac.pmd.rules.switchrules.TooFewBrancheInSwitchStatementRule"
+		class="org.apache.flex.pmd.rules.switchrules.TooFewBrancheInSwitchStatementRule"
 		message="There are too few branches in this switch statement ({0} minimum, but {1} actual)">
 		<description>Switch statements are designed for complex branches, and allow branches to share treatment. Using a switch for only 2 branches is ill advised, as switches are not as easy to understand as if. In this case, it's most likely is a good idea to use a if statement</description>
 		<priority>5</priority>
@@ -104,7 +104,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.switchrules.IdenticalSwitchCasesRule"
+	<rule class="org.apache.flex.pmd.rules.switchrules.IdenticalSwitchCasesRule"
 		message="Two switch cases should not be identical">
 		<priority>1</priority>
 	</rule>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/unused.xml b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/unused.xml
index ed8fba2..02a5ab6 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/unused.xml
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/main/resources/rulesets/flex/unused.xml
@@ -27,7 +27,7 @@
       The Architecture ruleset contains a collection of good practices around architecture.
 	</description>
 	
-	<rule class="com.adobe.ac.pmd.rules.unused.UnusedParameterRule"
+	<rule class="org.apache.flex.pmd.rules.unused.UnusedParameterRule"
 		message="This parameter ({0}) of this function is not used">
 		<description>
       </description>
@@ -40,7 +40,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.unused.UnusedLocalVariableRule"
+	<rule class="org.apache.flex.pmd.rules.unused.UnusedLocalVariableRule"
 		message="This variable ({0}) is not used">
 		<description>
       </description>
@@ -53,7 +53,7 @@
       </example>
 	</rule>
 	
-	<rule class="com.adobe.ac.pmd.rules.unused.UnusedPrivateMethodRule"
+	<rule class="org.apache.flex.pmd.rules.unused.UnusedPrivateMethodRule"
 		message="This private method ({0}) does not seem to be used">
 		<description>
       </description>
@@ -62,7 +62,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.unused.UnusedFieldRule"
+	<rule class="org.apache.flex.pmd.rules.unused.UnusedFieldRule"
 		message="This private attribute ({0}) does not seem to be used">
 		<description>
       </description>
@@ -71,7 +71,7 @@
       </example>
 	</rule>
 
-	<rule class="com.adobe.ac.pmd.rules.unused.EmptyPrivateMethodRule"
+	<rule class="org.apache.flex.pmd.rules.unused.EmptyPrivateMethodRule"
 		message="This private method ({0}) is used but its content is empty">
 		<description>
       </description>
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractFlexRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractFlexRuleTest.java
index 7875bbd..0564fdb 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractFlexRuleTest.java
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractFlexRuleTest.java
@@ -16,11 +16,13 @@
  */
 package org.apache.flex.pmd.rules;
 
+import static org.junit.Assert.*;
+
 import org.apache.flex.pmd.files.IFlexFile;
 import org.apache.flex.pmd.parser.exceptions.TokenException;
 import org.apache.flex.pmd.rules.core.AbstractFlexRule;
 import org.apache.flex.pmd.rules.core.ViolationPosition;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -28,9 +30,6 @@
 import java.util.List;
 import java.util.Map;
 
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.fail;
-
 public abstract class AbstractFlexRuleTest extends FlexPmdTestBase {
     final static class AssertPosition {
         public static AssertPosition create(final String message,
@@ -172,8 +171,8 @@
         try {
             final List<IFlexViolation> violations = processFile(resourcePath);
 
-            assertEquals(violations.size(), expectedPositions.length,
-                    VIOLATIONS_NUMBER_NOT_CORRECT + " for " + resourcePath);
+            assertEquals(VIOLATIONS_NUMBER_NOT_CORRECT + " for " + resourcePath,
+                    violations.size(), expectedPositions.length);
 
             if (expectedPositions.length != 0) {
                 printFailures(buildFailureViolations(resourcePath,
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractRegExpBasedRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractRegExpBasedRuleTest.java
index 38afe1a..1589d92 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractRegExpBasedRuleTest.java
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/AbstractRegExpBasedRuleTest.java
@@ -16,10 +16,11 @@
  */
 package org.apache.flex.pmd.rules;
 
+import static org.junit.Assert.*;
+
 import org.apache.flex.pmd.rules.core.AbstractFlexRule;
 import org.apache.flex.pmd.rules.core.AbstractRegexpBasedRule;
-import org.testng.Assert;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 public abstract class AbstractRegExpBasedRuleTest extends AbstractFlexRuleTest {
     @Test
@@ -27,13 +28,13 @@
         final AbstractRegexpBasedRule rule = getRegexpBasedRule();
 
         if (getMatchableLines().length == 0) {
-            Assert.fail("the getMatchableLines() is empty");
+            fail("the getMatchableLines() is empty");
         }
         for (int i = 0; i < getMatchableLines().length; i++) {
             final String correctLine = getMatchableLines()[i];
 
-            Assert.assertTrue(rule.doesCurrentLineMacthes(correctLine),
-                    "This line (\"" + correctLine + "\") should be matched");
+            assertTrue("This line (\"" + correctLine + "\") should be matched",
+                    rule.doesCurrentLineMacthes(correctLine));
         }
     }
 
@@ -42,13 +43,13 @@
         final AbstractRegexpBasedRule rule = getRegexpBasedRule();
 
         if (getUnmatchableLines().length == 0) {
-            Assert.fail("the getUnmatchableLines() is empty");
+            fail("the getUnmatchableLines() is empty");
         }
         for (int i = 0; i < getUnmatchableLines().length; i++) {
             final String incorrectLine = getUnmatchableLines()[i];
 
-            Assert.assertFalse(rule.doesCurrentLineMacthes(incorrectLine),
-                    "This line  (\"" + incorrectLine + "\") should not be matched");
+            assertFalse("This line  (\"" + incorrectLine + "\") should not be matched",
+                    rule.doesCurrentLineMacthes(incorrectLine));
         }
     }
 
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/performance/BindableClassRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/performance/BindableClassRuleTest.java
index 2c833b9..355f87c 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/performance/BindableClassRuleTest.java
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/performance/BindableClassRuleTest.java
@@ -19,7 +19,7 @@
 import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
 import org.apache.flex.pmd.rules.core.AbstractFlexRule;
 import org.apache.flex.pmd.rules.core.ViolationPosition;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 // This test requires test-data that was not donated to Apache
 public class BindableClassRuleTest /*extends AbstractAstFlexRuleTest*/ {
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedLocalVariableRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedLocalVariableRuleTest.java
index 32e1c1d..202ca47 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedLocalVariableRuleTest.java
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedLocalVariableRuleTest.java
@@ -19,7 +19,7 @@
 import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
 import org.apache.flex.pmd.rules.core.AbstractFlexRule;
 import org.apache.flex.pmd.rules.core.ViolationPosition;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 // This test requires test-data that was not donated to Apache
 public class UnusedLocalVariableRuleTest /*extends AbstractAstFlexRuleTest*/ {
diff --git a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedParameterRuleTest.java b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedParameterRuleTest.java
index 82edad5..1802e8a 100644
--- a/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedParameterRuleTest.java
+++ b/FlexPMD/language-module/ruleset/ruleset-flex-basic/src/test/java/org/apache/flex/pmd/rules/unused/UnusedParameterRuleTest.java
@@ -19,7 +19,7 @@
 import org.apache.flex.pmd.rules.AbstractAstFlexRuleTest;
 import org.apache.flex.pmd.rules.core.AbstractFlexRule;
 import org.apache.flex.pmd.rules.core.ViolationPosition;
-import org.testng.annotations.Test;
+import org.junit.Test;
 
 import java.util.LinkedHashMap;
 
