You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/11/26 12:08:31 UTC

[06/11] isis git commit: ISIS-1538: moves static analysis check files to subdirectory

http://git-wip-us.apache.org/repos/asf/isis/blob/f921dc5d/example/application/simpleapp/modules/pmd-rulesets/basic.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/pmd-rulesets/basic.xml b/example/application/simpleapp/modules/pmd-rulesets/basic.xml
deleted file mode 100644
index f18af2c..0000000
--- a/example/application/simpleapp/modules/pmd-rulesets/basic.xml
+++ /dev/null
@@ -1,807 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Basic"
-    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">
-  <description>
-The Basic ruleset contains a collection of good practices which should be followed.
-  </description>
-
-	<rule name="JumbledIncrementer"
-    	  language="java"
-    	  since="1.0"
-          message="Avoid modifying an outer loop incrementer in an inner loop for update expression"
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#JumbledIncrementer">
-     <description>
-Avoid jumbled loop incrementers - its usually a mistake, and is confusing even if intentional.
-     </description>
-     <priority>3</priority>
-     <properties>
-         <property name="xpath">
-             <value>
- <![CDATA[
-//ForStatement
- [
-  ForUpdate/StatementExpressionList/StatementExpression/PostfixExpression/PrimaryExpression/PrimaryPrefix/Name/@Image
-  =
-  ancestor::ForStatement/ForInit//VariableDeclaratorId/@Image
- ]
- ]]>
-             </value>
-         </property>
-     </properties>
-     <example>
- <![CDATA[
-public class JumbledIncrementerRule1 {
-	public void foo() {
-		for (int i = 0; i < 10; i++) {			// only references 'i'
-			for (int k = 0; k < 20; i++) {		// references both 'i' and 'k'
-				System.out.println("Hello");
-			}
-		}
-	}
-}
- ]]>
-     </example>
-     </rule>
-
-    <rule name="ForLoopShouldBeWhileLoop"
-          language="java"
-          since="1.02"
-          message="This for loop could be simplified to a while loop"
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#ForLoopShouldBeWhileLoop">
-      <description>
-Some for loops can be simplified to while loops, this makes them more concise.
-      </description>
-      <priority>3</priority>
-    <properties>
-        <property name="xpath">
-            <value>
-                <![CDATA[
-//ForStatement
- [count(*) > 1]
- [not(LocalVariableDeclaration)]
- [not(ForInit)]
- [not(ForUpdate)]
- [not(Type and Expression and Statement)]
- ]]>
-            </value>
-        </property>
-    </properties>
-      <example>
-  <![CDATA[
-public class Foo {
-	void bar() {
-		for (;true;) true; // No Init or Update part, may as well be: while (true)
-	}
-}
- ]]>
-      </example>
-    </rule>
-
-    <rule name="OverrideBothEqualsAndHashcode"
-          language="java"
-          since="0.4"
-          message="Ensure you override both equals() and hashCode()"
-          class="net.sourceforge.pmd.lang.java.rule.basic.OverrideBothEqualsAndHashcodeRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#OverrideBothEqualsAndHashcode">
-      <description>
-Override both public boolean Object.equals(Object other), and public int Object.hashCode(), or override neither.  Even if you are inheriting a hashCode() from a parent class, consider implementing hashCode and explicitly delegating to your superclass.
-      </description>
-      <priority>3</priority>
-      <example>
-  <![CDATA[
-public class Bar {		// poor, missing a hashcode() method
-	public boolean equals(Object o) {
-      // do some comparison
-	}
-}
-
-public class Baz {		// poor, missing an equals() method
-	public int hashCode() {
-      // return some hash value
-	}
-}
-
-public class Foo {		// perfect, both methods provided
-	public boolean equals(Object other) {
-      // do some comparison
-	}
-	public int hashCode() {
-      // return some hash value
-	}
-}
- ]]>
-      </example>
-    </rule>
-
-    <rule name="DoubleCheckedLocking"
-          language="java"
-          since="1.04"
-          message="Double checked locking is not thread safe in Java."
-          class="net.sourceforge.pmd.lang.java.rule.basic.DoubleCheckedLockingRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#DoubleCheckedLocking">
-      <description>
-Partially created objects can be returned by the Double Checked Locking pattern when used in Java.
-An optimizing JRE may assign a reference to the baz variable before it creates the object the
-reference is intended to point to.
-
-For more details refer to: http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double.html
-      </description>
-        <priority>1</priority>
-      <example>
-  <![CDATA[
-public class Foo {
-	Object baz;
-	Object bar() {
-		if (baz == null) { // baz may be non-null yet not fully created
-			synchronized(this) {
-				if (baz == null) {
-					baz = new Object();
-        		}
-      		}
-    	}
-		return baz;
-	}
-}
- ]]>
-      </example>
-    </rule>
-
-    <rule name="ReturnFromFinallyBlock"
-          language="java"
-          since="1.05"
-          message="Avoid returning from a finally block"
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#ReturnFromFinallyBlock">
-      <description>
-Avoid returning from a finally block, this can discard exceptions.
-      </description>
-      <priority>3</priority>
-      <properties>
-          <property name="xpath">
-              <value>
-<![CDATA[
-//FinallyStatement//ReturnStatement
-]]>
-              </value>
-          </property>
-      </properties>
-      <example>
-  <![CDATA[
-public class Bar {
-	public String foo() {
-		try {
-			throw new Exception( "My Exception" );
-		} catch (Exception e) {
-			throw e;
-		} finally {
-			return "A. O. K."; // return not recommended here
-		}
-	}
-}
-]]>
-      </example>
-    </rule>
-
-    <rule name="UnconditionalIfStatement"
-          language="java"
-          since="1.5"
-          message="Do not use 'if' statements that are always true or always false"
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#UnconditionalIfStatement">
-      <description>
-Do not use "if" statements whose conditionals are always true or always false.
-      </description>
-      <priority>3</priority>
-        <properties>
-            <property name="xpath">
-                <value>
- <![CDATA[
-//IfStatement/Expression
- [count(PrimaryExpression)=1]
- /PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
-]]>
-                </value>
-            </property>
-        </properties>
-      <example>
-  <![CDATA[
-public class Foo {
-	public void close() {
-		if (true) {		// fixed conditional, not recommended
-			// ...
-		}
-	}
-}
-]]>
-      </example>
-    </rule>
-
-    <rule name="BooleanInstantiation"
-          since="1.2"
-          message="Avoid instantiating Boolean objects; reference Boolean.TRUE or Boolean.FALSE or call Boolean.valueOf() instead."
-          class="net.sourceforge.pmd.lang.java.rule.basic.BooleanInstantiationRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#BooleanInstantiation">
-   <description>
-Avoid instantiating Boolean objects; you can reference Boolean.TRUE, Boolean.FALSE, or call Boolean.valueOf() instead.
-   </description>
-      <priority>2</priority>
-   <example>
-   <![CDATA[
-Boolean bar = new Boolean("true");		// unnecessary creation, just reference Boolean.TRUE;
-Boolean buz = Boolean.valueOf(false);	// ...., just reference Boolean.FALSE;
-   ]]>
-   </example>
-   </rule>
-
-    <rule name="CollapsibleIfStatements"
-          language="java"
-          since="3.1"
-          message="These nested if statements could be combined"
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#CollapsibleIfStatements">
-      <description>
-Sometimes two consecutive 'if' statements can be consolidated by separating their conditions with a boolean short-circuit operator.
-      </description>
-      <priority>3</priority>
-      <properties>
-        <property name="xpath">
-            <value>
-                <![CDATA[
-//IfStatement[@Else='false']/Statement
- /IfStatement[@Else='false']
- |
-//IfStatement[@Else='false']/Statement
- /Block[count(BlockStatement)=1]/BlockStatement
-  /Statement/IfStatement[@Else='false']]]>
-            </value>
-        </property>
-      </properties>
-      <example>
-  <![CDATA[
-void bar() {
-	if (x) {			// original implementation
-		if (y) {
-			// do stuff
-		}
-	}
-}
-
-void bar() {
-	if (x && y) {		// optimized implementation
-		// do stuff
-	}
-}
- ]]>
-      </example>
-    </rule>
-
-	<rule name="ClassCastExceptionWithToArray"
-          language="java"
-          since="3.4"
-          message="This usage of the Collection.toArray() method will throw a ClassCastException."
-          class="net.sourceforge.pmd.lang.rule.XPathRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#ClassCastExceptionWithToArray">
-  <description>
-When deriving an array of a specific class from your Collection, one should provide an array of
-the same class as the parameter of the toArray() method. Doing otherwise you will will result
-in a ClassCastException.
-  </description>
-  <priority>3</priority>
-  <properties>
-    <property name="xpath">
-    <value>
-<![CDATA[
-//CastExpression[Type/ReferenceType/ClassOrInterfaceType[@Image !=
-"Object"]]/PrimaryExpression
-[
- PrimaryPrefix/Name[ends-with(@Image, '.toArray')]
- and
- PrimarySuffix/Arguments[count(*) = 0]
-and
-count(PrimarySuffix) = 1
-]
-]]>
-    </value>
-    </property>
-  </properties>
-  <example>
-<![CDATA[
-Collection c = new ArrayList();
-Integer obj = new Integer(1);
-c.add(obj);
-
-    // this would trigger the rule (and throw a ClassCastException if executed)
-Integer[] a = (Integer [])c.toArray();
-
-   // this is fine and will not trigger the rule
-Integer[] b = (Integer [])c.toArray(new Integer[c.size()]);
-]]>
-  </example>
-</rule>
-
-
-<rule  name="AvoidDecimalLiteralsInBigDecimalConstructor"
-       language="java"
-       since="3.4"
-       message="Avoid creating BigDecimal with a decimal (float/double) literal. Use a String literal"
-       class="net.sourceforge.pmd.lang.rule.XPathRule"
-       externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidDecimalLiteralsInBigDecimalConstructor">
-  <description>
-One might assume that the result of "new BigDecimal(0.1)" is exactly equal to 0.1, but it is actually
-equal to .1000000000000000055511151231257827021181583404541015625.
-This is because 0.1 cannot be represented exactly as a double (or as a binary fraction of any finite
-length). Thus, the long value that is being passed in to the constructor is not exactly equal to 0.1,
-appearances notwithstanding.
-
-The (String) constructor, on the other hand, is perfectly predictable: 'new BigDecimal("0.1")' is
-exactly equal to 0.1, as one would expect.  Therefore, it is generally recommended that the
-(String) constructor be used in preference to this one.
-  </description>
-  <priority>3</priority>
-  <properties>
-    <property name="xpath">
-    <value>
-<![CDATA[
-//AllocationExpression[ClassOrInterfaceType[@Image="BigDecimal"]
-and
-./Arguments/ArgumentList
-/Expression/PrimaryExpression/PrimaryPrefix/Literal[(not
-(ends-with
-(@Image,'"'))) and contains(@Image,".")]]
- ]]>
-    </value>
-    </property>
-  </properties>
-  <example>
-<![CDATA[
-BigDecimal bd = new BigDecimal(1.123);		// loss of precision, this would trigger the rule
-
-BigDecimal bd = new BigDecimal("1.123");   	// preferred approach
-
-BigDecimal bd = new BigDecimal(12);     	// preferred approach, ok for integer values
-]]>
-  </example>
-</rule>
-
-
-    <rule  name="MisplacedNullCheck"
-    	   language="java"
-           since="3.5"
-           message="The null check here is misplaced; if the variable is null there'll be a NullPointerException"
-           class="net.sourceforge.pmd.lang.rule.XPathRule"
-           externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#MisplacedNullCheck">
-      <description>
-The null check here is misplaced. If the variable is null a NullPointerException will be thrown.
-Either the check is useless (the variable will never be "null") or it is incorrect.
-      </description>
-      <priority>3</priority>
-      <properties>
-        <property name="xpath">
-        <value>
-    <![CDATA[
-//Expression
-    /*[self::ConditionalOrExpression or self::ConditionalAndExpression]
-    /descendant::PrimaryExpression/PrimaryPrefix
-    /Name[starts-with(@Image,
-        concat(ancestor::PrimaryExpression/following-sibling::EqualityExpression
-            [./PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
-            /PrimaryExpression/PrimaryPrefix
-            /Name[count(../../PrimarySuffix)=0]/@Image,".")
-        )
-     ]
-     [count(ancestor::ConditionalAndExpression/EqualityExpression
-            [@Image='!=']
-            [./PrimaryExpression/PrimaryPrefix/Literal/NullLiteral]
-            [starts-with(following-sibling::*/PrimaryExpression/PrimaryPrefix/Name/@Image,
-                concat(./PrimaryExpression/PrimaryPrefix/Name/@Image, '.'))]
-      ) = 0
-     ]
-    ]]>
-        </value>
-        </property>
-      </properties>
-      <example>
-    <![CDATA[
-public class Foo {
-	void bar() {
-		if (a.equals(baz) && a != null) {}
-		}
-}
-    ]]>
-      </example>
-      <example><![CDATA[
-public class Foo {
-	void bar() {
-		if (a.equals(baz) || a == null) {}
-	}
-}
-   ]]></example>
-    </rule>
-
-
-    <rule  name="AvoidThreadGroup"
-    	   language="java"
-           since="3.6"
-           message="Avoid using java.lang.ThreadGroup; it is not thread safe"
-           class="net.sourceforge.pmd.lang.rule.XPathRule"
-           externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidThreadGroup"
-           typeResolution="true">
-      <description>
-Avoid using java.lang.ThreadGroup; although it is intended to be used in a threaded environment
-it contains methods that are not thread-safe.
-      </description>
-      <priority>3</priority>
-      <properties>
-        <property name="xpath">
-        <value>
-<![CDATA[
-//AllocationExpression/ClassOrInterfaceType[pmd-java:typeof(@Image, 'java.lang.ThreadGroup')]|
-//PrimarySuffix[contains(@Image, 'getThreadGroup')]
-]]>
-        </value>
-        </property>
-      </properties>
-      <example>
-    <![CDATA[
-public class Bar {
-	void buz() {
-		ThreadGroup tg = new ThreadGroup("My threadgroup") ;
-		tg = new ThreadGroup(tg, "my thread group");
-		tg = Thread.currentThread().getThreadGroup();
-		tg = System.getSecurityManager().getThreadGroup();
-	}
-}
-    ]]>
-      </example>
-    </rule>
-
-    <rule name="BrokenNullCheck"
-          since="3.8"
-          message="Method call on object which may be null"
-          class="net.sourceforge.pmd.lang.java.rule.basic.BrokenNullCheckRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#BrokenNullCheck">
-        <description>
-The null check is broken since it will throw a NullPointerException itself.
-It is likely that you used || instead of &amp;&amp; or vice versa.
-     </description>
-        <priority>2</priority>
-        <example>
-<![CDATA[
-public String bar(String string) {
-  // should be &&
-	if (string!=null || !string.equals(""))
-		return string;
-  // should be ||
-	if (string==null && string.equals(""))
-		return string;
-}
-        ]]>
-        </example>
-    </rule>
-
-    <rule name="BigIntegerInstantiation"
-          since="3.9"
-          message="Don't create instances of already existing BigInteger and BigDecimal (ZERO, ONE, TEN)"
-          class="net.sourceforge.pmd.lang.java.rule.basic.BigIntegerInstantiationRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#BigIntegerInstantiation">
-  <description>
-Don't create instances of already existing BigInteger (BigInteger.ZERO, BigInteger.ONE) and
-for Java 1.5 onwards, BigInteger.TEN and BigDecimal (BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.TEN)
-  </description>
-  <priority>3</priority>
-  <example>
-<![CDATA[
-BigInteger bi = new BigInteger(1);		// reference BigInteger.ONE instead
-BigInteger bi2 = new BigInteger("0");	// reference BigInteger.ZERO instead
-BigInteger bi3 = new BigInteger(0.0);	// reference BigInteger.ZERO instead
-BigInteger bi4;
-bi4 = new BigInteger(0);				// reference BigInteger.ZERO instead
-]]>
-  </example>
-</rule>
-
-    <rule   name="AvoidUsingOctalValues"
-            since="3.9"
-            message="Do not start a literal by 0 unless it's an octal value"
-            class="net.sourceforge.pmd.lang.java.rule.basic.AvoidUsingOctalValuesRule"
-            externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidUsingOctalValues">
-    <description>
-    	<![CDATA[
-Integer literals should not start with zero since this denotes that the rest of literal will be
-interpreted as an octal value.
-    	]]>
-    </description>
-    <priority>3</priority>
-    <example>
-		    <![CDATA[
-int i = 012;	// set i with 10 not 12
-int j = 010;	// set j with 8 not 10
-k = i * j;		// set k with 80 not 120
-		    ]]>
-    </example>
-    </rule>
-
-    <rule   name="AvoidUsingHardCodedIP"
-            since="4.1"
-            message="Do not hard code the IP address ${variableName}"
-            class="net.sourceforge.pmd.lang.java.rule.basic.AvoidUsingHardCodedIPRule"
-            externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidUsingHardCodedIP">
-	    <description>
-	    	<![CDATA[
-Application with hard-coded IP addresses can become impossible to deploy in some cases.
-Externalizing IP adresses is preferable.
-	    	]]>
-	    </description>
-	    <priority>3</priority>
-	     <properties>
-            <property name="pattern" type="String" description="Regular Expression" value='^"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"$'/>
-        </properties>
-	    <example>
-	    <![CDATA[
-public class Foo {
-	private String ip = "127.0.0.1"; 	// not recommended
-}
-	    ]]>
-	    </example>
-    </rule>
-
-    <!--
-    not available in maven-pmd-plugin ???
-  <rule name="CheckResultSet"
-    	language="java"
-        since="4.1"
-        class="net.sourceforge.pmd.lang.java.rule.basic.CheckResultSetRule"
-        message="Always check the return of one of the navigation method (next,previous,first,last) of a ResultSet."
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#CheckResultSet">
-        <description>
-            <![CDATA[
-Always check the return values of navigation methods (next, previous, first, last) of a ResultSet.
-If the value return is 'false', it should be handled properly.
-            ]]>
-        </description>
-        <priority>3</priority>
-        <example>
-            <![CDATA[
-Statement stat = conn.createStatement();
-ResultSet rst = stat.executeQuery("SELECT name FROM person");
-rst.next(); 	// what if it returns false? bad form
-String firstName = rst.getString(1);
-
-Statement stat = conn.createStatement();
-ResultSet rst = stat.executeQuery("SELECT name FROM person");
-if (rst.next()) {	// result is properly examined and used
-    String firstName = rst.getString(1);
-	} else  {
-		// handle missing data
-}
-            ]]>
-        </example>
-    </rule>
-    -->
-    
-	<rule name="AvoidMultipleUnaryOperators"
-		  since="4.2"
-		  class="net.sourceforge.pmd.lang.java.rule.basic.AvoidMultipleUnaryOperatorsRule"
-		  message="Using multiple unary operators may be a bug, and/or is confusing."
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidMultipleUnaryOperators">
-        <description>
-            <![CDATA[
-The use of multiple unary operators may be problematic, and/or confusing.
-Ensure that the intended usage is not a bug, or consider simplifying the expression.
-            ]]>
-        </description>
-        <priority>2</priority>
-        <example>
-            <![CDATA[
-// These are typo bugs, or at best needlessly complex and confusing:
-int i = - -1;
-int j = + - +1;
-int z = ~~2;
-boolean b = !!true;
-boolean c = !!!true;
-
-// These are better:
-int i = 1;
-int j = -1;
-int z = 2;
-boolean b = true;
-boolean c = false;
-
-// And these just make your brain hurt:
-int i = ~-2;
-int j = -~7;
-            ]]>
-        </example>
-    </rule>
-
-  <rule name="ExtendsObject"
-  		language="java"
-        since="5.0"
-        message="No need to explicitly extend Object."
-        class="net.sourceforge.pmd.lang.rule.XPathRule"
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#ExtendsObject">
-    <description>No need to explicitly extend Object.</description>
-    <priority>4</priority>
-    <properties>
-       <property name="xpath">
-          <value>
-          <![CDATA[
-//ExtendsList/ClassOrInterfaceType[@Image='Object' or @Image='java.lang.Object']
-          ]]>
-          </value>
-       </property>
-    </properties>
-    <example>
-    <![CDATA[
-public class Foo extends Object { 	// not required
-}
-    ]]>
-    </example>
-  </rule>
-
-	<rule name="CheckSkipResult"
-	      language="java"
-	  	  since="5.0"
-          message="Check the value returned by the skip() method of an InputStream to see if the requested number of bytes has been skipped."
-          class="net.sourceforge.pmd.lang.java.rule.basic.CheckSkipResultRule"
-	  	  externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#CheckSkipResult">
-        <description>The skip() method may skip a smaller number of bytes than requested. Check the returned value to find out if it was the case or not.</description>
-        <priority>3</priority>
-        <example>
-        <![CDATA[
-public class Foo {
-
-   private FileInputStream _s = new FileInputStream("file");
-
-   public void skip(int n) throws IOException {
-      _s.skip(n); // You are not sure that exactly n bytes are skipped
-   }
-
-   public void skipExactly(int n) throws IOException {
-      while (n != 0) {
-         long skipped = _s.skip(n);
-         if (skipped == 0)
-            throw new EOFException();
-         n -= skipped;
-      }
-   }
-        ]]>
-        </example>
-    </rule>
-
-	<rule name="AvoidBranchingStatementAsLastInLoop"
-	  	  since="5.0"
-		  class="net.sourceforge.pmd.lang.java.rule.basic.AvoidBranchingStatementAsLastInLoopRule"
-		  message="Avoid using a branching statement as the last in a loop."
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#AvoidBranchingStatementAsLastInLoop">
-        <description>
-            <![CDATA[
-Using a branching statement as the last part of a loop may be a bug, and/or is confusing.
-Ensure that the usage is not a bug, or consider using another approach.
-            ]]>
-        </description>
-        <priority>2</priority>
-        <example>
-            <![CDATA[
-  // unusual use of branching statement in a loop
-for (int i = 0; i < 10; i++) {
-	if (i*i <= 25) {
-		continue;
-	}
-	break;
-}
-
-  // this makes more sense...
-for (int i = 0; i < 10; i++) {
-	if (i*i > 25) {
-		break;
-	}
-}
-            ]]>
-        </example>
-    </rule>
-
-    <rule  name="DontCallThreadRun"
-           language="java"
-           since="4.3"
-           message="Don't call Thread.run() explicitly, use Thread.start()"
-           class="net.sourceforge.pmd.lang.rule.XPathRule"
-           externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#DontCallThreadRun">
-      <description>
-Explicitly calling Thread.run() method will execute in the caller's thread of control.  Instead, call Thread.start() for the intended behavior.
-      </description>
-      <priority>4</priority>
-      <properties>
-        <property name="xpath">
-          <value>
-<![CDATA[
-//StatementExpression/PrimaryExpression
-[
-    PrimaryPrefix
-    [
-        ./Name[ends-with(@Image, '.run') or @Image = 'run']
-        and substring-before(Name/@Image, '.') =//VariableDeclarator/VariableDeclaratorId/@Image
-        [../../../Type/ReferenceType[ClassOrInterfaceType/@Image = 'Thread']]
-        or (
-        ./AllocationExpression/ClassOrInterfaceType[@Image = 'Thread']
-        and ../PrimarySuffix[@Image = 'run'])
-    ]
-]
-]]>
-         </value>
-        </property>
-      </properties>
-      <example>
-<![CDATA[
-Thread t = new Thread();
-t.run();            // use t.start() instead
-new Thread().run(); // same violation
-]]>
-      </example>
-    </rule>
-
-  <rule  name="DontUseFloatTypeForLoopIndices"
-         language="java"
-         since="4.3"
-         message="Don't use floating point for loop indices. If you must use floating point, use double."
-         class="net.sourceforge.pmd.lang.rule.XPathRule"
-         externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/basic.html#DontUseFloatTypeForLoopIndices">
-    <description>
-Don't use floating point for loop indices. If you must use floating point, use double
-unless you're certain that float provides enough precision and you have a compelling
-performance need (space or time).
-    </description>
-    <priority>3</priority>
-    <properties>
-      <property name="xpath">
-        <value>
-<![CDATA[
-//ForStatement/ForInit/LocalVariableDeclaration
-/Type/PrimitiveType[@Image="float"]
-]]>
-       </value>
-      </property>
-    </properties>
-    <example>
-<![CDATA[
-public class Count {
-  public static void main(String[] args) {
-    final int START = 2000000000;
-    int count = 0;
-    for (float f = START; f < START + 50; f++)
-      count++;
-      //Prints 0 because (float) START == (float) (START + 50).
-      System.out.println(count);
-      //The termination test misbehaves due to floating point granularity.
-    }
-}
-]]>
-    </example>
-  </rule>
-
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyCatchBlock" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyIfStmt" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyWhileStmt" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyTryBlock" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyFinallyBlock" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptySwitchStatements" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptySynchronizedBlock" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyStatementNotInLoop" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyInitializer" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyStatementBlock" />
-    <rule deprecated="true" ref="rulesets/java/empty.xml/EmptyStaticInitializer" />
-
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UnnecessaryReturn" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UselessOverridingMethod" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals" />
-    <rule deprecated="true" ref="rulesets/java/unnecessary.xml/UselessParentheses" />
-
-</ruleset>

http://git-wip-us.apache.org/repos/asf/isis/blob/f921dc5d/example/application/simpleapp/modules/pmd-rulesets/imports.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/pmd-rulesets/imports.xml b/example/application/simpleapp/modules/pmd-rulesets/imports.xml
deleted file mode 100644
index 8948262..0000000
--- a/example/application/simpleapp/modules/pmd-rulesets/imports.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Import Statements"
-    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">
-
-  <description>
-These rules deal with different problems that can occur with import statements.
-  </description>
-
-  <rule name="DuplicateImports"
-  		  since="0.5"
-        message="Avoid duplicate imports such as ''{0}''"
-        class="net.sourceforge.pmd.lang.java.rule.imports.DuplicateImportsRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#DuplicateImports">
-    <description>
-Duplicate or overlapping import statements should be avoided.
-    </description>
-      <priority>4</priority>
-    <example>
-<![CDATA[
-import java.lang.String;
-import java.lang.*;
-public class Foo {}
-]]>
-    </example>
-    </rule>
-
-  <rule name="DontImportJavaLang"
-  		  since="0.5"
-        message="Avoid importing anything from the package 'java.lang'"
-        class="net.sourceforge.pmd.lang.java.rule.imports.DontImportJavaLangRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#DontImportJavaLang">
-    <description>
-Avoid importing anything from the package 'java.lang'.  These classes are automatically imported (JLS 7.5.3).
-    </description>
-      <priority>4</priority>
-    <example>
-<![CDATA[
-import java.lang.String;	// this is unnecessary
-
-public class Foo {}
-
-// --- in another source code file...
-
-import java.lang.*;	// this is bad
-
-public class Foo {}
-]]>
-    </example>
-    </rule>
-
-  <rule name="UnusedImports"
-  		  since="1.0"
-        message="Avoid unused imports such as ''{0}''"
-        class="net.sourceforge.pmd.lang.java.rule.imports.UnusedImportsRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#UnusedImports">
-    <description>
-Avoid the use of unused import statements to prevent unwanted dependencies.
-    </description>
-      <priority>4</priority>
-    <example>
-<![CDATA[
-// this is bad
-import java.io.File;
-public class Foo {}
-]]>
-    </example>
-    </rule>
-
-    <rule name="ImportFromSamePackage"
-    		since="1.02"
-         message="No need to import a type that lives in the same package"
-         class="net.sourceforge.pmd.lang.java.rule.imports.ImportFromSamePackageRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#ImportFromSamePackage">
-     <description>
-There is no need to import a type that lives in the same package.
-     </description>
-        <priority>3</priority>
-     <example>
- <![CDATA[
- package foo;
- 
- import foo.Buz; // no need for this
- import foo.*; // or this
- 
- public class Bar{}
- ]]>
-     </example>
-     </rule>
-
-	<rule	name="TooManyStaticImports"
-   		language="java"
-	      since="4.1"
-        	class="net.sourceforge.pmd.lang.rule.XPathRule"
-        	message="Too many static imports may lead to messy code"
-       		externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#TooManyStaticImports">
-       		<description><![CDATA[
-If you overuse the static import feature, it can make your program unreadable and 
-unmaintainable, polluting its namespace with all the static members you import. 
-Readers of your code (including you, a few months after you wrote it) will not know 
-which class a static member comes from (Sun 1.5 Language Guide).
-		 ]]></description>
-			<priority>3</priority>
-       		<properties>
-	            <property name="maximumStaticImports" type="Integer" 
-	            description="All static imports can be disallowed by setting this to 0" min="0" max="100" value="4"/>
-	            <property name="xpath">
-	                <value><![CDATA[
-.[count(ImportDeclaration[@Static = 'true']) > $maximumStaticImports]
-	             ]]></value>
-	            </property>
-	        </properties>
-    	 	<example><![CDATA[
-import static Lennon;
-import static Ringo;
-import static George;
-import static Paul;
-import static Yoko; // Too much !
-		  ]]></example>
-    </rule>
-    
-	<rule	name="UnnecessaryFullyQualifiedName"
-   		language="java"
-	      since="5.0"
-        	class="net.sourceforge.pmd.lang.java.rule.imports.UnnecessaryFullyQualifiedNameRule"
-        	message="Unnecessary use of fully qualified name ''{0}'' due to existing import ''{1}''"
-       		externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/imports.html#UnnecessaryFullyQualifiedName">
-       		<description><![CDATA[
-Import statements allow the use of non-fully qualified names.  The use of a fully qualified name
-which is covered by an import statement is redundant.  Consider using the non-fully qualified name.
-		 ]]></description>
-			<priority>4</priority>
-    	 	<example><![CDATA[
-import java.util.List;
-
-public class Foo {
-   private java.util.List list1; // Unnecessary FQN
-   private List list2; // More appropriate given import of 'java.util.List'
-}
-		  ]]></example>
-    </rule>
-
-</ruleset>

http://git-wip-us.apache.org/repos/asf/isis/blob/f921dc5d/example/application/simpleapp/modules/pmd-rulesets/rulesets.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/pmd-rulesets/rulesets.properties b/example/application/simpleapp/modules/pmd-rulesets/rulesets.properties
deleted file mode 100644
index d95e632..0000000
--- a/example/application/simpleapp/modules/pmd-rulesets/rulesets.properties
+++ /dev/null
@@ -1 +0,0 @@
-rulesets.filenames=rulesets/java/basic.xml,rulesets/java/imports.xml,rulesets/java/unusedcode.xml

http://git-wip-us.apache.org/repos/asf/isis/blob/f921dc5d/example/application/simpleapp/modules/pmd-rulesets/unusedcode.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/pmd-rulesets/unusedcode.xml b/example/application/simpleapp/modules/pmd-rulesets/unusedcode.xml
deleted file mode 100644
index 802d18f..0000000
--- a/example/application/simpleapp/modules/pmd-rulesets/unusedcode.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0"?>
-
-<ruleset name="Unused Code"
-    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">
-  <description>
-The Unused Code ruleset contains rules that find unused or ineffective code.
-  </description>
-
-  <rule name="UnusedPrivateField"
-  		since="0.1"
-        language="java"
-        message="Avoid unused private fields such as ''{0}''."
-        class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedPrivateFieldRule"
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/unusedcode.html#UnusedPrivateField">
-    <description>
-Detects when a private field is declared and/or assigned a value, but not used.
-    </description>
-      <priority>3</priority>
-    <example>
-<![CDATA[
-public class Something {
-  private static int FOO = 2; // Unused
-  private int i = 5; // Unused
-  private int j = 6;
-  public int addOne() {
-    return j++;
-  }
-}
-]]>
-    </example>
-  </rule>
-
-  <rule name="UnusedLocalVariable"
-        language="java"
-        since="0.1"
-        message="Avoid unused local variables such as ''{0}''."
-        class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedLocalVariableRule"
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/unusedcode.html#UnusedLocalVariable">
-    <description>
-Detects when a local variable is declared and/or assigned, but not used.
-    </description>
-    <priority>3</priority>
-
-    <example>
-<![CDATA[
-public class Foo {
-	public void doSomething() {
-		int i = 5; // Unused
-	}
-}
-]]>
-    </example>
-  </rule>
-
-  <rule name="UnusedPrivateMethod"
-        language="java"
-        since="0.7"
-        message="Avoid unused private methods such as ''{0}''."
-        class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedPrivateMethodRule"
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/unusedcode.html#UnusedPrivateMethod">
-    <description>
-Unused Private Method detects when a private method is declared but is unused.
-    </description>
-        <priority>3</priority>
-    <example>
-<![CDATA[
-public class Something {
-	private void foo() {} // unused
-}
-]]>
-    </example>
-  </rule>
-
-
-  <rule name="UnusedFormalParameter"
-        language="java"
-        since="0.8"
-        message="Avoid unused {0} parameters such as ''{1}''."
-        class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedFormalParameterRule"
-        externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/unusedcode.html#UnusedFormalParameter">
-    <description>
-Avoid passing parameters to methods or constructors without actually referencing them in the method body.
-    </description>
-      <priority>3</priority>
-
-    <example>
-<![CDATA[
-public class Foo {
-	private void bar(String howdy) {
-	// howdy is not used
-	}
-}
-]]>
-    </example>
-  </rule>
-
-    <rule name="UnusedModifier"
-          language="java"
-          since="1.02"
-          message="Avoid modifiers which are implied by the context"
-          class="net.sourceforge.pmd.lang.java.rule.unusedcode.UnusedModifierRule"
-          externalInfoUrl="http://pmd.sourceforge.net/pmd-5.0.5/rules/java/unusedcode.html#UnusedModifier">
-     <description>
-Fields in interfaces are automatically public static final, and methods are public abstract.
-Classes or interfaces nested in an interface are automatically public and static (all nested interfaces are automatically static).
-For historical reasons, modifiers which are implied by the context are accepted by the compiler, but are superfluous.
-     </description>
-        <priority>3</priority>
-     <example>
- <![CDATA[
-public interface Foo {
-  public abstract void bar(); 		// both abstract and public are ignored by the compiler
-  public static final int X = 0; 	// public, static, and final all ignored
-  public static class Bar {} 		// public, static ignored
-  public static interface Baz {} 	// ditto
-}
-public class Bar {
-  public static interface Baz {} // static ignored
-}
- ]]>
-     </example>
-     </rule>
- </ruleset>

http://git-wip-us.apache.org/repos/asf/isis/blob/f921dc5d/example/application/simpleapp/modules/pmd.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/modules/pmd.xml b/example/application/simpleapp/modules/pmd.xml
deleted file mode 100644
index dbaf4af..0000000
--- a/example/application/simpleapp/modules/pmd.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<ruleset name="Maven Ruleset"
-  xmlns="http://pmd.sf.net/ruleset/1.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  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">
-  
-  <!-- 
-    Customized PMD ruleset for Maven, see [0] for more information 
-    [0] http://pmd.sourceforge.net/howtomakearuleset.html
-  -->
-  
-  <description>
-    This ruleset checks the code for discouraged programming constructs.
-  </description>
-  
-  <rule ref="pmd-rulesets/basic.xml">
-    <exclude name="EmptyCatchBlock"/>
-  </rule>
-  <rule ref="pmd-rulesets/basic.xml/EmptyCatchBlock">
-    <properties>
-      <property name="allowCommentedBlocks" value="true"/>
-    </properties>
-  </rule>
-  
-  <rule ref="pmd-rulesets/unusedcode.xml"/>
-  <rule ref="pmd-rulesets/imports.xml"/>
-</ruleset>