You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2014/09/05 12:44:27 UTC

[4/4] git commit: [flex-utilities] [refs/heads/feature/flexpmd-pmd-update] - PMD 5.x migration - I still have 4 not commited files in my working-set - TooManyStatesInMxmlRule - TooShortVariableRule - TooFewBranchesInSwitchStatementRule -

PMD 5.x migration
- I still have 4 not commited files in my working-set
    - TooManyStatesInMxmlRule
    - TooShortVariableRule
    - TooFewBranchesInSwitchStatementRule
    - ParametrizedRegExpBasedRuleTest
  As these all need parameters and I haven't quite figgured out how to update the code yet ... so don't be surprised about compilation errors.


Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/7f1d4d2a
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/7f1d4d2a
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/7f1d4d2a

Branch: refs/heads/feature/flexpmd-pmd-update
Commit: 7f1d4d2ae4fe5b6c877d07f75f0acf8bf6a32948
Parents: 62fb6a4
Author: Christofer Dutz <ch...@codecentric.de>
Authored: Fri Sep 5 12:44:14 2014 +0200
Committer: Christofer Dutz <ch...@codecentric.de>
Committed: Fri Sep 5 12:44:14 2014 +0200

----------------------------------------------------------------------
 FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml |    4 +-
 .../flex-pmd-flex-lib/src/main/flex/Version.as  |    2 +-
 FlexPMD/flex-pmd-flex/pom.xml                   |    1 -
 FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml |    4 +-
 .../flex-pmd-ant-task/src/main/assemble/bin.xml |    2 +-
 .../flex-pmd-java/flex-pmd-command-line/pom.xml |    4 +-
 FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml     |    4 +-
 .../com/adobe/ac/pmd/FlexPmdViolations.java     |    2 +-
 .../ac/pmd/engines/AbstractFlexPmdEngine.java   |   22 +-
 .../adobe/ac/pmd/engines/PmdEngineUtils.java    |    2 +-
 .../src/test/resources/allInOneRuleset.xml      |  188 +++-
 .../resources/allInOneWithExclusionRuleset.xml  |  188 +++-
 .../src/test/resources/broken_pmd.xml           |  365 ++++--
 .../flex-pmd-java/flex-pmd-cpd-ant-task/pom.xml |    4 +-
 .../com/adobe/ac/cpd/ant/FlexCpdAntTask.java    |   14 +-
 .../flex-pmd-cpd-command-line/pom.xml           |    4 +-
 .../com/adobe/ac/cpd/commandline/FlexCPD.java   |   14 +-
 .../flex-pmd-cpd-maven-plugin/pom.xml           |    9 +-
 .../com/adobe/ac/cpd/maven/FlexCpdMojo.java     |   24 +-
 .../com/adobe/ac/cpd/maven/FlexCpdMojoTest.java |    2 +-
 FlexPMD/flex-pmd-java/flex-pmd-cpd/pom.xml      |    2 +-
 .../test/java/com/adobe/ac/cpd/FlexCpdTest.java |   11 +-
 .../flex-pmd-java/flex-pmd-maven-plugin/pom.xml |    7 +
 .../adobe/ac/pmd/maven/AbstractFlexPmdMojo.java |   10 +-
 .../adobe/ac/pmd/maven/FlexPmdHtmlEngine.java   |   24 +-
 .../com/adobe/ac/pmd/maven/FlexPmdMojoTest.java |    2 +-
 .../ac/pmd/maven/FlexPmdReportMojoTest.java     |    2 +-
 .../src/test/resources/rulesets/broken_pmd.xml  | 1061 +++++++++++-------
 .../flex-pmd-metrics-ant-task/pom.xml           |    4 +-
 .../flex-pmd-metrics-command-line/pom.xml       |    4 +-
 .../flex-pmd-metrics-maven-plugin/pom.xml       |    6 +
 .../metrics/maven/FlexMetricsReportMojo.java    |   13 +-
 .../NcssAggregateReportGenerator.java           |    4 +-
 .../maven/generators/NcssReportGenerator.java   |    2 +-
 .../generators/NcssReportGeneratorBase.java     |    8 +-
 .../pmd/metrics/maven/FlexMetricsMojoTest.java  |    2 +-
 .../maven/FlexMetricsReportMojoTest.java        |    2 +-
 .../flex-pmd-java/flex-pmd-ruleset-api/pom.xml  |    2 +-
 .../java/com/adobe/ac/pmd/IFlexViolation.java   |    4 +-
 .../ac/pmd/rules/core/AbstractFlexRule.java     |   31 +-
 .../com/adobe/ac/pmd/rules/core/Violation.java  |    4 +-
 .../AbstractMaximizedAstFlexRule.java           |   16 +-
 .../thresholded/AbstractMaximizedFlexRule.java  |   16 +-
 .../AbstractMaximizedRegexpBasedRule.java       |   16 +-
 .../adobe/ac/pmd/rules/core/ViolationTest.java  |    2 +-
 .../naming/IncorrectEventHandlerNameRule.java   |   46 +-
 .../ParameterizedRegExpBasedRule.java           |   30 +-
 .../resources/com/adobe/ac/pmd/all_flex.xml     |    9 +-
 .../resources/com/adobe/ac/pmd/default_flex.xml |    9 +-
 .../com/adobe/ac/pmd/rulesets/architecture.xml  |   12 +-
 .../com/adobe/ac/pmd/rulesets/asdocs.xml        |   11 +-
 .../com/adobe/ac/pmd/rulesets/basic_mxml.xml    |    9 +-
 .../com/adobe/ac/pmd/rulesets/binding.xml       |    9 +-
 .../com/adobe/ac/pmd/rulesets/cairngorm.xml     |    9 +-
 .../com/adobe/ac/pmd/rulesets/component.xml     |    9 +-
 .../resources/com/adobe/ac/pmd/rulesets/css.xml |    9 +-
 .../com/adobe/ac/pmd/rulesets/empty.xml         |    9 +-
 .../com/adobe/ac/pmd/rulesets/event.xml         |    9 +-
 .../com/adobe/ac/pmd/rulesets/indentation.xml   |    9 +-
 .../adobe/ac/pmd/rulesets/maintanability.xml    |    9 +-
 .../com/adobe/ac/pmd/rulesets/multitouch.xml    |    9 +-
 .../com/adobe/ac/pmd/rulesets/naming.xml        |    9 +-
 .../com/adobe/ac/pmd/rulesets/parsley.xml       |   11 +-
 .../com/adobe/ac/pmd/rulesets/performance.xml   |    9 +-
 .../com/adobe/ac/pmd/rulesets/security.xml      |    9 +-
 .../com/adobe/ac/pmd/rulesets/sizing.xml        |    9 +-
 .../com/adobe/ac/pmd/rulesets/style.xml         |    9 +-
 .../com/adobe/ac/pmd/rulesets/switches.xml      |    9 +-
 .../com/adobe/ac/pmd/rulesets/unittest.xml      |    9 +-
 .../com/adobe/ac/pmd/rulesets/unused.xml        |    9 +-
 FlexPMD/pmd.xml                                 |   11 +-
 FlexPMD/pom.xml                                 |   36 +-
 72 files changed, 1530 insertions(+), 921 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml b/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml
index 2754e30..1b92117 100644
--- a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml
+++ b/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/pom.xml
@@ -182,14 +182,14 @@ limitations under the License.
 				</configuration>
 			</plugin>
 
-			<!--plugin>
+			<plugin>
 				<groupId>${project.groupId}</groupId>
 				<artifactId>flex-pmd-maven-plugin</artifactId>
 				<version>${project.parent.version}</version>
 				<configuration>
 					<failOnError>true</failOnError>
 				</configuration>
-			</plugin-->
+			</plugin>
 		</plugins>
 	</reporting>
 

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/src/main/flex/Version.as
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/src/main/flex/Version.as b/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/src/main/flex/Version.as
index bb56f8e..b6650e2 100644
--- a/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/src/main/flex/Version.as
+++ b/FlexPMD/flex-pmd-flex/flex-pmd-flex-lib/src/main/flex/Version.as
@@ -1 +1 @@
-package{ public class Version { public static const BUILD_NUMBER : String = '1.3-SNAPSHOT'; public static const BUILD_TIME : String = '23:50:33'; public static const BUILD_DATE : String = '2014-09-01'; }}
\ No newline at end of file
+package{ public class Version { public static const BUILD_NUMBER : String = '1.3-SNAPSHOT'; public static const BUILD_TIME : String = '00:21:22'; public static const BUILD_DATE : String = '2014-09-04'; }}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-flex/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-flex/pom.xml b/FlexPMD/flex-pmd-flex/pom.xml
index b383706..cbe7fa5 100644
--- a/FlexPMD/flex-pmd-flex/pom.xml
+++ b/FlexPMD/flex-pmd-flex/pom.xml
@@ -34,7 +34,6 @@ limitations under the License.
 		<flex.version>4.13.0.20140701</flex.version>
 		<flash-player.version>11.1</flash-player.version>
 		<flexunit.version>4.2.0</flexunit.version>
-		<event-source.version>1.1</event-source.version>
 		<flexunit-theme.version>1.0</flexunit-theme.version>
 	</properties>
 

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml b/FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml
index fb11720..c1b70b6 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-ant-task/pom.xml
@@ -90,7 +90,7 @@
                                 <echo message="Copying Ant dependencies..."/>
                                 <copy file="${org.apache.flex.pmd:as3-plugin-utils:jar}"
                                       todir="${project.build.directory}/release" overwrite="true"/>
-                                <copy file="${pmd:pmd:jar}"
+                                <copy file="${net.sourceforge.pmd:pmd:jar}"
                                       todir="${project.build.directory}/release" overwrite="true"/>
                                 <copy file="${org.apache.ant:ant:jar}"
                                       todir="${project.build.directory}/release" overwrite="true"/>
@@ -171,7 +171,7 @@
             <version>${project.version}</version>
         </dependency>
         <dependency>
-            <groupId>pmd</groupId>
+            <groupId>net.sourceforge.pmd</groupId>
             <artifactId>pmd</artifactId>
             <version>${pmd.version}</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/src/main/assemble/bin.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/src/main/assemble/bin.xml b/FlexPMD/flex-pmd-java/flex-pmd-ant-task/src/main/assemble/bin.xml
index 134549d..90ec150 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-ant-task/src/main/assemble/bin.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-ant-task/src/main/assemble/bin.xml
@@ -31,7 +31,7 @@ limitations under the License.
          <include>com.adobe.ac:as3-plugin-utils</include>
          <include>com.adobe.ac:flex-pmd-ruleset</include>
          <include>com.adobe.ac:flex-pmd-ruleset-api</include>
-         <include>pmd:pmd</include>
+         <include>net.sourceforge.pmd:pmd</include>
       </includes>
     </dependencySet>
   </dependencySets>    

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-command-line/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-command-line/pom.xml b/FlexPMD/flex-pmd-java/flex-pmd-command-line/pom.xml
index 5f425fa..9e45df1 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-command-line/pom.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-command-line/pom.xml
@@ -93,7 +93,7 @@
 			<version>${project.version}</version>
 		</dependency>
 		<dependency>
-			<groupId>pmd</groupId>
+            <groupId>net.sourceforge.pmd</groupId>
 			<artifactId>pmd</artifactId>
 			<version>${pmd.version}</version>
 		</dependency>
@@ -174,7 +174,7 @@
 								<copy file="${org.apache.flex.pmd:as3-parser:jar}" todir="${project.build.directory}/release" overwrite="true" />
 								<echo message="Copying Command line dependencies..." />
 								<copy file="${org.apache.flex.pmd:as3-plugin-utils:jar}" todir="${project.build.directory}/release" overwrite="true" />
-								<copy file="${pmd:pmd:jar}" todir="${project.build.directory}/release" overwrite="true" />
+								<copy file="${net.sourceforge.pmd:pmd:jar}" todir="${project.build.directory}/release" overwrite="true" />
 								<copy file="${plexus:plexus-utils:jar}" todir="${project.build.directory}/release" overwrite="true" />
 								<copy file="${commons-lang:commons-lang:jar}" todir="${project.build.directory}/release" overwrite="true" />
 								<copy file="${com.martiansoftware:jsap:jar}" todir="${project.build.directory}/release" overwrite="true" />

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml b/FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml
index b24af26..928f9da 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/pom.xml
@@ -33,12 +33,12 @@
     <name>Adobe Flex PMD Core</name>
 
     <properties>
-        <doxia-core.version>1.0-alpha-4</doxia-core.version>
+        <doxia-core.version>1.6</doxia-core.version>
     </properties>
 
     <dependencies>
         <dependency>
-            <groupId>doxia</groupId>
+            <groupId>org.apache.maven.doxia</groupId>
             <artifactId>doxia-core</artifactId>
             <version>${doxia-core.version}</version>
         </dependency>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/FlexPmdViolations.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/FlexPmdViolations.java b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/FlexPmdViolations.java
index 607610d..e521592 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/FlexPmdViolations.java
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/FlexPmdViolations.java
@@ -30,8 +30,8 @@ import java.util.logging.Logger;
 
 import net.sourceforge.pmd.PMDException;
 import net.sourceforge.pmd.Rule;
-import net.sourceforge.pmd.RuleReference;
 import net.sourceforge.pmd.RuleSet;
+import net.sourceforge.pmd.lang.rule.RuleReference;
 
 import com.adobe.ac.pmd.files.FileSetUtils;
 import com.adobe.ac.pmd.files.IFlexFile;

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/AbstractFlexPmdEngine.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/AbstractFlexPmdEngine.java b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/AbstractFlexPmdEngine.java
index be8f747..981437f 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/AbstractFlexPmdEngine.java
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/AbstractFlexPmdEngine.java
@@ -17,7 +17,6 @@
 package com.adobe.ac.pmd.engines;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -29,6 +28,7 @@ import net.sourceforge.pmd.PMDException;
 import net.sourceforge.pmd.RuleSet;
 import net.sourceforge.pmd.RuleSetFactory;
 
+import net.sourceforge.pmd.RuleSetNotFoundException;
 import org.apache.commons.lang.StringUtils;
 import org.codehaus.plexus.util.IOUtil;
 
@@ -61,9 +61,9 @@ public abstract class AbstractFlexPmdEngine
       final File temporaryRuleset = File.createTempFile( "default_flex",
                                                          ".xml" );
       temporaryRuleset.deleteOnExit();
-      final FileOutputStream writter = new FileOutputStream( temporaryRuleset );
+      final FileOutputStream writer = new FileOutputStream( temporaryRuleset );
       IOUtil.copy( resourceAsStream,
-                   writter );
+                   writer );
 
       resourceAsStream.close();
       return temporaryRuleset;
@@ -87,6 +87,10 @@ public abstract class AbstractFlexPmdEngine
       {
          ruleSet = loadRuleset( parameters.getRuleSet() );
       }
+      catch ( final RuleSetNotFoundException e )
+      {
+         LOGGER.warning( StackTraceUtils.print( e ) );
+      }
       catch ( final URISyntaxException e )
       {
          LOGGER.warning( StackTraceUtils.print( e ) );
@@ -168,18 +172,16 @@ public abstract class AbstractFlexPmdEngine
                                           "Engine" );
    }
 
-   private RuleSet loadRuleset( final File ruleSetFile ) throws URISyntaxException,
+   private RuleSet loadRuleset( final File ruleSetFile ) throws RuleSetNotFoundException, URISyntaxException,
                                                         IOException
    {
       final File realRuleSet = extractRuleset( ruleSetFile );
-      final FileInputStream inputStream = new FileInputStream( realRuleSet );
-      final RuleSet loadedRuleSet = new RuleSetFactory().createRuleSet( inputStream );
+      final RuleSet loadedRuleSet = new RuleSetFactory().createRuleSet( realRuleSet.getAbsolutePath() );
 
       LOGGER.info( "Ruleset: "
             + realRuleSet.getAbsolutePath() );
       LOGGER.info( "Rules number in the ruleSet: "
             + loadedRuleSet.getRules().size() );
-      inputStream.close();
 
       return loadedRuleSet;
    }
@@ -187,13 +189,13 @@ public abstract class AbstractFlexPmdEngine
    private void writeAnyReport( final FlexPmdViolations flexPmdViolations ) throws PMDException
    {
       long startTime;
-      long ellapsedTime;
+      long elapsedTime;
       startTime = System.currentTimeMillis();
       writeReport( flexPmdViolations );
-      ellapsedTime = System.currentTimeMillis()
+      elapsedTime = System.currentTimeMillis()
             - startTime;
 
       LOGGER.info( "It took "
-            + ellapsedTime + "ms to write the " + getReportType() + " report" );
+            + elapsedTime + "ms to write the " + getReportType() + " report" );
    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/PmdEngineUtils.java
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/PmdEngineUtils.java b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/PmdEngineUtils.java
index 7c48a9e..807fd04 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/PmdEngineUtils.java
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/src/main/java/com/adobe/ac/pmd/engines/PmdEngineUtils.java
@@ -39,7 +39,7 @@ public final class PmdEngineUtils
       {
          for ( final IFlexViolation violation : violatedFile.getValue() )
          {
-            if ( violation.getRule().getPriority() == Integer.parseInt( ViolationPriority.HIGH.toString() ) )
+            if ( violation.getRule().getPriority().getPriority() == Integer.parseInt( ViolationPriority.HIGH.toString() ) )
             {
                final String[] formatArgument = computeArgumentFormat( violation );
                buffer.append( form.format( formatArgument ) );

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneRuleset.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneRuleset.xml b/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneRuleset.xml
index aff76df..bbdf249 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneRuleset.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneRuleset.xml
@@ -17,19 +17,22 @@ limitations under the License.
 
 -->
 <ruleset name="All Flex Rules"
-	xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-	xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
-	xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+         xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
+         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
 	<description />
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.mxml.MoreThanTwoEntryPointsInMxmlRule"
-		message="There are more than 2 public variables in this MXML component">
+		message="There are more than 2 public variables in this MXML component"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.binding.TooLongBindingExpressionRule"
-		message="This binding expression is too long">
+		message="This binding expression is too long"
+        language="flex">
 		<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>
 		<properties>
@@ -38,8 +41,10 @@ limitations under the License.
 			</property>
 		</properties>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.mxml.TooLongScriptBlockRule"
-		message="This script block is too long">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.mxml.TooLongScriptBlockRule"
+		message="This script block is too long"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<properties>
@@ -48,8 +53,10 @@ limitations under the License.
 			</property>
 		</properties>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.DynamicClassRule"
-		message="A class must not be dynamic">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.maintanability.DynamicClassRule"
+		message="A class must not be dynamic"
+        language="flex">
 		<description>When using dynamic classes, you cannot control how the developer will use your classe. It makes refactoring really difficult.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -60,7 +67,8 @@ dynamic public class DynamicObject // VIOLATION
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.EventMissingCloneFunctionRule"
-		message="The clone event must be overiden in a custom event">
+		message="The clone event must be overiden in a custom event"
+        language="flex">
 		<description>Why do you need to override clone? Well, the clone method creates a copy of your event (or object - whatever object has the clone event; this isn't limited to Event objects). The default clone method inherited by the Event class or whatever class your custom class extends, will return an event object of the type of that class, not your custom event subclass. In the situations where a clone is needed, it is needed to be of the same type of your class, not the class it extends.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -76,7 +84,8 @@ public class FirstCustomEvent   // VIOLATION - clone method is missing
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.PublicVariableInCustomEventRule"
-		message="No public variables should be inside a custom event">
+		message="No public variables should be inside a custom event"
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -92,7 +101,8 @@ public class FirstCustomEvent
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.style.ConstructorNonEmptyReturnTypeRule"
-		message="A constructor should not have a return type">
+		message="A constructor should not have a return type"
+        language="flex">
 		<description>Even if this is syntaxically correct, there should not be a return type for a constructor.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -106,7 +116,8 @@ public class VoidConstructor
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.SwitchStatementsShouldHaveDefaultRule"
-		message="A switch statement does not contain a default statement">
+		message="A switch statement does not contain a default statement"
+        language="flex">
 		<description>Switch statements should have a default label in order to detect corner cases.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -123,8 +134,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
-		message="Do not use Object class.">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
+		message="Do not use Object class."
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -136,7 +149,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.NestedSwitchRule"
-		message="Switch must not be nested.">
+		message="Switch must not be nested."
+        language="flex">
 		<description>As a general practice, switch statement should not be used. Prefer using inheritance. It is even harder to read when siwtch statements are nested.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -161,7 +175,8 @@ public function foo( a : Number, b : Number ) : void
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.maintanability.ArrayFieldWithNoArrayElementTypeRule"
-		message="ArrayElementType metadata is not specified for an array-type field">
+		message="ArrayElementType metadata is not specified for an array-type field"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -174,7 +189,9 @@ public class ArrayVO {
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.maintanability.NonStaticConstantFieldRule" message="A constant field should be static">
+		class="com.adobe.ac.pmd.rules.maintanability.NonStaticConstantFieldRule"
+        message="A constant field should be static"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -185,7 +202,9 @@ public class MyObject {
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.unused.UnusedParameterRule" message="You should use all the parameters of a function">
+		class="com.adobe.ac.pmd.rules.unused.UnusedParameterRule"
+        message="You should use all the parameters of a function"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -197,7 +216,8 @@ public function foo( param1 : Number, param2 : Number, param3 : Number, param4 :
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.unused.UnusedLocalVariableRule"
-		message="You should delete an unused variable">
+		message="You should delete an unused variable"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -209,41 +229,50 @@ public function foo() : void
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.unused.UnusedPrivateMethodRule"
-		message="This private method does not seem to be used">
+		message="This private method does not seem to be used"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.TooFewBrancheInSwitchStatementRule"
-		message="There are too few branches in this swicth statement">
+		message="There are too few branches in this swicth statement"
+        language="flex">
 		<description>Switch statements are designed for complex branches, and allow branches to share treatement. 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>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.style.BadFormatLoggerRule"
-		message="The loger is not correctly formatted">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.style.BadFormatLoggerRule"
+		message="The loger is not correctly formatted"
+        language="flex">
 		<description />
 		<priority>5</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.performance.AvoidInstanciationInLoopRule"
-		message="Instanciating a variable in a loop can be expensive">
+		message="Instanciating a variable in a loop can be expensive"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.architecture.ViewComponentReferencedInModelRule"
-		message="A view component should not be referenced in a model class">
+		message="A view component should not be referenced in a model class"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
-		message="Use strongly typed objects instead of *">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
+		message="Use strongly typed objects instead of *"
+        language="flex">
 		<description />
 		<priority>1</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.DispatchHardCodedEventNameRule"
-		message="DispatchEvent function must dispatch constant strings">
+		message="DispatchEvent function must dispatch constant strings"
+        language="flex">
 		<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>3</priority>
 		<example><![CDATA[
@@ -258,7 +287,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.ListenForHardCodedEventNameRule"
-		message="addEventListener must not contain hard coded strings.">
+		message="addEventListener must not contain hard coded strings."
+        language="flex">
 		<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>3</priority>
 		<example><![CDATA[
@@ -271,13 +301,17 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.AlertShowRule"
-		message="Do not call Alert.show directly.">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.maintanability.AlertShowRule"
+		message="Do not call Alert.show directly."
+        language="flex">
 		<description>You should not Alert.show() directly. If an error occured in the system, you should probably use an ErrorManager to have a consistent way to manage those errors.</description>
 		<priority>1</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.empty.EmptyIfStmtRule"
-		message="No statements in this if statement">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.empty.EmptyIfStmtRule"
+		message="No statements in this if statement"
+        language="flex">
 		<description>Empty If Statement finds instances where a condition is checked but nothing is done about it.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -293,8 +327,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.ExcessiveImportRule"
-		message="A high number of imports can indicate a high degree of coupling within an object.">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.maintanability.ExcessiveImportRule"
+		message="A high number of imports can indicate a high degree of coupling within an object."
+        language="flex">
 		<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>
 		<properties>
@@ -314,13 +350,17 @@ import blah.blah.Baz;
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.binding.BindingUtilsRule"
-		message="If you need to use BindingUtils, you should probably consider refactoring using events">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.binding.BindingUtilsRule"
+		message="If you need to use BindingUtils, you should probably consider refactoring using events"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.style.OverLongLineRule"
-		message="Too long line ({0} maximum)">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.style.OverLongLineRule"
+		message="Too long line ({0} maximum)"
+        language="flex">
 		<description />
 		<priority>5</priority>
 		<properties>
@@ -331,7 +371,8 @@ import blah.blah.Baz;
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.style.ImportFromSamePackageRule"
-		message="Imports from the same package are not necessary">
+		message="Imports from the same package are not necessary"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -346,8 +387,10 @@ package com.adobe.ac
 }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.naming.IncorrectClassCase"
-		message="A class name must start by a majuscule character">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.naming.IncorrectClassCase"
+		message="A class name must start by a majuscule character"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -358,7 +401,8 @@ public class foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.BindableModelLocatorRule"
-		message="A modelLocator must not be Bindable at a class level">
+		message="A modelLocator must not be Bindable at a class level"
+        language="flex">
 		<description>A bindable ModelLocator could leads to performance issues due to bindings</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -370,7 +414,8 @@ public class foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.ReferenceModelLocatorOutsideTheMainApplicationRule"
-		message="The ModelLocator should be only accessible from the main application file">
+		message="The ModelLocator should be only accessible from the main application file"
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -383,8 +428,10 @@ package business
 }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.cairngorm.FatControllerRule"
-		message="A FrontController must nor add all its commands within the Controller constructor.">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.cairngorm.FatControllerRule"
+		message="A FrontController must nor add all its commands within the Controller constructor."
+        language="flex">
 		<description>Try split them into methods where you add commands depending on their fonctional area.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -416,12 +463,15 @@ package control
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.BadCairngormEventNameFormatRule"
-		message="A Cairngorm event name should contain the function area name before the actual event name">
+		message="A Cairngorm event name should contain the function area name before the actual event name"
+        language="flex">
 		<description>You would have something like 'productManagement.getProducts' as an event name.</description>
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.sizing.TooManyFunctionRule" message="Too many methods detected">
+		class="com.adobe.ac.pmd.rules.sizing.TooManyFunctionRule"
+        message="Too many methods detected"
+        language="flex">
 		<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>
 		<properties>
@@ -440,7 +490,9 @@ public class Foo
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.sizing.TooLongFunctionRule" message="This function is far long">
+		class="com.adobe.ac.pmd.rules.sizing.TooLongFunctionRule"
+        message="This function is far long"
+        language="flex">
 		<description>Violations of this rule usually indicate that the method is doing too much. Try to reduce the method size by creating helper methods and removing any copy/pasted code.</description>
 		<priority>3</priority>
 		<properties>
@@ -462,7 +514,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.sizing.TooLongSwitchCaseRule"
-		message="Long switch case detected">
+		message="Long switch case detected"
+        language="flex">
 		<description>A switch case statement should be either empty, or contain a break, or call another method.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -489,7 +542,8 @@ public class Bar
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.sizing.TooManyParametersRule"
-		message="Long parameter list detected">
+		message="Long parameter list detected"
+        language="flex">
 		<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>
 		<priority>1</priority>
 		<properties>
@@ -507,8 +561,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.sizing.TooManyPublicRule"
-		message="Too much public fields or functions detected">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.sizing.TooManyPublicRule"
+		message="Too much public fields or functions detected"
+        language="flex">
 		<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>
 		<properties>
@@ -533,8 +589,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.sizing.TooManyFieldsRule"
-		message="Too many field detected">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.sizing.TooManyFieldsRule"
+		message="Too many field detected"
+        language="flex">
 		<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/zip fields could instead have one Address field.</description>
 		<priority>3</priority>
 		<properties>
@@ -556,7 +614,8 @@ public class Person
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.naming.TooShortVariableRule"
-		message="This variable name is too short">
+		message="This variable name is too short"
+        language="flex">
 		<description>Detects when a field, local, or parameter has a very short name.</description>
 		<priority>5</priority>
 		<example><![CDATA[
@@ -571,8 +630,10 @@ public class Something
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.naming.PackageCaseRule"
-		message="A package name should be lower case">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.naming.PackageCaseRule"
+		message="A package name should be lower case"
+        language="flex">
 		<description>Detects when a package definition contains upper case characters.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -586,14 +647,17 @@ public class Something
          
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.css.StyleBlockInMxmlRule"
-		message="The style block is embed in the MXML file">
+	<rule since="0.1"
+          class="com.adobe.ac.pmd.rules.css.StyleBlockInMxmlRule"
+		message="The style block is embed in the MXML file"
+        language="flex">
 		<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 since="0.1"
 		class="com.adobe.ac.pmd.rules.performance.DynamicFiltersUsedInPopup"
-		message="A popup should use dynamic filters">
+		message="A popup should use dynamic filters"
+        language="flex">
 		<description>Prefer using embed filters in assets</description>
 		<priority>3</priority>
 	</rule>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/7f1d4d2a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneWithExclusionRuleset.xml
----------------------------------------------------------------------
diff --git a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneWithExclusionRuleset.xml b/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneWithExclusionRuleset.xml
index ca22972..316348a 100644
--- a/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneWithExclusionRuleset.xml
+++ b/FlexPMD/flex-pmd-java/flex-pmd-core/src/test/resources/allInOneWithExclusionRuleset.xml
@@ -17,20 +17,23 @@ limitations under the License.
 
 -->
 <ruleset name="All Flex Rules Without AsDocs folder"
-	xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-	xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"
-	xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+         xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd"
+         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
 	<description />
 	<exclude-pattern>.*/com/.*</exclude-pattern>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.mxml.MoreThanTwoEntryPointsInMxmlRule"
-		message="There are more than 2 public variables in this MXML component">
+		message="There are more than 2 public variables in this MXML component"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.binding.TooLongBindingExpressionRule"
-		message="This binding expression is too long">
+		message="This binding expression is too long"
+        language="flex">
 		<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>
 		<properties>
@@ -39,8 +42,10 @@ limitations under the License.
 			</property>
 		</properties>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.mxml.TooLongScriptBlockRule"
-		message="This script block is too long">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.mxml.TooLongScriptBlockRule"
+		message="This script block is too long"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<properties>
@@ -49,8 +54,10 @@ limitations under the License.
 			</property>
 		</properties>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.DynamicClassRule"
-		message="A class must not be dynamic">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.maintanability.DynamicClassRule"
+		message="A class must not be dynamic"
+        language="flex">
 		<description>When using dynamic classes, you cannot control how the developer will use your classe. It makes refactoring really difficult.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -61,7 +68,8 @@ dynamic public class DynamicObject // VIOLATION
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.EventMissingCloneFunctionRule"
-		message="The clone event must be overiden in a custom event">
+		message="The clone event must be overiden in a custom event"
+        language="flex">
 		<description>Why do you need to override clone? Well, the clone method creates a copy of your event (or object - whatever object has the clone event; this isn't limited to Event objects). The default clone method inherited by the Event class or whatever class your custom class extends, will return an event object of the type of that class, not your custom event subclass. In the situations where a clone is needed, it is needed to be of the same type of your class, not the class it extends.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -77,7 +85,8 @@ public class FirstCustomEvent   // VIOLATION - clone method is missing
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.PublicVariableInCustomEventRule"
-		message="No public variables should be inside a custom event">
+		message="No public variables should be inside a custom event"
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -93,7 +102,8 @@ public class FirstCustomEvent
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.style.ConstructorNonEmptyReturnTypeRule"
-		message="A constructor should not have a return type">
+		message="A constructor should not have a return type"
+        language="flex">
 		<description>Even if this is syntaxically correct, there should not be a return type for a constructor.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -107,7 +117,8 @@ public class VoidConstructor
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.SwitchStatementsShouldHaveDefaultRule"
-		message="A switch statement does not contain a default statement">
+		message="A switch statement does not contain a default statement"
+        language="flex">
 		<description>Switch statements should have a default label in order to detect corner cases.</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -124,8 +135,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
-		message="Do not use Object class.">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseObjectTypeRule"
+		message="Do not use Object class."
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -137,7 +150,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.NestedSwitchRule"
-		message="Switch must not be nested.">
+		message="Switch must not be nested."
+        language="flex">
 		<description>As a general practice, switch statement should not be used. Prefer using inheritance. It is even harder to read when siwtch statements are nested.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -162,7 +176,8 @@ public function foo( a : Number, b : Number ) : void
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.maintanability.ArrayFieldWithNoArrayElementTypeRule"
-		message="ArrayElementType metadata is not specified for an array-type field">
+		message="ArrayElementType metadata is not specified for an array-type field"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -175,7 +190,9 @@ public class ArrayVO {
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.maintanability.NonStaticConstantFieldRule" message="A constant field should be static">
+		class="com.adobe.ac.pmd.rules.maintanability.NonStaticConstantFieldRule"
+        message="A constant field should be static"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -186,7 +203,9 @@ public class MyObject {
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.unused.UnusedParameterRule" message="You should use all the parameters of a function">
+		class="com.adobe.ac.pmd.rules.unused.UnusedParameterRule"
+        message="You should use all the parameters of a function"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -198,7 +217,8 @@ public function foo( param1 : Number, param2 : Number, param3 : Number, param4 :
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.unused.UnusedLocalVariableRule"
-		message="You should delete an unused variable">
+		message="You should delete an unused variable"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -210,41 +230,50 @@ public function foo() : void
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.unused.UnusedPrivateMethodRule"
-		message="This private method does not seem to be used">
+		message="This private method does not seem to be used"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.switchrules.TooFewBrancheInSwitchStatementRule"
-		message="There are too few branches in this swicth statement">
+		message="There are too few branches in this swicth statement"
+        language="flex">
 		<description>Switch statements are designed for complex branches, and allow branches to share treatement. 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>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.style.BadFormatLoggerRule"
-		message="The loger is not correctly formatted">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.style.BadFormatLoggerRule"
+		message="The loger is not correctly formatted"
+        language="flex">
 		<description />
 		<priority>5</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.performance.AvoidInstanciationInLoopRule"
-		message="Instanciating a variable in a loop can be expensive">
+		message="Instanciating a variable in a loop can be expensive"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.architecture.ViewComponentReferencedInModelRule"
-		message="A view component should not be referenced in a model class">
+		message="A view component should not be referenced in a model class"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
-		message="Use strongly typed objects instead of *">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.maintanability.forbiddentypes.UseGenericTypeRule"
+		message="Use strongly typed objects instead of *"
+        language="flex">
 		<description />
 		<priority>1</priority>
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.DispatchHardCodedEventNameRule"
-		message="DispatchEvent function must dispatch constant strings">
+		message="DispatchEvent function must dispatch constant strings"
+        language="flex">
 		<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>3</priority>
 		<example><![CDATA[
@@ -259,7 +288,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.event.ListenForHardCodedEventNameRule"
-		message="addEventListener must not contain hard coded strings.">
+		message="addEventListener must not contain hard coded strings."
+        language="flex">
 		<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>3</priority>
 		<example><![CDATA[
@@ -272,13 +302,17 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.AlertShowRule"
-		message="Do not call Alert.show directly.">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.maintanability.AlertShowRule"
+		message="Do not call Alert.show directly."
+        language="flex">
 		<description>You should not Alert.show() directly. If an error occured in the system, you should probably use an ErrorManager to have a consistent way to manage those errors.</description>
 		<priority>1</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.empty.EmptyIfStmtRule"
-		message="No statements in this if statement">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.empty.EmptyIfStmtRule"
+		message="No statements in this if statement"
+        language="flex">
 		<description>Empty If Statement finds instances where a condition is checked but nothing is done about it.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -294,8 +328,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.maintanability.ExcessiveImportRule"
-		message="A high number of imports can indicate a high degree of coupling within an object.">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.maintanability.ExcessiveImportRule"
+		message="A high number of imports can indicate a high degree of coupling within an object."
+        language="flex">
 		<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>
 		<properties>
@@ -315,13 +351,17 @@ import blah.blah.Baz;
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.binding.BindingUtilsRule"
-		message="If you need to use BindingUtils, you should probably consider refactoring using events">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.binding.BindingUtilsRule"
+		message="If you need to use BindingUtils, you should probably consider refactoring using events"
+        language="flex">
 		<description />
 		<priority>3</priority>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.style.OverLongLineRule"
-		message="Too long line ({0} maximum)">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.style.OverLongLineRule"
+		message="Too long line ({0} maximum)"
+        language="flex">
 		<description />
 		<priority>5</priority>
 		<properties>
@@ -332,7 +372,8 @@ import blah.blah.Baz;
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.style.ImportFromSamePackageRule"
-		message="Imports from the same package are not necessary">
+		message="Imports from the same package are not necessary"
+        language="flex">
 		<description />
 		<priority>1</priority>
 		<example><![CDATA[
@@ -347,8 +388,10 @@ package com.adobe.ac
 }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.naming.IncorrectClassCase"
-		message="A class name must start by a majuscule character">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.naming.IncorrectClassCase"
+		message="A class name must start by a majuscule character"
+        language="flex">
 		<description />
 		<priority>3</priority>
 		<example><![CDATA[
@@ -359,7 +402,8 @@ public class foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.BindableModelLocatorRule"
-		message="A modelLocator must not be Bindable at a class level">
+		message="A modelLocator must not be Bindable at a class level"
+        language="flex">
 		<description>A bindable ModelLocator could leads to performance issues due to bindings</description>
 		<priority>1</priority>
 		<example><![CDATA[
@@ -371,7 +415,8 @@ public class foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.ReferenceModelLocatorOutsideTheMainApplicationRule"
-		message="The ModelLocator should be only accessible from the main application file">
+		message="The ModelLocator should be only accessible from the main application file"
+        language="flex">
 		<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>
 		<example><![CDATA[
@@ -384,8 +429,10 @@ package business
 }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.cairngorm.FatControllerRule"
-		message="A FrontController must nor add all its commands within the Controller constructor.">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.cairngorm.FatControllerRule"
+		message="A FrontController must nor add all its commands within the Controller constructor."
+        language="flex">
 		<description>Try split them into methods where you add commands depending on their fonctional area.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -417,12 +464,15 @@ package control
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.cairngorm.BadCairngormEventNameFormatRule"
-		message="A Cairngorm event name should contain the function area name before the actual event name">
+		message="A Cairngorm event name should contain the function area name before the actual event name"
+        language="flex">
 		<description>You would have something like 'productManagement.getProducts' as an event name.</description>
 		<priority>3</priority>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.sizing.TooManyFunctionRule" message="Too many methods detected">
+		class="com.adobe.ac.pmd.rules.sizing.TooManyFunctionRule"
+        message="Too many methods detected"
+        language="flex">
 		<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>
 		<properties>
@@ -441,7 +491,9 @@ public class Foo
            ]]></example>
 	</rule>
 	<rule since="0.1"
-		class="com.adobe.ac.pmd.rules.sizing.TooLongFunctionRule" message="This function is far long">
+		class="com.adobe.ac.pmd.rules.sizing.TooLongFunctionRule"
+        message="This function is far long"
+        language="flex">
 		<description>Violations of this rule usually indicate that the method is doing too much. Try to reduce the method size by creating helper methods and removing any copy/pasted code.</description>
 		<priority>3</priority>
 		<properties>
@@ -463,7 +515,8 @@ public class Foo
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.sizing.TooLongSwitchCaseRule"
-		message="Long switch case detected">
+		message="Long switch case detected"
+        language="flex">
 		<description>A switch case statement should be either empty, or contain a break, or call another method.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -490,7 +543,8 @@ public class Bar
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.sizing.TooManyParametersRule"
-		message="Long parameter list detected">
+		message="Long parameter list detected"
+        language="flex">
 		<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>
 		<priority>1</priority>
 		<properties>
@@ -508,8 +562,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.sizing.TooManyPublicRule"
-		message="Too much public fields or functions detected">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.sizing.TooManyPublicRule"
+		message="Too much public fields or functions detected"
+        language="flex">
 		<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>
 		<properties>
@@ -534,8 +590,10 @@ public class Foo
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.sizing.TooManyFieldsRule"
-		message="Too many field detected">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.sizing.TooManyFieldsRule"
+		message="Too many field detected"
+        language="flex">
 		<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/zip fields could instead have one Address field.</description>
 		<priority>3</priority>
 		<properties>
@@ -557,7 +615,8 @@ public class Person
 	</rule>
 	<rule since="0.1"
 		class="com.adobe.ac.pmd.rules.naming.TooShortVariableRule"
-		message="This variable name is too short">
+		message="This variable name is too short"
+        language="flex">
 		<description>Detects when a field, local, or parameter has a very short name.</description>
 		<priority>5</priority>
 		<example><![CDATA[
@@ -572,8 +631,10 @@ public class Something
    }
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.naming.PackageCaseRule"
-		message="A package name should be lower case">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.naming.PackageCaseRule"
+		message="A package name should be lower case"
+        language="flex">
 		<description>Detects when a package definition contains upper case characters.</description>
 		<priority>3</priority>
 		<example><![CDATA[
@@ -587,14 +648,17 @@ public class Something
          
            ]]></example>
 	</rule>
-	<rule since="0.1" class="com.adobe.ac.pmd.rules.css.StyleBlockInMxmlRule"
-		message="The style block is embed in the MXML file">
+	<rule since="0.1"
+        class="com.adobe.ac.pmd.rules.css.StyleBlockInMxmlRule"
+		message="The style block is embed in the MXML file"
+        language="flex">
 		<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 since="0.1"
 		class="com.adobe.ac.pmd.rules.performance.DynamicFiltersUsedInPopup"
-		message="A popup should use dynamic filters">
+		message="A popup should use dynamic filters"
+        language="flex">
 		<description>Prefer using embed filters in assets</description>
 		<priority>3</priority>
 	</rule>