You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2018/02/02 13:07:35 UTC

[01/11] cayenne git commit: Code check

Repository: cayenne
Updated Branches:
  refs/heads/master 96914de46 -> d8a944b0b


Code check


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/93510a7d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/93510a7d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/93510a7d

Branch: refs/heads/master
Commit: 93510a7dec00427154697ad1f16ade4f6d1c1327
Parents: 54bb53a
Author: Arseni Bulatski <an...@gmail.com>
Authored: Wed Jan 24 10:28:03 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Wed Jan 24 16:45:15 2018 +0300

----------------------------------------------------------------------
 .../src/main/resources/cayenne-checkstyle.xml   | 16 +---
 .../src/main/resources/cayenne-pmd.xml          | 97 ++++----------------
 .../main/resources/cayenne-tests-checkstyle.xml |  3 -
 .../src/main/resources/cayenne-tests-pmd.xml    | 48 +++++-----
 cayenne-cache-invalidation/pom.xml              | 15 +++
 .../CacheInvalidationModuleProvider.java        |  3 +-
 cayenne-cgen/pom.xml                            | 19 ++++
 .../org/apache/cayenne/gen/StringUtils.java     |  9 +-
 cayenne-client-jetty/pom.xml                    |  5 -
 .../rop/JettyHttpClientConnectionProvider.java  |  2 +-
 .../cayenne/rop/http/JettyHttpROPConnector.java |  5 +-
 cayenne-client/pom.xml                          |  5 -
 .../apache/cayenne/remote/BaseConnection.java   |  2 +-
 .../remote/hessian/DataRowDeserializer.java     |  2 +-
 .../java/org/apache/cayenne/rop/ROPUtil.java    | 15 ++-
 .../cayenne/rop/http/HttpROPConnector.java      |  2 +-
 cayenne-commitlog/pom.xml                       | 15 +++
 .../CommitLogServerModuleProvider.java          |  3 +-
 cayenne-crypto/pom.xml                          |  6 --
 cayenne-dbsync/pom.xml                          | 14 +++
 .../merge/factory/IngresMergerTokenFactory.java |  3 +-
 .../reverse/configuration/ToolsModule.java      |  2 +-
 .../reverse/dbimport/DefaultDbImportAction.java |  4 +-
 .../reverse/dbimport/FilterContainer.java       |  5 +-
 .../dbsync/reverse/dbimport/PatternParam.java   |  4 +-
 cayenne-di/pom.xml                              |  5 -
 .../main/java/org/apache/cayenne/di/Key.java    |  2 +-
 .../java/org/apache/cayenne/di/TypeLiteral.java | 10 +-
 .../java/org/apache/cayenne/di/spi/DIGraph.java |  3 +-
 .../di/spi/DefaultAdhocObjectFactory.java       |  6 +-
 .../apache/cayenne/di/spi/DefaultInjector.java  |  4 +-
 cayenne-jcache/pom.xml                          | 17 ++++
 .../apache/cayenne/jcache/JCacheConstants.java  |  7 +-
 .../jcache/JCacheServerModuleProvider.java      |  3 +-
 cayenne-joda/pom.xml                            | 25 +++--
 cayenne-lifecycle/pom.xml                       |  5 -
 .../cayenne/lifecycle/id/EntityIdCoder.java     |  2 +-
 .../apache/cayenne/lifecycle/id/IdCoder.java    |  2 +-
 .../cayenne/lifecycle/id/StringIdQuery.java     |  4 +-
 cayenne-osgi/pom.xml                            | 16 ++++
 .../configuration/osgi/OsgiModuleBuilder.java   |  2 +-
 cayenne-project-compatibility/pom.xml           | 16 ++++
 ...ompatibilityDataChannelDescriptorLoader.java |  4 +-
 .../compatibility/DefaultDocumentProvider.java  |  2 +-
 cayenne-project/pom.xml                         |  5 -
 .../cayenne/project/FileProjectSaver.java       |  2 +-
 .../project/upgrade/DefaultUpgradeService.java  | 12 ++-
 .../upgrade/handlers/UpgradeHandler_V9.java     |  6 +-
 cayenne-protostuff/pom.xml                      |  5 -
 cayenne-rop-server/pom.xml                      | 15 +++
 .../java/org/apache/cayenne/CayenneContext.java | 15 +--
 .../cayenne/CayenneContextChildDiffLoader.java  |  5 +-
 .../cayenne/CayenneContextMergeHandler.java     | 16 +---
 .../remote/RemoteIncrementalFaultList.java      |  9 +-
 .../apache/cayenne/remote/RemoteSession.java    | 11 ++-
 cayenne-server/pom.xml                          |  7 +-
 cayenne-velocity/pom.xml                        | 15 +++
 cayenne-web/pom.xml                             | 24 +++--
 pom.xml                                         | 34 +------
 59 files changed, 325 insertions(+), 295 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
index 269ff41..90587cb 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
@@ -33,9 +33,7 @@
         <module name="IllegalCatch">
             <property name="severity" value="warning"/>
         </module>
-        <module name="DoubleCheckedLocking">
-            <property name="severity" value="warning"/>
-        </module>
+
         <module name="FallThrough">
             <property name="severity" value="warning"/>
         </module>
@@ -51,9 +49,6 @@
         <module name="CovariantEquals">
             <property name="severity" value="warning"/>
         </module>
-        <module name="VisibilityModifier">
-            <property name="severity" value="info"/>
-        </module>
         <module name="ConstantName">
             <property name="severity" value="info"/>
             <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
@@ -64,19 +59,10 @@
         <module name="ArrayTypeStyle">
             <property name="severity" value="info"/>
         </module>
-        <module name="LeftCurly">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="AnonInnerLength">
-            <property name="severity" value="warning"/>
-        </module>
         <module name="EqualsAvoidNull">
             <property name="severity" value="warning"/>
             <property name="ignoreEqualsIgnoreCase" value="false"/>
         </module>
-        <module name="DeclarationOrder">
-            <property name="severity" value="info"/>
-        </module>
         <module name="AvoidNestedBlocks">
             <property name="severity" value="warning"/>
         </module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
index 04c88c2..7c26548 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
@@ -50,13 +50,13 @@
   <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
+  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyFinallyBlock">
+  <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyIfStmt">
+  <rule ref="rulesets/java/empty.xml/EmptyIfStmt">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
@@ -65,9 +65,6 @@
   <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount">
-    <priority>4</priority>
-  </rule>
   <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
     <priority>3</priority>
   </rule>
@@ -89,6 +86,9 @@
   <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
     <priority>3</priority>
   </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
+    <priority>3</priority>
+  </rule>
   <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
     <priority>3</priority>
   </rule>
@@ -104,18 +104,9 @@
   <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/controversial.xml/AvoidFinalLocalVariable">
-    <priority>4</priority>
-  </rule>
   <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/naming.xml/BooleanGetMethodName">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/DefaultPackage">
-    <priority>5</priority>
-  </rule>
   <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
     <priority>3</priority>
   </rule>
@@ -128,18 +119,13 @@
   <rule ref="rulesets/java/naming.xml/ShortMethodName">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/naming.xml/PackageCase">
-    <priority>4</priority>
-  </rule>
   <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
-    <priority>3</priority>
-  </rule>
+
   <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
     <priority>1</priority>
   </rule>
@@ -155,12 +141,6 @@
       <property name="maxmethods" value="30" />
     </properties>
   </rule>
-  <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField">
-    <priority>4</priority>
-  </rule>
   <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
     <priority>1</priority>
   </rule>
@@ -170,10 +150,10 @@
   <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptySynchronizedBlock">
+  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyWhileStmt">
+  <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/EqualsNull">
@@ -191,10 +171,7 @@
   <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/UselessOperationOnImmutable">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-jakarta-commons.xml/GuardDebugLogging">
+  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
@@ -203,7 +180,7 @@
   <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/AvoidConstantsInterface">
+  <rule ref="rulesets/java/design.xml/ConstantsInInterface">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
@@ -230,21 +207,6 @@
   <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/strings.xml/AvoidStringBufferField">
-    <priority>5</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/AvoidUsingShortType">
-    <priority>5</priority>
-  </rule>
-  <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/NullAssignment">
-    <priority>5</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/ReturnEmptyArrayRatherThanNull">
-    <priority>5</priority>
-  </rule>
   <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
     <priority>3</priority>
   </rule>
@@ -263,19 +225,19 @@
   <rule ref="rulesets/java/design.xml/BadComparison">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyInitializer">
+  <rule ref="rulesets/java/empty.xml/EmptyInitializer">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyStatementNotInLoop">
+  <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyTryBlock">
+  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/strings.xml/StringToString">
@@ -284,52 +246,25 @@
   <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/UnnecessaryLocalBeforeReturn">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/AvoidInstantiatingObjectsInLoops">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/imports.xml/DontImportJavaLang">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/DontImportSun">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty">
-    <priority>4</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/UselessStringValueOf">
-    <priority>4</priority>
-  </rule>
   <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/CloseResource">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/j2ee.xml/DoNotUseThreads">
-    <priority>3</priority>
-  </rule>
   <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/AvoidSynchronizedAtMethodLevel">
-    <priority>3</priority>
-  </rule>
   <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptySwitchStatements">
+  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/basic.xml/EmptyStaticInitializer">
+  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-checkstyle.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-checkstyle.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-checkstyle.xml
index 249fd4b..fe58fda 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-checkstyle.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-checkstyle.xml
@@ -30,9 +30,6 @@
             <property name="severity" value="warning"/>
             <property name="max" value="200"/>
         </module>
-        <module name="DoubleCheckedLocking">
-            <property name="severity" value="warning"/>
-        </module>
         <module name="FallThrough">
             <property name="severity" value="warning"/>
         </module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-pmd.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-pmd.xml
index 4e0f8f4..52ebc67 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-pmd.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-tests-pmd.xml
@@ -21,7 +21,7 @@
   <rule ref="rulesets/optimizations.xml/AvoidArrayLoops">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/BooleanInstantiation">
+  <rule ref="rulesets/empty.xml/BooleanInstantiation">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal">
@@ -48,13 +48,13 @@
   <rule ref="rulesets/controversial.xml/DoNotCallGarbageCollectionExplicitly">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyCatchBlock">
+  <rule ref="rulesets/empty.xml/EmptyCatchBlock">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyFinallyBlock">
+  <rule ref="rulesets/empty.xml/EmptyFinallyBlock">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyIfStmt">
+  <rule ref="rulesets/empty.xml/EmptyIfStmt">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/codesize.xml/ExcessiveClassLength">
@@ -75,16 +75,12 @@
   <rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/basic.xml/AvoidUsingHardCodedIP">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/basic.xml/BrokenNullCheck">
+
+
+  <rule ref="rulesets/empty.xml/BrokenNullCheck">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/ClassCastExceptionWithToArray">
+  <rule ref="rulesets/empty.xml/ClassCastExceptionWithToArray">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/j2ee.xml/DoNotCallSystemExit">
@@ -135,7 +131,7 @@
   <rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/AvoidMultipleUnaryOperators">
+  <rule ref="rulesets/empty.xml/AvoidMultipleUnaryOperators">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/braces.xml/ForLoopsMustUseBraces">
@@ -412,28 +408,28 @@
       </property>
     </properties>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptySynchronizedBlock">
+  <rule ref="rulesets/empty.xml/EmptySynchronizedBlock">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyWhileStmt">
+  <rule ref="rulesets/empty.xml/EmptyWhileStmt">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/design.xml/EqualsNull">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/MisplacedNullCheck">
+  <rule ref="rulesets/empty.xml/MisplacedNullCheck">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/design.xml/MissingBreakInSwitch">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/UnconditionalIfStatement">
+  <rule ref="rulesets/empty.xml/UnconditionalIfStatement">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/j2ee.xml/UseProperClassLoader">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/UselessOperationOnImmutable">
+  <rule ref="rulesets/empty.xml/UselessOperationOnImmutable">
     <priority>1</priority>
   </rule>
   <rule class="net.sourceforge.pmd.rules.XPathRule" message="Prevent of declaration @Transactional annotation on java intefaces and classes." name="EIS coding rules-TransactionalAllowedOnlyOnMethod">
@@ -453,7 +449,7 @@
   <rule ref="rulesets/design.xml/AssignmentToNonFinalStatic">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/design.xml/AvoidConstantsInterface">
+  <rule ref="rulesets/design.xml/ConstantsInInterface">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace">
@@ -534,7 +530,7 @@
   <rule ref="rulesets/clone.xml/ProperCloneImplementation">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/AvoidThreadGroup">
+  <rule ref="rulesets/empty.xml/AvoidThreadGroup">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/strictexception.xml/AvoidCatchingGenericException">
@@ -546,19 +542,19 @@
   <rule ref="rulesets/design.xml/BadComparison">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyInitializer">
+  <rule ref="rulesets/empty.xml/EmptyInitializer">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/design.xml/CompareObjectsWithEquals">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop">
+  <rule ref="rulesets/empty.xml/EmptyStatementNotInLoop">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyTryBlock">
+  <rule ref="rulesets/empty.xml/EmptyTryBlock">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/strings.xml/StringToString">
@@ -625,10 +621,10 @@
   <rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptySwitchStatements">
+  <rule ref="rulesets/empty.xml/EmptySwitchStatements">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/EmptyStaticInitializer">
+  <rule ref="rulesets/empty.xml/EmptyStaticInitializer">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/finalizers.xml/EmptyFinalizer">
@@ -652,7 +648,7 @@
   <rule ref="rulesets/strings.xml/InefficientEmptyStringCheck">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock">
+  <rule ref="rulesets/empty.xml/ReturnFromFinallyBlock">
     <priority>3</priority>
   </rule>
   <rule ref="rulesets/strictexception.xml/AvoidThrowingNewInstanceOfSameException">

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-cache-invalidation/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-cache-invalidation/pom.xml b/cayenne-cache-invalidation/pom.xml
index 9cfe965..346b3fc 100644
--- a/cayenne-cache-invalidation/pom.xml
+++ b/cayenne-cache-invalidation/pom.xml
@@ -84,5 +84,20 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
 
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java b/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
index d8a4004..3d3b34c 100644
--- a/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
+++ b/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
@@ -44,7 +44,6 @@ public class CacheInvalidationModuleProvider implements CayenneServerModuleProvi
     @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
-        Collection modules = Collections.singletonList(ServerModule.class);
-        return modules;
+        return Collections.singletonList(ServerModule.class);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-cgen/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-cgen/pom.xml b/cayenne-cgen/pom.xml
index d95761d..d99a409 100644
--- a/cayenne-cgen/pom.xml
+++ b/cayenne-cgen/pom.xml
@@ -76,4 +76,23 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                        <!--<configuration>
+                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
+                        </configuration>-->
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-cgen/src/main/java/org/apache/cayenne/gen/StringUtils.java
----------------------------------------------------------------------
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/StringUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/StringUtils.java
index 85e328e..c48fd23 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/StringUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/StringUtils.java
@@ -65,13 +65,15 @@ public class StringUtils {
      * @since 1.2
      */
     public String stripClass(String aString) {
-        if (aString == null || aString.length() == 0)
+        if (aString == null || aString.length() == 0) {
             return aString;
+        }
 
         int lastDot = aString.lastIndexOf('.');
 
-        if (-1 == lastDot)
+        if (-1 == lastDot) {
             return "";
+        }
 
         return aString.substring(0, lastDot);
     }
@@ -100,8 +102,9 @@ public class StringUtils {
      * @since 1.1
      */
     public String capitalizedAsConstant(String name) {
-        if (name == null || name.length() == 0)
+        if (name == null || name.length() == 0) {
             return name;
+        }
 
         // clear of non-java chars. While the method name implies that a passed identifier
         // is pure Java, it is used to build pk columns names and such, so extra safety

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client-jetty/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client-jetty/pom.xml b/cayenne-client-jetty/pom.xml
index 449f258..ea094c2 100644
--- a/cayenne-client-jetty/pom.xml
+++ b/cayenne-client-jetty/pom.xml
@@ -148,11 +148,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/JettyHttpClientConnectionProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/JettyHttpClientConnectionProvider.java b/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/JettyHttpClientConnectionProvider.java
index 3a3fb25..ab4611d 100644
--- a/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/JettyHttpClientConnectionProvider.java
+++ b/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/JettyHttpClientConnectionProvider.java
@@ -43,7 +43,7 @@ import java.net.URI;
  */
 public class JettyHttpClientConnectionProvider implements Provider<ClientConnection> {
 
-    private static Logger logger = LoggerFactory.getLogger(JettyHttpROPConnector.class);
+    private static final Logger logger = LoggerFactory.getLogger(JettyHttpROPConnector.class);
 
     @Inject
     protected RuntimeProperties runtimeProperties;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/http/JettyHttpROPConnector.java
----------------------------------------------------------------------
diff --git a/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/http/JettyHttpROPConnector.java b/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/http/JettyHttpROPConnector.java
index 2a308dc..3e9642b 100644
--- a/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/http/JettyHttpROPConnector.java
+++ b/cayenne-client-jetty/src/main/java/org/apache/cayenne/rop/http/JettyHttpROPConnector.java
@@ -47,7 +47,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class JettyHttpROPConnector implements ROPConnector {
 
-    private static Logger logger = LoggerFactory.getLogger(JettyHttpROPConnector.class);
+    private static final Logger logger = LoggerFactory.getLogger(JettyHttpROPConnector.class);
 
     public static final String SESSION_COOKIE_NAME = "JSESSIONID";
 
@@ -60,9 +60,10 @@ public class JettyHttpROPConnector implements ROPConnector {
     protected Long readTimeout = 5l;
 
     public JettyHttpROPConnector(HttpClient httpClient, String url, String username) {
-        if (httpClient == null)
+        if (httpClient == null) {
             throw new IllegalArgumentException("org.eclipse.jetty.client.HttpClient should be provided " +
                     "for this ROPConnector implementation.");
+        }
 
         this.httpClient = httpClient;
         this.url = url;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client/pom.xml b/cayenne-client/pom.xml
index 725b3a1..bef6926 100644
--- a/cayenne-client/pom.xml
+++ b/cayenne-client/pom.xml
@@ -200,11 +200,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java b/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
index b26a5a7..3fdee22 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
@@ -48,7 +48,7 @@ public abstract class BaseConnection implements ClientConnection {
      */
     public Object sendMessage(ClientMessage message) throws CayenneRuntimeException {
         if (message == null) {
-            throw new NullPointerException("Null message");
+            throw new IllegalArgumentException("Null message");
         }
 
         beforeSendMessage(message);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client/src/main/java/org/apache/cayenne/remote/hessian/DataRowDeserializer.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/remote/hessian/DataRowDeserializer.java b/cayenne-client/src/main/java/org/apache/cayenne/remote/hessian/DataRowDeserializer.java
index fcf9e31..a941bd4 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/remote/hessian/DataRowDeserializer.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/remote/hessian/DataRowDeserializer.java
@@ -61,7 +61,7 @@ class DataRowDeserializer extends AbstractMapDeserializer {
         int size = in.readInt();
         DataRow row = new DataRow(size);
         try {
-            versionField.set(row, new Long(in.readLong()));
+            versionField.set(row, Long.valueOf(in.readLong()));
         }
         catch (Exception e) {
             throw new IOException("Error reading 'version' field");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
index cb5cca9..44aa7b1 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
@@ -135,16 +135,21 @@ public class ROPUtil {
 
     public static char encode(long d) {
         d &= 0x3f;
-        if (d < 26)
+        if (d < 26) {
             return (char) (d + 'A');
-        else if (d < 52)
+        }
+        else if (d < 52) {
             return (char) (d + 'a' - 26);
-        else if (d < 62)
+        }
+        else if (d < 62) {
             return (char) (d + '0' - 52);
-        else if (d == 62)
+        }
+        else if (d == 62) {
             return '+';
-        else
+        }
+        else {
             return '/';
+        }
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-client/src/main/java/org/apache/cayenne/rop/http/HttpROPConnector.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/rop/http/HttpROPConnector.java b/cayenne-client/src/main/java/org/apache/cayenne/rop/http/HttpROPConnector.java
index ee23ce3..50d6eb2 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/rop/http/HttpROPConnector.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/rop/http/HttpROPConnector.java
@@ -37,7 +37,7 @@ import java.util.Map;
 
 public class HttpROPConnector implements ROPConnector {
 
-    private static Logger logger = LoggerFactory.getLogger(HttpROPConnector.class);
+    private static final Logger logger = LoggerFactory.getLogger(HttpROPConnector.class);
 
     public static final String SESSION_COOKIE_NAME = "JSESSIONID";
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-commitlog/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-commitlog/pom.xml b/cayenne-commitlog/pom.xml
index 96989e2..e1026e9 100644
--- a/cayenne-commitlog/pom.xml
+++ b/cayenne-commitlog/pom.xml
@@ -89,5 +89,20 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
 
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
index eed3de4..4294c3e 100644
--- a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
+++ b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
@@ -44,7 +44,6 @@ public class CommitLogServerModuleProvider implements CayenneServerModuleProvide
     @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
-        Collection modules = Collections.singletonList(ServerModule.class);
-        return modules;
+        return Collections.singletonList(ServerModule.class);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-crypto/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-crypto/pom.xml b/cayenne-crypto/pom.xml
index a7407d1..86836db 100644
--- a/cayenne-crypto/pom.xml
+++ b/cayenne-crypto/pom.xml
@@ -87,7 +87,6 @@
 				<configuration>
 					<map>${project.basedir}/src/test/resources/datamap.map.xml</map>
 					<destDir>${project.basedir}/src/test/java</destDir>
-					<defaultPackage>org.apache.cayenne.crypto.db</defaultPackage>
 					<superPkg>org.apache.cayenne.crypto.db.auto</superPkg>
 				</configuration>
 				<executions>
@@ -106,11 +105,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/pom.xml b/cayenne-dbsync/pom.xml
index 5c68b4d..09ab69e 100644
--- a/cayenne-dbsync/pom.xml
+++ b/cayenne-dbsync/pom.xml
@@ -234,5 +234,19 @@
 				</plugins>
 			</build>
 		</profile>
+		<profile>
+			<id>code-quality</id>
+
+			<build>
+				<plugins>
+					<plugin>
+						<artifactId>maven-checkstyle-plugin</artifactId>
+					</plugin>
+					<plugin>
+						<artifactId>maven-pmd-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
 	</profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
index 512d53b..e9f1d6c 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/factory/IngresMergerTokenFactory.java
@@ -103,8 +103,9 @@ public class IngresMergerTokenFactory extends DefaultMergerTokenFactory {
                         if (!first) {
                             buf.append(", ");
                             refBuf.append(", ");
-                        } else
+                        } else {
                             first = false;
+                        }
 
                         buf.append(context.quotedSourceName(join));
                         refBuf.append(context.quotedTargetName(join));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
index 8e3673d..5a96386 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
@@ -79,7 +79,7 @@ public class ToolsModule implements Module {
     public ToolsModule(Logger logger) {
 
         if (logger == null) {
-            throw new NullPointerException("Null logger");
+            throw new IllegalArgumentException("Null logger");
         }
 
         this.logger = logger;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
index c31aaab..7446c5f 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
@@ -63,6 +63,8 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * A default implementation of {@link DbImportAction} that can load DB schema and merge it to a new or an existing
  * DataMap.
@@ -194,7 +196,7 @@ public class DefaultDbImportAction implements DbImportAction {
 
     private boolean syncDataMapProperties(DataMap targetDataMap, DbImportConfiguration config) {
         String defaultPackage = config.getDefaultPackage();
-        if (defaultPackage == null || defaultPackage.trim().length() == 0) {
+        if (defaultPackage == null || isBlank(defaultPackage.trim())) {
             return false;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
index 552b6e7..a05f8dd 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
@@ -19,9 +19,12 @@
 
 package org.apache.cayenne.dbsync.reverse.dbimport;
 
+import org.apache.cayenne.util.Util;
+
 import java.util.Collection;
 import java.util.LinkedList;
 
+
 /**
  * @since 4.0.
  */
@@ -153,7 +156,7 @@ public abstract class FilterContainer {
     }
 
     public void addText(String name) {
-        if (name.trim().isEmpty()) {
+        if (Util.isBlank(name.trim())) {
             return;
         }
         setName(name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
index 4208e64..f0ec3ed 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
@@ -19,6 +19,8 @@
 
 package org.apache.cayenne.dbsync.reverse.dbimport;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.0.
  */
@@ -57,7 +59,7 @@ public class PatternParam {
      * Used by Ant task
      */
     public void addText(String pattern) {
-        if (pattern.trim().isEmpty()) {
+        if (isBlank(pattern.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-di/pom.xml b/cayenne-di/pom.xml
index 5a67bb2..25a82bc 100644
--- a/cayenne-di/pom.xml
+++ b/cayenne-di/pom.xml
@@ -69,11 +69,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java b/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
index d3c35df..47c9f1d 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
@@ -81,7 +81,7 @@ public class Key<T> {
 
     protected Key(TypeLiteral<T> type, String bindingName) {
         if (type == null) {
-            throw new NullPointerException("Null key type");
+            throw new IllegalArgumentException("Null key type");
         }
 
         this.typeLiteral = type;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/src/main/java/org/apache/cayenne/di/TypeLiteral.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/TypeLiteral.java b/cayenne-di/src/main/java/org/apache/cayenne/di/TypeLiteral.java
index a43973f..7e729b2 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/TypeLiteral.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/TypeLiteral.java
@@ -69,12 +69,16 @@ class TypeLiteral<T> {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) { return true; }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
 
         TypeLiteral<?> that = (TypeLiteral<?>) o;
 
-        if (!typeName.equals(that.typeName)) return false;
+        if (!typeName.equals(that.typeName)){
+            return false;
+        }
         return Arrays.equals(argumentsType, that.argumentsType);
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java
index 6e8592b..4379df8 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DIGraph.java
@@ -85,8 +85,9 @@ class DIGraph<V> {
 	 *             if either vertex doesn't exist.
 	 */
 	public void remove(V from, V to) {
-		if (!(this.contains(from) && this.contains(to)))
+		if (!(this.contains(from) && this.contains(to))) {
 			throw new IllegalArgumentException("Nonexistent vertex");
+		}
 
 		neighbors.get(from).remove(to);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
index ab2728d..241b6b6 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
@@ -50,11 +50,11 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory {
     public <T> T newInstance(Class<? super T> superType, String className) {
 
         if (superType == null) {
-            throw new NullPointerException("Null superType");
+            throw new IllegalArgumentException("Null superType");
         }
 
         if (className == null) {
-            throw new NullPointerException("Null className");
+            throw new IllegalArgumentException("Null className");
         }
 
         Class<T> type = (Class<T>) getJavaClass(className);
@@ -82,7 +82,7 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory {
         // is there a better way to get array class from string name?
 
         if (className == null) {
-            throw new NullPointerException("Null class name");
+            throw new IllegalArgumentException("Null class name");
         }
 
         ClassLoader classLoader = classLoaderManager.getClassLoader(className.replace('.', '/'));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
index a998cf4..e9dfdb4 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
@@ -80,7 +80,7 @@ public class DefaultInjector implements Injector {
 	<T> Binding<T> getBinding(Key<T> key) throws DIRuntimeException {
 
         if (key == null) {
-            throw new NullPointerException("Null key");
+            throw new IllegalArgumentException("Null key");
         }
 
         // may return null - this is intentionally allowed in this non-public method
@@ -148,7 +148,7 @@ public class DefaultInjector implements Injector {
     public <T> Provider<T> getProvider(Key<T> key) throws DIRuntimeException {
 
         if (key == null) {
-            throw new NullPointerException("Null key");
+            throw new IllegalArgumentException("Null key");
         }
 
         @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-jcache/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-jcache/pom.xml b/cayenne-jcache/pom.xml
index 07fb5a3..3e91066 100644
--- a/cayenne-jcache/pom.xml
+++ b/cayenne-jcache/pom.xml
@@ -221,6 +221,23 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>code-quality</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                        <!--<configuration>
+                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
+                        </configuration>-->
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
     </profiles>
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
----------------------------------------------------------------------
diff --git a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
index 63a2ca6..a2183f5 100644
--- a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
+++ b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
@@ -22,12 +22,13 @@ package org.apache.cayenne.jcache;
 /**
  * @since 4.0
  */
-public interface JCacheConstants {
+public final class JCacheConstants {
 
+    private JCacheConstants() {}
     /**
      * Default JCache cache name. This will be the cache used for queries with no explicit cache groups.
      */
-    String DEFAULT_CACHE_NAME = "cayenne.default.cache";
+    public static final String DEFAULT_CACHE_NAME = "cayenne.default.cache";
 
-    String JCACHE_PROVIDER_CONFIG = "cayenne.jcache.provider_config";
+    public static final String JCACHE_PROVIDER_CONFIG = "cayenne.jcache.provider_config";
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
index 375f896..6dcd227 100644
--- a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
+++ b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
@@ -44,7 +44,6 @@ public class JCacheServerModuleProvider implements CayenneServerModuleProvider {
     @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
-        Collection modules = Collections.singletonList(ServerModule.class);
-        return modules;
+        return Collections.singletonList(ServerModule.class);
     }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-joda/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-joda/pom.xml b/cayenne-joda/pom.xml
index af6c079..25d1ab5 100644
--- a/cayenne-joda/pom.xml
+++ b/cayenne-joda/pom.xml
@@ -120,18 +120,25 @@
 				<configuration>
 					<map>${project.basedir}/src/test/resources/joda.map.xml</map>
 					<destDir>${project.basedir}/src/test/java</destDir>
-					<defaultPackage>org.apache.cayenne.joda.db</defaultPackage>
 					<superPkg>org.apache.cayenne.joda.db.auto</superPkg>
 				</configuration>
 			</plugin>
-			<plugin>
-				<artifactId>maven-checkstyle-plugin</artifactId>
-				<!--<configuration> <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation> 
-					</configuration> -->
-			</plugin>
-			<plugin>
-				<artifactId>maven-pmd-plugin</artifactId>
-			</plugin>
 		</plugins>
 	</build>
+	<profiles>
+		<profile>
+			<id>code-quality</id>
+
+			<build>
+				<plugins>
+					<plugin>
+						<artifactId>maven-checkstyle-plugin</artifactId>
+					</plugin>
+					<plugin>
+						<artifactId>maven-pmd-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-lifecycle/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/pom.xml b/cayenne-lifecycle/pom.xml
index e9f580a..d058c62 100644
--- a/cayenne-lifecycle/pom.xml
+++ b/cayenne-lifecycle/pom.xml
@@ -85,11 +85,6 @@
 		<profile>
 			<id>code-quality</id>
 
-			<activation>
-				<property>
-					<name>!fast-and-dirty</name>
-				</property>
-			</activation>
 			<build>
 				<plugins>
 					<plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
index 092aa27..d0a6227 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
@@ -216,7 +216,7 @@ public class EntityIdCoder {
     private Converter create(Class<?> type) {
 
         if (type == null) {
-            throw new NullPointerException("Null type");
+            throw new IllegalArgumentException("Null type");
         }
 
         if (Long.class.isAssignableFrom(type)) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
index 696a2b4..bad72f6 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
@@ -63,7 +63,7 @@ public class IdCoder {
     public String getStringId(Persistent object) {
 
         if (object == null) {
-            throw new NullPointerException("Null object");
+            throw new IllegalArgumentException("Null object");
         }
 
         ObjectId id = object.getObjectId();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
index 89646d2..d319f09 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
@@ -62,7 +62,7 @@ public class StringIdQuery implements Query {
     private static Collection<String> toCollection(String... stringIds) {
 
         if (stringIds == null) {
-            throw new NullPointerException("Null stringIds");
+            throw new IllegalArgumentException("Null stringIds");
         }
 
         return Arrays.asList(stringIds);
@@ -88,7 +88,7 @@ public class StringIdQuery implements Query {
 
     public void addStringIds(String... ids) {
         if (ids == null) {
-            throw new NullPointerException("Null ids");
+            throw new IllegalArgumentException("Null ids");
         }
 
         boolean changed = false;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-osgi/pom.xml b/cayenne-osgi/pom.xml
index ffe3fdc..7dc3b16 100644
--- a/cayenne-osgi/pom.xml
+++ b/cayenne-osgi/pom.xml
@@ -89,4 +89,20 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java b/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
index 481f220..6214452 100644
--- a/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
+++ b/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
@@ -34,7 +34,7 @@ public class OsgiModuleBuilder {
     public static OsgiModuleBuilder forProject(Class<?> typeFromProjectBundle) {
 
         if (typeFromProjectBundle == null) {
-            throw new NullPointerException("Null 'typeFromProjectBundle'");
+            throw new IllegalArgumentException("Null 'typeFromProjectBundle'");
         }
 
         return new OsgiModuleBuilder(typeFromProjectBundle);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project-compatibility/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-project-compatibility/pom.xml b/cayenne-project-compatibility/pom.xml
index 7726786..37629f2 100644
--- a/cayenne-project-compatibility/pom.xml
+++ b/cayenne-project-compatibility/pom.xml
@@ -59,4 +59,20 @@
         </dependency>
     </dependencies>
 
+    <profiles>
+        <profile>
+            <id>code-quality</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
index 575f080..bbe7f1b 100644
--- a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
+++ b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
@@ -52,7 +52,7 @@ import org.xml.sax.XMLReader;
  */
 public class CompatibilityDataChannelDescriptorLoader extends XMLDataChannelDescriptorLoader {
 
-    private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     @Inject
     Provider<UpgradeService> upgradeServiceProvider;
@@ -63,7 +63,7 @@ public class CompatibilityDataChannelDescriptorLoader extends XMLDataChannelDesc
     @Override
     public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
         if (configurationResource == null) {
-            throw new NullPointerException("Null configurationResource");
+            throw new IllegalArgumentException("Null configurationResource");
         }
 
         if(!(upgradeServiceProvider.get() instanceof CompatibilityUpgradeService)) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project-compatibility/src/main/java/org/apache/cayenne/project/compatibility/DefaultDocumentProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/project/compatibility/DefaultDocumentProvider.java b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/project/compatibility/DefaultDocumentProvider.java
index 5682782..9ddae12 100644
--- a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/project/compatibility/DefaultDocumentProvider.java
+++ b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/project/compatibility/DefaultDocumentProvider.java
@@ -30,7 +30,7 @@ import org.w3c.dom.Document;
  */
 public class DefaultDocumentProvider implements DocumentProvider {
 
-    Map<String, Document> documentMap = new HashMap<>();
+    private Map<String, Document> documentMap = new HashMap<>();
 
     @Override
     public Document getDocument(URL url) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/pom.xml b/cayenne-project/pom.xml
index 9869c52..f2acce3 100644
--- a/cayenne-project/pom.xml
+++ b/cayenne-project/pom.xml
@@ -94,11 +94,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index 0d6af44..e45ca89 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -88,7 +88,7 @@ public class FileProjectSaver implements ProjectSaver {
 	@Override
 	public void saveAs(Project project, Resource baseDirectory) {
 		if (baseDirectory == null) {
-			throw new NullPointerException("Null 'baseDirectory'");
+			throw new IllegalArgumentException("Null 'baseDirectory'");
 		}
 		save(project, baseDirectory, false);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
index 4e492e0..c4044a6 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
@@ -48,6 +48,8 @@ import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.project.upgrade.handlers.UpgradeHandler;
 import org.apache.cayenne.resource.Resource;
 import org.apache.cayenne.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -57,6 +59,8 @@ import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.DefaultHandler;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  *
  * Upgrade service sequence is following:
@@ -81,6 +85,8 @@ import org.xml.sax.helpers.DefaultHandler;
  */
 public class DefaultUpgradeService implements UpgradeService {
 
+    private static final Logger logger = LoggerFactory.getLogger(DefaultUpgradeService.class);
+
     public static final String UNKNOWN_VERSION = "0";
     public static final String MIN_SUPPORTED_VERSION = "6";
 
@@ -221,7 +227,7 @@ public class DefaultUpgradeService implements UpgradeService {
                 resources.add(mapResource);
             }
         } catch (Exception ex) {
-            ex.printStackTrace();
+            logger.warn("Message: ", ex);
         }
         return resources;
     }
@@ -234,7 +240,7 @@ public class DefaultUpgradeService implements UpgradeService {
             Transformer transformer = TransformerFactory.newInstance().newTransformer();
             transformer.transform(input, output);
         } catch (Exception ex) {
-            ex.printStackTrace();
+            logger.warn("Message: ", ex);
         }
     }
 
@@ -261,7 +267,7 @@ public class DefaultUpgradeService implements UpgradeService {
     }
 
     protected static double decodeVersion(String version) {
-        if (version == null || version.trim().length() == 0) {
+        if (version == null || isBlank(version.trim())) {
             return 0;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
index bc0d078..ac796ec 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
@@ -27,6 +27,8 @@ import javax.xml.xpath.XPathFactory;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.project.upgrade.UpgradeUnit;
 import org.apache.cayenne.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -36,6 +38,8 @@ import org.w3c.dom.Node;
  */
 public class UpgradeHandler_V9 implements UpgradeHandler {
 
+    private static final Logger logger = LoggerFactory.getLogger(UpgradeHandler_V9.class);
+
     @Override
     public String getVersion() {
         return "9";
@@ -71,7 +75,7 @@ public class UpgradeHandler_V9 implements UpgradeHandler {
                 dataMap.removeChild(reNode);
             }
         } catch (Exception ex) {
-            ex.printStackTrace();
+            logger.warn("Message: ", ex);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-protostuff/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/pom.xml b/cayenne-protostuff/pom.xml
index c17a7dc..ff53438 100644
--- a/cayenne-protostuff/pom.xml
+++ b/cayenne-protostuff/pom.xml
@@ -126,11 +126,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/pom.xml b/cayenne-rop-server/pom.xml
index 4f0e92a..05f0817 100644
--- a/cayenne-rop-server/pom.xml
+++ b/cayenne-rop-server/pom.xml
@@ -90,5 +90,20 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
 
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
index c352ae0..c8b3620 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
@@ -240,7 +240,7 @@ public class CayenneContext extends BaseContext {
     @Override
     public <T> T newObject(Class<T> persistentClass) {
         if (persistentClass == null) {
-            throw new NullPointerException("Persistent class can't be null.");
+            throw new IllegalArgumentException("Persistent class can't be null.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(persistentClass);
@@ -262,7 +262,7 @@ public class CayenneContext extends BaseContext {
     @Override
     public void registerNewObject(Object object) {
         if (object == null) {
-            throw new NullPointerException("An attempt to register null object.");
+            throw new IllegalArgumentException("An attempt to register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(object.getClass());
@@ -352,16 +352,7 @@ public class CayenneContext extends BaseContext {
         boolean childContext = this != originatingContext && changes != null;
 
         if (childContext) {
-
-            // PropertyChangeProcessingStrategy oldStrategy =
-            // getPropertyChangeProcessingStrategy();
-            // setPropertyChangeProcessingStrategy(PropertyChangeProcessingStrategy.RECORD);
-            try {
-                changes.apply(new CayenneContextChildDiffLoader(this));
-            } finally {
-                // setPropertyChangeProcessingStrategy(oldStrategy);
-            }
-
+            changes.apply(new CayenneContextChildDiffLoader(this));
             fireDataChannelChanged(originatingContext, changes);
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextChildDiffLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextChildDiffLoader.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextChildDiffLoader.java
index 151b72e..94d30f2 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextChildDiffLoader.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextChildDiffLoader.java
@@ -120,10 +120,7 @@ class CayenneContextChildDiffLoader extends ChildDiffLoader {
                             .readProperty(source));
                 }
 
-                if (target[0] == null) {
-                    // ignore?
-                }
-                else {
+                if (target[0] != null) {
                     property.removeTargetDirectly(source, target[0]);
                 }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
index f490128..1f03bb7 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
@@ -187,15 +187,11 @@ class CayenneContextMergeHandler implements GraphChangeHandler, DataChannelListe
             target = context.createFault((ObjectId) targetNodeId);
         }
 
-        try {
-            if (p instanceof ToManyProperty) {
-                ((ToManyProperty) p).addTargetDirectly(source, target);
-            }
-            else {
-                p.writePropertyDirectly(source, null, target);
-            }
+        if (p instanceof ToManyProperty) {
+            ((ToManyProperty) p).addTargetDirectly(source, target);
         }
-        finally {
+        else {
+            p.writePropertyDirectly(source, null, target);
         }
     }
 
@@ -221,16 +217,12 @@ class CayenneContextMergeHandler implements GraphChangeHandler, DataChannelListe
             target = context.createFault((ObjectId) targetNodeId);
         }
 
-        try {
             if (p instanceof ToManyProperty) {
                 ((ToManyProperty) p).removeTargetDirectly(source, target);
             }
             else {
                 p.writePropertyDirectly(source, target, null);
             }
-        }
-        finally {
-        }
     }
 
     private PropertyDescriptor propertyForId(Object nodeId, String propertyName) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
index 7ed1004..1952db5 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteIncrementalFaultList.java
@@ -343,8 +343,9 @@ public class RemoteIncrementalFaultList implements List {
             }
 
             public Object next() {
-                if (listIndex >= elements.size())
+                if (listIndex >= elements.size()) {
                     throw new NoSuchElementException("no more elements");
+                }
 
                 return get(listIndex++);
             }
@@ -636,8 +637,9 @@ public class RemoteIncrementalFaultList implements List {
         }
 
         public Object next() {
-            if (listIndex >= elements.size())
+            if (listIndex >= elements.size()) {
                 throw new NoSuchElementException("at the end of the list");
+            }
 
             return get(listIndex++);
         }
@@ -647,8 +649,9 @@ public class RemoteIncrementalFaultList implements List {
         }
 
         public Object previous() {
-            if (listIndex < 1)
+            if (listIndex < 1) {
                 throw new NoSuchElementException("at the beginning of the list");
+            }
 
             return get(--listIndex);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
index 461e79d..7eae9d4 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.DataChannel;
@@ -84,7 +85,15 @@ public class RemoteSession implements Serializable {
 
     @Override
     public int hashCode() {
-        return new HashCodeBuilder(71, 5).append(sessionId).toHashCode();
+        return Objects.hash(sessionId);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        RemoteSession that = (RemoteSession) o;
+        return Objects.equals(sessionId, that.sessionId);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
index 3d090e6..8bda80e 100644
--- a/cayenne-server/pom.xml
+++ b/cayenne-server/pom.xml
@@ -306,11 +306,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>
@@ -340,6 +335,8 @@
                                 <exclude>**/SimpleCharStream.java</exclude>
                                 <exclude>**/TokenMgrError.java</exclude>
                                 <exclude>org/apache/cayenne/ejbql/parser/*</exclude>
+								<exclude>org/apache/cayenne/exp/parser/*</exclude>
+								<exclude>org/apache/cayenne/template/parser/*</exclude>
                             </excludes>
                         </configuration>
                     </plugin>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-velocity/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-velocity/pom.xml b/cayenne-velocity/pom.xml
index da66ef6..4559bf2 100644
--- a/cayenne-velocity/pom.xml
+++ b/cayenne-velocity/pom.xml
@@ -88,5 +88,20 @@
             </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
 
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/cayenne-web/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-web/pom.xml b/cayenne-web/pom.xml
index c68c5f3..a058559 100644
--- a/cayenne-web/pom.xml
+++ b/cayenne-web/pom.xml
@@ -90,14 +90,22 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <!--<configuration> <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                    </configuration> -->
-            </plugin>
-            <plugin>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
+    <profiles>
+        <profile>
+            <id>code-quality</id>
+
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-pmd-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/93510a7d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index af8a347..51fbc47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,9 +41,9 @@
 		<slf4j.version>1.7.25</slf4j.version>
 		<ant.version>1.9.9</ant.version>
 
-        <pmd.skip>true</pmd.skip>
-        <checkstyle.skip>true</checkstyle.skip>
-        <findbugs.skip>true</findbugs.skip>
+        <pmd.skip>false</pmd.skip>
+        <checkstyle.skip>false</checkstyle.skip>
+        <findbugs.skip>false</findbugs.skip>
 
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -962,11 +962,6 @@
         <profile>
             <id>code-quality</id>
 
-            <activation>
-                <property>
-                    <name>!fast-and-dirty</name>
-                </property>
-            </activation>
             <build>
                 <pluginManagement>
                     <plugins>
@@ -976,7 +971,7 @@
                             <version>2.17</version>
                             <configuration>
                                 <skip>${checkstyle.skip}</skip>
-                                <consoleOutput>true</consoleOutput>
+                                <consoleOutput>false</consoleOutput>
                                 <enableRulesSummary>false</enableRulesSummary>
                                 <failOnViolation>false</failOnViolation>
                                 <!-- TODO make it 'true' when we will be ready -->
@@ -1006,7 +1001,7 @@
                             <configuration>
                                 <skip>${pmd.skip}</skip>
                                 <sourceEncoding>utf-8</sourceEncoding>
-                                <targetJdk>1.7</targetJdk>
+                                <targetJdk>1.8</targetJdk>
                                 <verbose>true</verbose>
                                 <failOnViolation>false</failOnViolation>
                                 <!-- TODO make it 'true' when we will be ready -->
@@ -1034,25 +1029,6 @@
                         </plugin>
                         <plugin>
                             <groupId>org.codehaus.mojo</groupId>
-                            <artifactId>findbugs-maven-plugin</artifactId>
-                            <version>3.0.4</version>
-                            <configuration>
-                                <effort>Max</effort>
-                                <!-- do max effort at CI Server -->
-                                <threshold>Low</threshold>
-                                <!-- make it 'low' at CI Server -->
-                            </configuration>
-                            <executions>
-                                <execution>
-                                    <phase>process-classes</phase>
-                                    <goals>
-                                        <goal>check</goal>
-                                    </goals>
-                                </execution>
-                            </executions>
-                        </plugin>
-                        <plugin>
-                            <groupId>org.codehaus.mojo</groupId>
                             <artifactId>clirr-maven-plugin</artifactId>
                             <version>2.8</version>
                             <configuration>


[04/11] cayenne git commit: Code-coverage plugin

Posted by nt...@apache.org.
Code-coverage plugin


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/c47c03d0
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/c47c03d0
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/c47c03d0

Branch: refs/heads/master
Commit: c47c03d011a951b4225af13d6f1d9283eb5068e5
Parents: 87c6ccc
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Jan 26 09:05:35 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Jan 26 09:05:35 2018 +0300

----------------------------------------------------------------------
 build-tools/pom.xml                   |  33 ++++++++++
 cayenne-cache-invalidation/pom.xml    |  16 -----
 cayenne-cgen/pom.xml                  |  19 ------
 cayenne-client-jetty/pom.xml          |  19 ------
 cayenne-client/pom.xml                |  17 -----
 cayenne-commitlog/pom.xml             |  16 -----
 cayenne-crypto/pom.xml                |  19 ------
 cayenne-dbcp2/pom.xml                 |   8 ---
 cayenne-dbsync/pom.xml                |  14 ----
 cayenne-di/pom.xml                    |  19 ------
 cayenne-jcache/pom.xml                |  17 -----
 cayenne-joda/pom.xml                  |  16 -----
 cayenne-lifecycle/pom.xml             |  18 -----
 cayenne-osgi/pom.xml                  |  16 -----
 cayenne-project-compatibility/pom.xml |  17 -----
 cayenne-project/pom.xml               |  19 ------
 cayenne-protostuff/pom.xml            |  20 ------
 cayenne-rop-server/pom.xml            |  16 -----
 cayenne-velocity/pom.xml              |  16 -----
 cayenne-web/pom.xml                   |  16 -----
 pom.xml                               | 101 +++++++++++++++++++++++++++--
 21 files changed, 128 insertions(+), 324 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/build-tools/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/pom.xml b/build-tools/pom.xml
index 2e2e4c1..ddba56e 100644
--- a/build-tools/pom.xml
+++ b/build-tools/pom.xml
@@ -57,4 +57,37 @@
 			</plugin>
 		</plugins>
 	</build>
+	<profiles>
+		<profile>
+			<id>code-quality</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-checkstyle-plugin</artifactId>
+						<executions>
+							<execution>
+								<configuration>
+									<skip>true</skip>
+								</configuration>
+
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-pmd-plugin</artifactId>
+						<executions>
+							<execution>
+								<configuration>
+									<skip>true</skip>
+								</configuration>
+
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-cache-invalidation/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-cache-invalidation/pom.xml b/cayenne-cache-invalidation/pom.xml
index 346b3fc..2b5663e 100644
--- a/cayenne-cache-invalidation/pom.xml
+++ b/cayenne-cache-invalidation/pom.xml
@@ -84,20 +84,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-cgen/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-cgen/pom.xml b/cayenne-cgen/pom.xml
index d99a409..d95761d 100644
--- a/cayenne-cgen/pom.xml
+++ b/cayenne-cgen/pom.xml
@@ -76,23 +76,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-client-jetty/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client-jetty/pom.xml b/cayenne-client-jetty/pom.xml
index ea094c2..834330c 100644
--- a/cayenne-client-jetty/pom.xml
+++ b/cayenne-client-jetty/pom.xml
@@ -144,23 +144,4 @@
         </plugins>
     </build>
 
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-client/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-client/pom.xml b/cayenne-client/pom.xml
index bef6926..08266b2 100644
--- a/cayenne-client/pom.xml
+++ b/cayenne-client/pom.xml
@@ -197,23 +197,6 @@
                 </plugins>
             </build>
         </profile>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
     </profiles>
 
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-commitlog/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-commitlog/pom.xml b/cayenne-commitlog/pom.xml
index e1026e9..12ec8c7 100644
--- a/cayenne-commitlog/pom.xml
+++ b/cayenne-commitlog/pom.xml
@@ -89,20 +89,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-crypto/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-crypto/pom.xml b/cayenne-crypto/pom.xml
index 86836db..5255e43 100644
--- a/cayenne-crypto/pom.xml
+++ b/cayenne-crypto/pom.xml
@@ -101,23 +101,4 @@
         </plugins>
 	</build>
 
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-dbcp2/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-dbcp2/pom.xml b/cayenne-dbcp2/pom.xml
index 1211604..5f38a76 100644
--- a/cayenne-dbcp2/pom.xml
+++ b/cayenne-dbcp2/pom.xml
@@ -70,14 +70,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <artifactId>maven-checkstyle-plugin</artifactId>
-                <!--<configuration> <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                    </configuration> -->
-            </plugin>
-            <plugin>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
         </plugins>
     </build>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-dbsync/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/pom.xml b/cayenne-dbsync/pom.xml
index 09ab69e..5c68b4d 100644
--- a/cayenne-dbsync/pom.xml
+++ b/cayenne-dbsync/pom.xml
@@ -234,19 +234,5 @@
 				</plugins>
 			</build>
 		</profile>
-		<profile>
-			<id>code-quality</id>
-
-			<build>
-				<plugins>
-					<plugin>
-						<artifactId>maven-checkstyle-plugin</artifactId>
-					</plugin>
-					<plugin>
-						<artifactId>maven-pmd-plugin</artifactId>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
 	</profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-di/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-di/pom.xml b/cayenne-di/pom.xml
index 25a82bc..eed5f1d 100644
--- a/cayenne-di/pom.xml
+++ b/cayenne-di/pom.xml
@@ -65,23 +65,4 @@
         </plugins>
 	</build>
 
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-jcache/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-jcache/pom.xml b/cayenne-jcache/pom.xml
index 3e91066..07fb5a3 100644
--- a/cayenne-jcache/pom.xml
+++ b/cayenne-jcache/pom.xml
@@ -221,23 +221,6 @@
                 </plugins>
             </build>
         </profile>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
     </profiles>
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-joda/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-joda/pom.xml b/cayenne-joda/pom.xml
index 25d1ab5..8604f54 100644
--- a/cayenne-joda/pom.xml
+++ b/cayenne-joda/pom.xml
@@ -125,20 +125,4 @@
 			</plugin>
 		</plugins>
 	</build>
-	<profiles>
-		<profile>
-			<id>code-quality</id>
-
-			<build>
-				<plugins>
-					<plugin>
-						<artifactId>maven-checkstyle-plugin</artifactId>
-					</plugin>
-					<plugin>
-						<artifactId>maven-pmd-plugin</artifactId>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-lifecycle/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/pom.xml b/cayenne-lifecycle/pom.xml
index d058c62..b42b8f6 100644
--- a/cayenne-lifecycle/pom.xml
+++ b/cayenne-lifecycle/pom.xml
@@ -81,22 +81,4 @@
             </plugin>
 		</plugins>
 	</build>
-	<profiles>
-		<profile>
-			<id>code-quality</id>
-
-			<build>
-				<plugins>
-					<plugin>
-						<artifactId>maven-checkstyle-plugin</artifactId>
-						<!--<configuration> <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation> 
-							</configuration> -->
-					</plugin>
-					<plugin>
-						<artifactId>maven-pmd-plugin</artifactId>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-osgi/pom.xml b/cayenne-osgi/pom.xml
index 7dc3b16..ffe3fdc 100644
--- a/cayenne-osgi/pom.xml
+++ b/cayenne-osgi/pom.xml
@@ -89,20 +89,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-project-compatibility/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-project-compatibility/pom.xml b/cayenne-project-compatibility/pom.xml
index 37629f2..fd7b470 100644
--- a/cayenne-project-compatibility/pom.xml
+++ b/cayenne-project-compatibility/pom.xml
@@ -58,21 +58,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-project/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-project/pom.xml b/cayenne-project/pom.xml
index f2acce3..7e91eaf 100644
--- a/cayenne-project/pom.xml
+++ b/cayenne-project/pom.xml
@@ -90,23 +90,4 @@
         </plugins>
     </build>
 
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-protostuff/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-protostuff/pom.xml b/cayenne-protostuff/pom.xml
index ff53438..1e0577a 100644
--- a/cayenne-protostuff/pom.xml
+++ b/cayenne-protostuff/pom.xml
@@ -121,24 +121,4 @@
             </plugin>
         </plugins>
     </build>
-
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <!--<configuration>
-                            <suppressionsLocation>${project.basedir}/cayenne-checkstyle-suppression.xml</suppressionsLocation>
-                        </configuration>-->
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-rop-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/pom.xml b/cayenne-rop-server/pom.xml
index 05f0817..4fab676 100644
--- a/cayenne-rop-server/pom.xml
+++ b/cayenne-rop-server/pom.xml
@@ -90,20 +90,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-velocity/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-velocity/pom.xml b/cayenne-velocity/pom.xml
index 4559bf2..449579a 100644
--- a/cayenne-velocity/pom.xml
+++ b/cayenne-velocity/pom.xml
@@ -88,20 +88,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/cayenne-web/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-web/pom.xml b/cayenne-web/pom.xml
index a058559..711193f 100644
--- a/cayenne-web/pom.xml
+++ b/cayenne-web/pom.xml
@@ -92,20 +92,4 @@
             </plugin>
         </plugins>
     </build>
-    <profiles>
-        <profile>
-            <id>code-quality</id>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/c47c03d0/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6295c70..d53e068 100644
--- a/pom.xml
+++ b/pom.xml
@@ -959,14 +959,13 @@
             <id>code-quality</id>
 
             <build>
-                <pluginManagement>
                     <plugins>
                         <plugin>
                             <groupId>org.apache.maven.plugins</groupId>
                             <artifactId>maven-checkstyle-plugin</artifactId>
-                            <version>2.17</version>
                             <configuration>
-                                <skip>true</skip>
+
+                                <skip>false</skip>
                                 <consoleOutput>false</consoleOutput>
                                 <enableRulesSummary>false</enableRulesSummary>
                                 <failOnViolation>false</failOnViolation>
@@ -993,9 +992,8 @@
                         <plugin>
                             <groupId>org.apache.maven.plugins</groupId>
                             <artifactId>maven-pmd-plugin</artifactId>
-                            <version>3.8</version>
                             <configuration>
-                                <skip>true</skip>
+                                <skip>false</skip>
                                 <sourceEncoding>utf-8</sourceEncoding>
                                 <targetJdk>1.8</targetJdk>
                                 <verbose>true</verbose>
@@ -1039,7 +1037,6 @@
                             <version>2.0</version>
                         </plugin>
                     </plugins>
-                </pluginManagement>
             </build>
 
             <reporting>
@@ -1071,6 +1068,98 @@
                 </plugins>
             </reporting>
         </profile>
+
+
+		<profile>
+			<id>code-coverage</id>
+			<properties>
+				<jacoco.it.execution.data.file>${project.build.directory}/coverage-reports/jacoco-it.exec</jacoco.it.execution.data.file>
+				<jacoco.ut.execution.data.file>${project.build.directory}/coverage-reports/jacoco-ut.exec</jacoco.ut.execution.data.file>
+			</properties>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.jacoco</groupId>
+						<artifactId>jacoco-maven-plugin</artifactId>
+						<version>0.8.0</version>
+						<executions>
+							<execution>
+								<id>pre-unit-test</id>
+								<goals>
+									<goal>prepare-agent</goal>
+								</goals>
+								<configuration>
+									<destFile>${jacoco.ut.execution.data.file}</destFile>
+									<propertyName>surefireArgLine</propertyName>
+								</configuration>
+							</execution>
+							<execution>
+								<id>post-unit-test</id>
+								<phase>test</phase>
+								<goals>
+									<goal>report</goal>
+								</goals>
+								<configuration>
+									<dataFile>${jacoco.ut.execution.data.file}</dataFile>
+									<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
+								</configuration>
+							</execution>
+
+							<execution>
+								<id>pre-integration-test</id>
+								<phase>pre-integration-test</phase>
+								<goals>
+									<goal>prepare-agent</goal>
+								</goals>
+								<configuration>
+									<destFile>${jacoco.it.execution.data.file}</destFile>
+									<propertyName>failsafeArgLine</propertyName>
+								</configuration>
+							</execution>
+
+							<execution>
+								<id>post-integration-test</id>
+								<phase>post-integration-test</phase>
+								<goals>
+									<goal>report</goal>
+								</goals>
+								<configuration>
+									<dataFile>${jacoco.it.execution.data.file}</dataFile>
+									<outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-surefire-plugin</artifactId>
+						<configuration>
+							<argLine>${surefireArgLine}</argLine>
+						</configuration>
+					</plugin>
+
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-failsafe-plugin</artifactId>
+						<executions>
+							<execution>
+								<id>integration-tests</id>
+								<goals>
+									<goal>integration-test</goal>
+									<goal>verify</goal>
+								</goals>
+								<configuration>
+									<argLine>${failsafeArgLine}</argLine>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+
+
         <profile>
             <id>tests-development</id>
             <activation>


[11/11] cayenne git commit: Cleanup

Posted by nt...@apache.org.
Cleanup


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/d8a944b0
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/d8a944b0
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/d8a944b0

Branch: refs/heads/master
Commit: d8a944b0b67fa2ffc2dddb9430a65dd18d3f3fdb
Parents: d1c214f
Author: Nikita Timofeev <st...@gmail.com>
Authored: Fri Feb 2 15:53:40 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Fri Feb 2 15:53:40 2018 +0300

----------------------------------------------------------------------
 cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java  | 3 +--
 .../org/apache/cayenne/configuration/xml/ObjEntityHandler.java    | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/d8a944b0/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
index c95f46d..41866a9 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
@@ -143,8 +143,7 @@ public class ROPUtil {
             return (char) (d + '0' - 52);
         } else if (d == 62) {
             return '+';
-        }
-        else {
+        } else {
             return '/';
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d8a944b0/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
index a447dc2..1f04456 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
@@ -38,7 +38,7 @@ import static org.apache.cayenne.util.Util.isBlank;
  */
 public class ObjEntityHandler extends NamespaceAwareNestedTagHandler {
 
-    private static Logger logger = LoggerFactory.getLogger(ObjEntityHandler.class);
+    private static final Logger logger = LoggerFactory.getLogger(ObjEntityHandler.class);
 
     private static final String OBJ_ENTITY_TAG = "obj-entity";
     private static final String OBJ_ATTRIBUTE_TAG = "obj-attribute";


[02/11] cayenne git commit: Cayenne-server check

Posted by nt...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
index 08417c4..1de21fa 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
@@ -268,10 +268,12 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	 * @since 3.0
 	 */
 	public void setAscending() {
-		if (sortOrder == null || sortOrder == SortOrder.DESCENDING)
+		if (sortOrder == null || sortOrder == SortOrder.DESCENDING) {
 			setSortOrder(SortOrder.ASCENDING);
-		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE)
+		}
+		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.ASCENDING_INSENSITIVE);
+		}
 	}
 
 	/**
@@ -281,10 +283,12 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	 * @since 3.0
 	 */
 	public void setDescending() {
-		if (sortOrder == null || sortOrder == SortOrder.ASCENDING)
+		if (sortOrder == null || sortOrder == SortOrder.ASCENDING) {
 			setSortOrder(SortOrder.DESCENDING);
-		else if (sortOrder == SortOrder.ASCENDING_INSENSITIVE)
+		}
+		else if (sortOrder == SortOrder.ASCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.DESCENDING_INSENSITIVE);
+		}
 	}
 
 	/** Returns true if the sorting is case insensitive */
@@ -308,10 +312,12 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	 * @since 3.0
 	 */
 	public void setCaseInsensitive() {
-		if (sortOrder == null || sortOrder == SortOrder.ASCENDING)
+		if (sortOrder == null || sortOrder == SortOrder.ASCENDING) {
 			setSortOrder(SortOrder.ASCENDING_INSENSITIVE);
-		else if (sortOrder == SortOrder.DESCENDING)
+		}
+		else if (sortOrder == SortOrder.DESCENDING) {
 			setSortOrder(SortOrder.DESCENDING_INSENSITIVE);
+		}
 	}
 
 	/**
@@ -321,10 +327,12 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	 * @since 3.0
 	 */
 	public void setCaseSensitive() {
-		if (sortOrder == null || sortOrder == SortOrder.ASCENDING_INSENSITIVE)
+		if (sortOrder == null || sortOrder == SortOrder.ASCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.ASCENDING);
-		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE)
+		}
+		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.DESCENDING);
+		}
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
index 2f72e4e..f398d4c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
@@ -306,7 +306,7 @@ public class PrefetchTreeNode implements Serializable, XMLSerializable {
 	 */
 	public void merge(PrefetchTreeNode node) {
 		if (node == null) {
-			throw new NullPointerException("Null node");
+			throw new IllegalArgumentException("Null node");
 		}
 
 		PrefetchTreeNode start = node.getName() != null ? addPath(node.getName()) : this;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
index 66c947d..5c4ec62 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
@@ -194,7 +194,7 @@ class SelectQueryMetadata extends BaseQueryMetadata {
 	 */
 	public void addPathSplitAliases(String path, String... aliases) {
 		if (aliases == null) {
-			throw new NullPointerException("Null aliases");
+			throw new IllegalArgumentException("Null aliases");
 		}
 
 		if (aliases.length == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
index 8b44d86..3d9e8e9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
@@ -69,7 +69,7 @@ public class UpdateBatchQuery extends BatchQuery {
         super(dbEntity, toDbAttributes(qualifierAttributes, updatedAttributes), batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new NullPointerException("Null 'nullQualifierNames'");
+            throw new IllegalArgumentException("Null 'nullQualifierNames'");
         }
 
         this.updatedAttributes = updatedAttributes;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
index f2c9879..e296d1c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
@@ -62,7 +62,7 @@ public abstract class BaseToManyProperty extends BaseArcProperty implements
 
     public void addTarget(Object source, Object target, boolean setReverse) {
         if (target == null) {
-            throw new NullPointerException("Attempt to add null object.");
+            throw new IllegalArgumentException("Attempt to add null object.");
         }
 
         // TODO, Andrus, 2/9/2006 - CayenneDataObject differences:

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
index 73992a6..1700f72 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
@@ -91,7 +91,7 @@ public class ClassDescriptorMap {
 
     public ClassDescriptor getDescriptor(String entityName) {
         if (entityName == null) {
-            throw new NullPointerException("Null 'entityName'");
+            throw new IllegalArgumentException("Null 'entityName'");
         }
 
         ClassDescriptor cached = descriptors.get(entityName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
index c0d0b61..8fad950 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
@@ -61,10 +61,12 @@ public class ConverterFactory {
                 if (object instanceof Boolean) {
                     return (Boolean)object;
                 } else if (object instanceof Integer || object instanceof Long || object instanceof Short || object instanceof Byte) {
-                	if (((Number)object).longValue() == 0)
-                		return Boolean.FALSE;
-                	else if (((Number)object).longValue() == 1)
-                		return Boolean.TRUE;
+                	if (((Number)object).longValue() == 0) {
+                        return Boolean.FALSE;
+                    }
+                	else if (((Number)object).longValue() == 1) {
+                        return Boolean.TRUE;
+                    }
                 }
 
                 return "true".equalsIgnoreCase(object.toString())
@@ -85,7 +87,7 @@ public class ConverterFactory {
                     return (Long)object;
                 }
 
-                return new Long(object.toString());
+                return Long.valueOf(object.toString());
             }
         };
         
@@ -94,14 +96,14 @@ public class ConverterFactory {
             @Override
             protected Integer convert(Object object, Class<Integer> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? Integer.valueOf(0) : null;
+                    return type.isPrimitive() ? 0 : null;
                 }
 
                 if (object instanceof Integer) {
                     return (Integer)object;
                 }
 
-                return new Integer(object.toString());
+                return Integer.valueOf(object.toString());
             }
         };
 
@@ -110,14 +112,14 @@ public class ConverterFactory {
             @Override
             protected Byte convert(Object object, Class<Byte> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? Byte.valueOf((byte) 0) : null;
+                    return type.isPrimitive() ? (byte) 0 : null;
                 }
 
                 if (object instanceof Byte) {
                     return (Byte)object;
                 }
 
-                return new Byte(object.toString());
+                return Byte.valueOf(object.toString());
             }
         };
 
@@ -126,14 +128,14 @@ public class ConverterFactory {
             @Override
             protected Short convert(Object object, Class<Short> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? Short.valueOf((short) 0) : null;
+                    return type.isPrimitive() ? (short) 0 : null;
                 }
 
                 if (object instanceof Short) {
                     return (Short)object;
                 }
 
-                return new Short(object.toString());
+                return Short.valueOf(object.toString());
             }
         };
 
@@ -142,7 +144,7 @@ public class ConverterFactory {
             @Override
             protected Character convert(Object object, Class<Character> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? Character.valueOf((char) 0) : null;
+                    return type.isPrimitive() ? (char) 0 : null;
                 }
 
                 if (object instanceof Character) {
@@ -159,14 +161,14 @@ public class ConverterFactory {
             @Override
             protected Double convert(Object object, Class<Double> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? new Double(0.0d) : null;
+                    return type.isPrimitive() ? 0.0d : null;
                 }
 
                 if (object instanceof Double) {
                     return (Double)object;
                 }
 
-                return new Double(object.toString());
+                return Double.valueOf(object.toString());
             }
         };
 
@@ -175,14 +177,14 @@ public class ConverterFactory {
             @Override
             protected Float convert(Object object, Class<Float> type) {
                 if (object == null) {
-                    return type.isPrimitive() ? new Float(0.0f) : null;
+                    return type.isPrimitive() ? 0.0f : null;
                 }
 
                 if (object instanceof Float) {
                     return (Float)object;
                 }
 
-                return new Float(object.toString());
+                return Float.valueOf(object.toString());
             }
         };
 
@@ -221,9 +223,15 @@ public class ConverterFactory {
 		Converter<Date> toDateConverter = new Converter<Date>() {
 			@Override
 			protected Date convert(Object value, Class<Date> type) {
-				if (value == null) return null;
-				if (value instanceof Date) return (Date) value;
-				if (value instanceof Number) return new Date(((Number)value).longValue());
+				if (value == null) {
+                    return null;
+                }
+				if (value instanceof Date) {
+                    return (Date) value;
+                }
+				if (value instanceof Number){
+				    return new Date(((Number)value).longValue());
+                }
 				return new Date(value.toString());
 			}
 		};
@@ -231,9 +239,15 @@ public class ConverterFactory {
 		Converter<Timestamp> toTimestampConverter = new Converter<Timestamp>() {
 			@Override
 			protected Timestamp convert(Object value, Class<Timestamp> type) {
-				if (value == null) return null;
-				if (value instanceof Timestamp) return (Timestamp) value;
-				if (value instanceof Number) return new Timestamp(((Number)value).longValue());
+				if (value == null) {
+                    return null;
+                }
+				if (value instanceof Timestamp) {
+                    return (Timestamp) value;
+                }
+				if (value instanceof Number){
+				    return new Timestamp(((Number)value).longValue());
+                }
 				return new Timestamp(Date.parse(value.toString()));
 			}
 		};

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
index 3b01d5e..31773bb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
@@ -167,7 +167,7 @@ public class LifecycleCallbackRegistry {
 	 */
 	public void addListener(Object listener) {
 		if (listener == null) {
-			throw new NullPointerException("Null listener");
+			throw new IllegalArgumentException("Null listener");
 		}
 
 		Class<?> listenerType = listener.getClass();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
index 548ea90..d1497aa 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
@@ -309,7 +309,7 @@ public class PersistentDescriptor implements ClassDescriptor {
 	 */
 	public Object createObject() {
 		if (objectClass == null) {
-			throw new NullPointerException("Null objectClass. Descriptor wasn't initialized properly.");
+			throw new IllegalArgumentException("Null objectClass. Descriptor wasn't initialized properly.");
 		}
 
 		try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
index c31d754..dbc05c7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptorFactory.java
@@ -90,11 +90,11 @@ public abstract class PersistentDescriptorFactory implements ClassDescriptorFact
                 String collectionType = relationship.getCollectionType();
                 if (collectionType == null || ObjRelationship.DEFAULT_COLLECTION_TYPE.equals(collectionType)) {
                     createToManyListProperty(descriptor, relationship);
-                } else if (collectionType.equals("java.util.Map")) {
+                } else if ("java.util.Map".equals(collectionType)) {
                     createToManyMapProperty(descriptor, relationship);
-                } else if (collectionType.equals("java.util.Set")) {
+                } else if ("java.util.Set".equals(collectionType)) {
                     createToManySetProperty(descriptor, relationship);
-                } else if (collectionType.equals("java.util.Collection")) {
+                } else if ("java.util.Collection".equals(collectionType)) {
                     createToManyCollectionProperty(descriptor, relationship);
                 } else {
                     throw new IllegalArgumentException("Unsupported to-many collection type: " + collectionType);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
index c9812cf..21f75e9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
@@ -29,7 +29,7 @@ public class PropertyAccessor implements Accessor {
 
     public PropertyAccessor(PropertyDescriptor property) {
         if (property == null) {
-            throw new NullPointerException("Null property");
+            throw new IllegalArgumentException("Null property");
         }
         this.property = property;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
index cc25824..d028ac1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ToAnyConverter.java
@@ -29,8 +29,12 @@ import org.apache.cayenne.CayenneRuntimeException;
 public class ToAnyConverter<T> extends Converter<T> {
 	@Override
 	protected T convert(Object value, Class<T> type) {
-		if (value == null) return null;
-		if (type.isAssignableFrom(value.getClass())) return (T) value; // no conversion needed
+		if (value == null) {
+            return null;
+        }
+		if (type.isAssignableFrom(value.getClass())) {
+            return (T) value; // no conversion needed
+        }
 		
         try {
             Constructor<?> constructor;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
index 2a91499..49887d1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
@@ -46,7 +46,7 @@ class ValueHolderMapProperty extends ValueHolderToManyProperty implements
     public void addTarget(Object source, Object target, boolean setReverse) {
 
         if (target == null) {
-            throw new NullPointerException("Attempt to add null object.");
+            throw new IllegalArgumentException("Attempt to add null object.");
         }
 
         // Now do the rest of the normal handling (regardless of whether it was

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
index 8bd3128..9867a95 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
@@ -66,7 +66,7 @@ public class FilesystemResourceLocator implements ResourceLocator {
      */
     public FilesystemResourceLocator(Collection<File> roots) {
         if (roots == null) {
-            throw new NullPointerException("Null roots");
+            throw new IllegalArgumentException("Null roots");
         }
 
         init(roots.toArray(new File[roots.size()]));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
index 99a91a4..d3035f9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
@@ -146,7 +146,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
     @Override
     public V put(K key, V value) {
         if(value == null) {
-            throw new NullPointerException("ReferenceMap can't contain null values");
+            throw new IllegalArgumentException("ReferenceMap can't contain null values");
         }
         checkReferenceQueue();
         R refValue = newReference(value);
@@ -172,7 +172,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
         checkReferenceQueue();
         for(Map.Entry<? extends K, ? extends V> entry : m.entrySet()) {
             if(entry.getValue() == null) {
-                throw new NullPointerException("ReferenceMap can't contain null values");
+                throw new IllegalArgumentException("ReferenceMap can't contain null values");
             }
             R value = newReference(entry.getValue());
             map.put(entry.getKey(), value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
index 2292caf..c07c4a4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
@@ -75,7 +75,7 @@ class RegexUtil {
      */
     static String sqlPatternToRegex(String pattern) {
         if (pattern == null) {
-            throw new NullPointerException("Null pattern.");
+            throw new IllegalArgumentException("Null pattern.");
         }
 
         if (pattern.length() == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
index 067e7cb..6654d4c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
@@ -46,11 +46,11 @@ public abstract class RelationshipFault {
 
     public RelationshipFault(Persistent relationshipOwner, String relationshipName) {
         if (relationshipOwner == null) {
-            throw new NullPointerException("'relationshipOwner' can't be null.");
+            throw new IllegalArgumentException("'relationshipOwner' can't be null.");
         }
 
         if (relationshipName == null) {
-            throw new NullPointerException("'relationshipName' can't be null.");
+            throw new IllegalArgumentException("'relationshipName' can't be null.");
         }
 
         this.relationshipOwner = relationshipOwner;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
index 5fdfcf4..7aa0f9b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/Util.java
@@ -295,8 +295,9 @@ public class Util {
 	 * @since 4.1
 	 */
 	public static String capitalized(String name) {
-		if (name == null || name.length() == 0)
+		if (name == null || name.length() == 0) {
 			return name;
+		}
 
 		char c = Character.toUpperCase(name.charAt(0));
 		return (name.length() == 1) ? Character.toString(c) : c + name.substring(1);
@@ -308,8 +309,9 @@ public class Util {
 	 * @since 4.2
 	 */
 	public static String uncapitalized(String aString) {
-		if (aString == null || aString.length() == 0)
+		if (aString == null || aString.length() == 0) {
 			return aString;
+		}
 
 		char c = Character.toLowerCase(aString.charAt(0));
 		return (aString.length() == 1) ? Character.toString(c) : c + aString.substring(1);
@@ -393,13 +395,15 @@ public class Util {
 	 * @since 3.0
 	 */
 	public static String stripPackageName(String className) {
-		if (className == null || className.length() == 0)
+		if (className == null || className.length() == 0) {
 			return className;
+		}
 
 		int lastDot = className.lastIndexOf('.');
 
-		if ((-1 == lastDot) || ((className.length() - 1) == lastDot))
+		if ((-1 == lastDot) || ((className.length() - 1) == lastDot)) {
 			return className;
+		}
 
 		return className.substring(lastDot + 1);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index 91f15f2..a76b35c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -258,7 +258,7 @@ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements
     /** Asserts that the object is not null. */
     static void checkNotNull(Object o) {
         if (o == null) {
-            throw new NullPointerException();
+            throw new IllegalArgumentException();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
index 6969b16..47e4784 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
@@ -80,7 +80,7 @@ public class BeanValidationFailure extends SimpleValidationFailure {
 
     public static ValidationFailure validateMandatory(Object bean, String attribute) {
         if (bean == null) {
-            throw new NullPointerException("Null bean.");
+            throw new IllegalArgumentException("Null bean.");
         }
 
         try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
index ace6579..4aeced3 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
@@ -205,13 +205,13 @@ public class WeakValueMapTest {
         }
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void testPutNullValue() {
         Map<Object, Object> map = new WeakValueMap<>();
         map.put("1", null);
     }
 
-    @Test(expected = NullPointerException.class)
+    @Test(expected = IllegalArgumentException.class)
     public void testPutAllNullValue() {
 
         Map<Object, Object> values = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 51fbc47..6295c70 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,10 +41,6 @@
 		<slf4j.version>1.7.25</slf4j.version>
 		<ant.version>1.9.9</ant.version>
 
-        <pmd.skip>false</pmd.skip>
-        <checkstyle.skip>false</checkstyle.skip>
-        <findbugs.skip>false</findbugs.skip>
-
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     </properties>
@@ -970,7 +966,7 @@
                             <artifactId>maven-checkstyle-plugin</artifactId>
                             <version>2.17</version>
                             <configuration>
-                                <skip>${checkstyle.skip}</skip>
+                                <skip>true</skip>
                                 <consoleOutput>false</consoleOutput>
                                 <enableRulesSummary>false</enableRulesSummary>
                                 <failOnViolation>false</failOnViolation>
@@ -999,7 +995,7 @@
                             <artifactId>maven-pmd-plugin</artifactId>
                             <version>3.8</version>
                             <configuration>
-                                <skip>${pmd.skip}</skip>
+                                <skip>true</skip>
                                 <sourceEncoding>utf-8</sourceEncoding>
                                 <targetJdk>1.8</targetJdk>
                                 <verbose>true</verbose>


[06/11] cayenne git commit: Code-checkers, omd, checkstyle and code-coverage

Posted by nt...@apache.org.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 453dda8..cf7e231 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,6 @@
 		<module>tutorials</module>
 		<module>docs</module>
 		<module>assembly</module>
-		<module>cayenne-module-parent</module>
 	</modules>
 	<issueManagement>
 		<system>jira</system>
@@ -960,121 +959,119 @@
 	</distributionManagement>
 
 	<profiles>
-        <profile>
-            <id>code-quality</id>
+		<profile>
+			<id>code-quality</id>
 
-            <build>
-				<pluginManagement>
-                    <plugins>
-                        <plugin>
-                            <groupId>org.apache.maven.plugins</groupId>
-                            <artifactId>maven-checkstyle-plugin</artifactId>
-                            <configuration>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-checkstyle-plugin</artifactId>
+						<configuration>
 
-                                <skip>false</skip>
-                                <consoleOutput>false</consoleOutput>
-                                <enableRulesSummary>false</enableRulesSummary>
-                                <failOnViolation>false</failOnViolation>
-                                <!-- TODO make it 'true' when we will be ready -->
-                                <violationSeverity>warning</violationSeverity>
-                                <configLocation>/cayenne-checkstyle.xml</configLocation>
-                            </configuration>
-                            <executions>
-                                <execution>
-                                    <phase>process-sources</phase>
-                                    <goals>
-                                        <goal>check</goal>
-                                    </goals>
-                                </execution>
-                            </executions>
-                            <dependencies>
-                                <dependency>
-                                    <groupId>org.apache.cayenne.build-tools</groupId>
-                                    <artifactId>cayenne-checkers</artifactId>
-                                    <version>${project.version}</version>
-                                </dependency>
-                            </dependencies>
-                        </plugin>
-                        <plugin>
-                            <groupId>org.apache.maven.plugins</groupId>
-                            <artifactId>maven-pmd-plugin</artifactId>
-                            <configuration>
-                                <skip>false</skip>
-                                <sourceEncoding>utf-8</sourceEncoding>
-                                <targetJdk>1.8</targetJdk>
-                                <verbose>true</verbose>
-                                <failOnViolation>false</failOnViolation>
-                                <!-- TODO make it 'true' when we will be ready -->
-                                <failurePriority>2</failurePriority>
-                                <rulesets>
-                                    <!-- go back on one dir to parent project -->
-                                    <ruleset>/cayenne-pmd.xml</ruleset>
-                                </rulesets>
-                            </configuration>
-                            <executions>
-                                <execution>
-                                    <phase>process-sources</phase>
-                                    <goals>
-                                        <goal>check</goal>
-                                    </goals>
-                                </execution>
-                            </executions>
-                            <dependencies>
-                                <dependency>
-                                    <groupId>org.apache.cayenne.build-tools</groupId>
-                                    <artifactId>cayenne-checkers</artifactId>
-                                    <version>${project.version}</version>
-                                </dependency>
-                            </dependencies>
-                        </plugin>
-                        <plugin>
-                            <groupId>org.codehaus.mojo</groupId>
-                            <artifactId>clirr-maven-plugin</artifactId>
-                            <version>2.8</version>
-                            <configuration>
-                                <comparisonVersion>3.1RC1</comparisonVersion>
-                                <minSeverity>info</minSeverity>
-                                <logResults>true</logResults>
-                            </configuration>
-                        </plugin>
-                        <plugin>
-                            <groupId>org.codehaus.mojo</groupId>
-                            <artifactId>jdepend-maven-plugin</artifactId>
-                            <version>2.0</version>
-                        </plugin>
-                    </plugins>
-				</pluginManagement>
-            </build>
+							<skip>false</skip>
+							<consoleOutput>false</consoleOutput>
+							<enableRulesSummary>false</enableRulesSummary>
+							<failOnViolation>false</failOnViolation>
+							<!-- TODO make it 'true' when we will be ready -->
+							<violationSeverity>warning</violationSeverity>
+							<configLocation>/cayenne-checkstyle.xml</configLocation>
+						</configuration>
+						<executions>
+							<execution>
+								<phase>process-sources</phase>
+								<goals>
+									<goal>check</goal>
+								</goals>
+							</execution>
+						</executions>
+						<dependencies>
+							<dependency>
+								<groupId>org.apache.cayenne.build-tools</groupId>
+								<artifactId>cayenne-checkers</artifactId>
+								<version>${project.version}</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-pmd-plugin</artifactId>
+						<configuration>
+							<skip>false</skip>
+							<sourceEncoding>utf-8</sourceEncoding>
+							<targetJdk>1.8</targetJdk>
+							<verbose>true</verbose>
+							<failOnViolation>false</failOnViolation>
+							<!-- TODO make it 'true' when we will be ready -->
+							<failurePriority>2</failurePriority>
+							<rulesets>
+								<!-- go back on one dir to parent project -->
+								<ruleset>/cayenne-pmd.xml</ruleset>
+							</rulesets>
+						</configuration>
+						<executions>
+							<execution>
+								<phase>process-sources</phase>
+								<goals>
+									<goal>check</goal>
+								</goals>
+							</execution>
+						</executions>
+						<dependencies>
+							<dependency>
+								<groupId>org.apache.cayenne.build-tools</groupId>
+								<artifactId>cayenne-checkers</artifactId>
+								<version>${project.version}</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>clirr-maven-plugin</artifactId>
+						<version>2.8</version>
+						<configuration>
+							<comparisonVersion>3.1RC1</comparisonVersion>
+							<minSeverity>info</minSeverity>
+							<logResults>true</logResults>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>jdepend-maven-plugin</artifactId>
+						<version>2.0</version>
+					</plugin>
+				</plugins>
+			</build>
 
-            <reporting>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <inherited>true</inherited>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-pmd-plugin</artifactId>
-                        <inherited>true</inherited>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>findbugs-maven-plugin</artifactId>
-                        <configuration>
-                            <effort>Max</effort>
-                            <threshold>Low</threshold>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>jdepend-maven-plugin</artifactId>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>clirr-maven-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </reporting>
-        </profile>
+			<reporting>
+				<plugins>
+					<plugin>
+						<artifactId>maven-checkstyle-plugin</artifactId>
+						<inherited>true</inherited>
+					</plugin>
+					<plugin>
+						<artifactId>maven-pmd-plugin</artifactId>
+						<inherited>true</inherited>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>findbugs-maven-plugin</artifactId>
+						<configuration>
+							<effort>Max</effort>
+							<threshold>Low</threshold>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>jdepend-maven-plugin</artifactId>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>clirr-maven-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</reporting>
+		</profile>
 
 
 		<profile>


[08/11] cayenne git commit: Code-checkers and code coverage

Posted by nt...@apache.org.
Code-checkers and code coverage


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/97664e91
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/97664e91
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/97664e91

Branch: refs/heads/master
Commit: 97664e916f38ffe4535d8d4cefe22e06d51560cb
Parents: 0b01512
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Jan 26 15:43:44 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Jan 26 15:43:44 2018 +0300

----------------------------------------------------------------------
 .../apache/cayenne/remote/BaseConnection.java   |  2 +-
 .../reverse/configuration/ToolsModule.java      |  2 +-
 pom.xml                                         | 77 --------------------
 3 files changed, 2 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/97664e91/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java b/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
index 3fdee22..b26a5a7 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/remote/BaseConnection.java
@@ -48,7 +48,7 @@ public abstract class BaseConnection implements ClientConnection {
      */
     public Object sendMessage(ClientMessage message) throws CayenneRuntimeException {
         if (message == null) {
-            throw new IllegalArgumentException("Null message");
+            throw new NullPointerException("Null message");
         }
 
         beforeSendMessage(message);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/97664e91/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
index 5a96386..8e3673d 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/configuration/ToolsModule.java
@@ -79,7 +79,7 @@ public class ToolsModule implements Module {
     public ToolsModule(Logger logger) {
 
         if (logger == null) {
-            throw new IllegalArgumentException("Null logger");
+            throw new NullPointerException("Null logger");
         }
 
         this.logger = logger;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/97664e91/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index cf7e231..0ab5231 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1164,83 +1164,6 @@
 		</profile>
 
 
-        <profile>
-            <id>tests-development</id>
-            <activation>
-                <property>
-                    <name>tests-development</name>
-                </property>
-            </activation>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <configuration>
-                            <argLine>
-                                -DcayenneTestConnection=${cayenneTestConnection} -Djava.net.preferIPv4Stack=true -Dcayenne.runtime.db.collation.assume.ci=${collationCi} ${surefireArgLine}
-                            </argLine>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-report-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>report-only</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.jacoco</groupId>
-                        <artifactId>jacoco-maven-plugin</artifactId>
-                        <version>${jacoco.version}</version>
-                        <executions>
-                            <!--
-                                Prepares the property pointing to the JaCoCo runtime agent which
-                                is passed as VM argument when Maven the Surefire plugin is executed.
-                            -->
-                            <execution>
-                                <id>pre-unit-test</id>
-                                <goals>
-                                    <goal>prepare-agent</goal>
-                                </goals>
-                                <configuration>
-                                    <!-- Sets the path to the file which contains the execution data. -->
-                                    <destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
-                                    <!--
-                                        Sets the name of the property containing the settings
-                                        for JaCoCo runtime agent.
-                                    -->
-                                    <propertyName>surefireArgLine</propertyName>
-                                </configuration>
-                            </execution>
-                            <!--
-                                Ensures that the code coverage report for unit tests is created after
-                                unit tests have been run.
-                            -->
-                            <execution>
-                                <id>post-unit-test</id>
-                                <phase>test</phase>
-                                <goals>
-                                    <goal>report</goal>
-                                </goals>
-                                <configuration>
-                                    <!-- Sets the path to the file which contains the execution data. -->
-                                    <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
-                                    <!-- Sets the output directory for the code coverage report. -->
-                                    <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
 		<!-- Optional profile used to sign artifacts -->
 		<profile>
 			<id>gpg</id>


[03/11] cayenne git commit: Cayenne-server check

Posted by nt...@apache.org.
Cayenne-server check


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/87c6ccc8
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/87c6ccc8
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/87c6ccc8

Branch: refs/heads/master
Commit: 87c6ccc894ab8d57b393f6478e42419765621c56
Parents: 93510a7
Author: Arseni Bulatski <an...@gmail.com>
Authored: Thu Jan 25 13:32:19 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Thu Jan 25 13:32:19 2018 +0300

----------------------------------------------------------------------
 .../src/main/resources/cayenne-pmd.xml          | 45 +++++++--------
 .../apache/cayenne/jcache/JCacheConstants.java  |  7 +--
 .../java/org/apache/cayenne/BaseContext.java    |  6 +-
 .../java/org/apache/cayenne/BaseDataObject.java |  2 +-
 .../apache/cayenne/ObjectContextChangeLog.java  |  3 +-
 .../apache/cayenne/ObjectContextStateLog.java   |  2 +-
 .../org/apache/cayenne/access/DataContext.java  |  4 +-
 .../access/DataDomainLegacyQueryAction.java     |  2 +-
 .../cayenne/access/DataDomainQueryAction.java   |  2 +-
 .../cayenne/access/DataDomainSyncBucket.java    |  2 +-
 .../org/apache/cayenne/access/DataRowStore.java |  2 +-
 .../org/apache/cayenne/access/DbGenerator.java  |  2 +-
 .../cayenne/access/IncrementalFaultList.java    |  9 ++-
 .../access/jdbc/DistinctResultIterator.java     |  4 +-
 .../access/jdbc/LimitResultIterator.java        |  2 +-
 .../ejbql/EJBQLConditionTranslator.java         |  2 +-
 .../access/translator/ejbql/EJBQLTableId.java   |  2 +-
 .../translator/select/QualifierTranslator.java  | 12 ++--
 .../cayenne/access/types/CalendarType.java      | 12 ++--
 .../cayenne/access/types/ExtendedEnumType.java  |  6 +-
 .../cayenne/access/types/ExtendedTypeMap.java   |  2 +-
 .../cayenne/ashwood/AshwoodEntitySorter.java    | 19 ++++---
 .../ashwood/graph/DepthFirstStampSearch.java    |  3 +-
 .../ashwood/graph/FilterArcIterator.java        |  6 +-
 .../cayenne/ashwood/graph/FilterIteration.java  |  6 +-
 .../ashwood/graph/IndegreeTopologicalSort.java  |  3 +-
 .../cayenne/ashwood/graph/MapDigraph.java       | 33 +++++++----
 .../cayenne/ashwood/graph/StrongConnection.java | 18 ++++--
 .../DefaultConfigurationNameMapper.java         |  4 +-
 .../DefaultDataChannelDescriptorMerger.java     |  2 +-
 .../configuration/Rot13PasswordEncoder.java     |  6 +-
 .../configuration/Rot47PasswordEncoder.java     |  3 +-
 .../server/DataDomainProvider.java              |  2 +-
 .../server/DefaultDbAdapterFactory.java         |  2 +-
 .../xml/DataChannelChildrenHandler.java         |  2 +-
 .../configuration/xml/DataChannelHandler.java   |  2 +-
 .../xml/DataSourceChildrenHandler.java          |  2 +-
 .../configuration/xml/DbEntityHandler.java      |  4 +-
 .../xml/DefaultHandlerFactory.java              |  2 +-
 .../configuration/xml/ObjEntityHandler.java     |  4 +-
 .../xml/QueryDescriptorHandler.java             |  4 +-
 .../xml/XMLDataChannelDescriptorLoader.java     |  4 +-
 .../org/apache/cayenne/conn/DataSourceInfo.java | 45 +++++++++++----
 .../cayenne/datasource/DriverDataSource.java    |  2 +-
 .../datasource/UnmanagedPoolingDataSource.java  |  2 +-
 .../apache/cayenne/dba/mysql/MySQLAdapter.java  | 14 +++--
 .../java/org/apache/cayenne/exp/Expression.java |  2 +-
 .../apache/cayenne/exp/ExpressionFactory.java   | 18 +++---
 .../apache/cayenne/exp/ExpressionParameter.java |  6 ++
 .../java/org/apache/cayenne/exp/Property.java   | 16 ++++--
 .../apache/cayenne/graph/ChildDiffLoader.java   |  2 +-
 .../log/FormattedSlf4jJdbcEventLogger.java      |  3 +-
 .../cayenne/log/Slf4jJdbcEventLogger.java       |  3 +-
 .../apache/cayenne/map/CallbackDescriptor.java  |  3 +-
 .../java/org/apache/cayenne/map/DataMap.java    | 18 +++---
 .../org/apache/cayenne/map/DbKeyGenerator.java  |  6 +-
 .../cayenne/map/PathComponentIterator.java      |  3 +-
 .../cayenne/map/QueryDescriptorLoader.java      |  8 ++-
 .../org/apache/cayenne/query/ColumnSelect.java  |  2 +-
 .../apache/cayenne/query/DeleteBatchQuery.java  |  2 +-
 .../org/apache/cayenne/query/ObjectIdQuery.java |  2 +-
 .../java/org/apache/cayenne/query/Ordering.java | 24 +++++---
 .../apache/cayenne/query/PrefetchTreeNode.java  |  2 +-
 .../cayenne/query/SelectQueryMetadata.java      |  2 +-
 .../apache/cayenne/query/UpdateBatchQuery.java  |  2 +-
 .../cayenne/reflect/BaseToManyProperty.java     |  2 +-
 .../cayenne/reflect/ClassDescriptorMap.java     |  2 +-
 .../cayenne/reflect/ConverterFactory.java       | 58 ++++++++++++--------
 .../reflect/LifecycleCallbackRegistry.java      |  2 +-
 .../cayenne/reflect/PersistentDescriptor.java   |  2 +-
 .../reflect/PersistentDescriptorFactory.java    |  6 +-
 .../cayenne/reflect/PropertyAccessor.java       |  2 +-
 .../apache/cayenne/reflect/ToAnyConverter.java  |  8 ++-
 .../valueholder/ValueHolderMapProperty.java     |  2 +-
 .../resource/FilesystemResourceLocator.java     |  2 +-
 .../org/apache/cayenne/util/ReferenceMap.java   |  4 +-
 .../java/org/apache/cayenne/util/RegexUtil.java |  2 +-
 .../apache/cayenne/util/RelationshipFault.java  |  4 +-
 .../main/java/org/apache/cayenne/util/Util.java | 12 ++--
 .../ConcurrentLinkedHashMap.java                |  2 +-
 .../validation/BeanValidationFailure.java       |  2 +-
 .../apache/cayenne/util/WeakValueMapTest.java   |  4 +-
 pom.xml                                         |  8 +--
 83 files changed, 347 insertions(+), 225 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
index 7c26548..de950e7 100644
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
@@ -18,11 +18,11 @@
   under the License.
   -->
 <ruleset>
-<!--
+
   <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
     <priority>3</priority>
   </rule>
--->
+
   <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
     <priority>1</priority>
   </rule>
@@ -44,7 +44,7 @@
   <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
     <priority>2</priority>
     <properties>
-      <property name="reportLevel" value="15" />
+      <property name="reportLevel" value="30" />
     </properties>
   </rule>
   <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
@@ -56,9 +56,9 @@
   <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyIfStmt">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
     <priority>3</priority>
   </rule>
@@ -71,9 +71,9 @@
   <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
     <priority>3</priority>
   </rule>
@@ -156,15 +156,15 @@
   <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/EqualsNull">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
     <priority>1</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/MissingBreakInSwitch">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
     <priority>1</priority>
   </rule>
@@ -180,18 +180,15 @@
   <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/ConstantsInInterface">
-    <priority>3</priority>
-  </rule>
   <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
     <priority>1</priority>
   </rule>
   <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/PreserveStackTrace">
-    <priority>1</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
+    <!--<priority>1</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
     <priority>1</priority>
   </rule>
@@ -228,9 +225,9 @@
   <rule ref="rulesets/java/empty.xml/EmptyInitializer">
     <priority>3</priority>
   </rule>
-  <rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">
-    <priority>3</priority>
-  </rule>
+  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
   <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
     <priority>3</priority>
   </rule>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
----------------------------------------------------------------------
diff --git a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
index a2183f5..63a2ca6 100644
--- a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
+++ b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheConstants.java
@@ -22,13 +22,12 @@ package org.apache.cayenne.jcache;
 /**
  * @since 4.0
  */
-public final class JCacheConstants {
+public interface JCacheConstants {
 
-    private JCacheConstants() {}
     /**
      * Default JCache cache name. This will be the cache used for queries with no explicit cache groups.
      */
-    public static final String DEFAULT_CACHE_NAME = "cayenne.default.cache";
+    String DEFAULT_CACHE_NAME = "cayenne.default.cache";
 
-    public static final String JCACHE_PROVIDER_CONFIG = "cayenne.jcache.provider_config";
+    String JCACHE_PROVIDER_CONFIG = "cayenne.jcache.provider_config";
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
index ac9cc7a..0d94f94 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
@@ -170,7 +170,7 @@ public abstract class BaseContext implements ObjectContext {
 	 */
 	protected void attachToChannel(DataChannel channel) {
 		if (channel == null) {
-			throw new NullPointerException("Null channel");
+			throw new IllegalArgumentException("Null channel");
 		}
 
 		setChannel(channel);
@@ -246,7 +246,7 @@ public abstract class BaseContext implements ObjectContext {
 	public <T extends Persistent> T localObject(T objectFromAnotherContext) {
 
 		if (objectFromAnotherContext == null) {
-			throw new NullPointerException("Null object argument");
+			throw new IllegalArgumentException("Null object argument");
 		}
 
 		ObjectId id = objectFromAnotherContext.getObjectId();
@@ -553,7 +553,7 @@ public abstract class BaseContext implements ObjectContext {
 
 		// don't allow null collections as a matter of coding discipline
 		if (objects == null) {
-			throw new NullPointerException("Null collection of objects to invalidate");
+			throw new IllegalArgumentException("Null collection of objects to invalidate");
 		}
 
 		if (!objects.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
index a12b1bb..5857edb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
@@ -248,7 +248,7 @@ public abstract class BaseDataObject extends PersistentObject implements DataObj
     @Override
     public void addToManyTarget(String relName, DataObject value, boolean setReverse) {
         if (value == null) {
-            throw new NullPointerException("Attempt to add null target DataObject.");
+            throw new IllegalArgumentException("Attempt to add null target DataObject.");
         }
 
         willConnect(relName, value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
index 0c7b483..4c2ef5f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextChangeLog.java
@@ -162,8 +162,9 @@ class ObjectContextChangeLog {
         private int size;
 
         SubList(List<GraphDiff> list, int fromIndex, int toIndex) {
-            if (fromIndex < 0)
+            if (fromIndex < 0) {
                 throw new IndexOutOfBoundsException("fromIndex = " + fromIndex);
+            }
             if (toIndex > list.size()) {
                 throw new IndexOutOfBoundsException("toIndex = " + toIndex);
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
index 408813e..69920d3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
@@ -56,7 +56,7 @@ class ObjectContextStateLog implements GraphChangeHandler {
         /*
          * Array for deleted ids, to avoid concurrent modification
          */
-        List<Object> deletedIds = new Vector<>();
+        List<Object> deletedIds = new ArrayList<>();
         
         for (Object id : dirtyIds) {
             Object node = graphManager.getNode(id);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
index 27460d2..99ba355 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
@@ -463,7 +463,7 @@ public class DataContext extends BaseContext {
     @Override
     public <T> T newObject(Class<T> persistentClass) {
         if (persistentClass == null) {
-            throw new NullPointerException("Null 'persistentClass'");
+            throw new IllegalArgumentException("Null 'persistentClass'");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(persistentClass);
@@ -527,7 +527,7 @@ public class DataContext extends BaseContext {
     @Override
     public void registerNewObject(Object object) {
         if (object == null) {
-            throw new NullPointerException("Can't register null object.");
+            throw new IllegalArgumentException("Can't register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity((Persistent) object);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
index 7715c12..6ec5e43 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
@@ -114,7 +114,7 @@ class DataDomainLegacyQueryAction implements QueryRouter, OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new NullPointerException("Null DataMap, can't determine DataNode.");
+            throw new IllegalArgumentException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index a87de83..b005b90 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -536,7 +536,7 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new NullPointerException("Null DataMap, can't determine DataNode.");
+            throw new IllegalArgumentException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
index 7c25ab5..c5d98e6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
@@ -82,7 +82,7 @@ abstract class DataDomainSyncBucket {
     void checkReadOnly(ObjEntity entity) throws CayenneRuntimeException {
 
         if (entity == null) {
-            throw new NullPointerException("Entity must not be null.");
+            throw new IllegalArgumentException("Entity must not be null.");
         }
 
         if (entity.isReadOnly()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
index e03d2ed..a68e11a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataRowStore.java
@@ -52,7 +52,7 @@ import java.util.concurrent.ConcurrentMap;
  */
 public class DataRowStore implements Serializable {
 
-    private static Logger logger = LoggerFactory.getLogger(DataRowStore.class);
+    private static final Logger logger = LoggerFactory.getLogger(DataRowStore.class);
 
     // default property values
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
index d49f839..23403be 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbGenerator.java
@@ -58,7 +58,7 @@ import java.util.Map;
  */
 public class DbGenerator {
 
-	private Logger logObj = LoggerFactory.getLogger(DbGenerator.class);
+	private static final Logger logObj = LoggerFactory.getLogger(DbGenerator.class);
 
 	protected DbAdapter adapter;
 	protected DataMap map;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java b/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
index 2d2cca0..d78b3d9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/IncrementalFaultList.java
@@ -422,8 +422,9 @@ public class IncrementalFaultList<E> implements List<E>, Serializable {
 			}
 
 			public E next() {
-				if (listIndex >= elements.size())
+				if (listIndex >= elements.size()) {
 					throw new NoSuchElementException("no more elements");
+				}
 
 				return get(listIndex++);
 			}
@@ -807,8 +808,9 @@ public class IncrementalFaultList<E> implements List<E>, Serializable {
 		}
 
 		public E next() {
-			if (listIndex >= elements.size())
+			if (listIndex >= elements.size()) {
 				throw new NoSuchElementException("at the end of the list");
+			}
 
 			return get(listIndex++);
 		}
@@ -818,8 +820,9 @@ public class IncrementalFaultList<E> implements List<E>, Serializable {
 		}
 
 		public E previous() {
-			if (listIndex < 1)
+			if (listIndex < 1) {
 				throw new NoSuchElementException("at the beginning of the list");
+			}
 
 			return get(--listIndex);
 		}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
index e6e5dab..5393980 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
@@ -59,11 +59,11 @@ public class DistinctResultIterator<T> implements ResultIterator<T> {
      */
     public DistinctResultIterator(ResultIterator<T> delegate, DbEntity defaultEntity, boolean compareFullRows) {
         if (delegate == null) {
-            throw new NullPointerException("Null wrapped iterator.");
+            throw new IllegalArgumentException("Null wrapped iterator.");
         }
 
         if (defaultEntity == null) {
-            throw new NullPointerException("Null defaultEntity.");
+            throw new IllegalArgumentException("Null defaultEntity.");
         }
 
         this.delegate = delegate;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
index e2f03ce..da7d3e8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
@@ -44,7 +44,7 @@ public class LimitResultIterator<T> implements ResultIterator<T> {
     public LimitResultIterator(ResultIterator<T> delegate, int offset, int fetchLimit) {
 
         if (delegate == null) {
-            throw new NullPointerException("Null delegate iterator.");
+            throw new IllegalArgumentException("Null delegate iterator.");
         }
         this.delegate = delegate;
         this.offset = offset;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
index 11fa179..a70d322 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLConditionTranslator.java
@@ -693,7 +693,7 @@ public class EJBQLConditionTranslator extends EJBQLBaseVisitor {
             Long longValue;
 
             try {
-                longValue = new Long(text);
+                longValue = Long.valueOf(text);
             } catch (NumberFormatException nfex) {
                 throw new EJBQLException("Invalid integer: " + expression.getText());
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
index a28d647..485b989 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
@@ -62,7 +62,7 @@ class EJBQLTableId {
     EJBQLTableId(String entityId, String dbPath) {
 
         if (entityId == null) {
-            throw new NullPointerException("Null entityId");
+            throw new IllegalArgumentException("Null entityId");
         }
 
         this.entityId = entityId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index 81ec0ee..774d0bf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -314,16 +314,20 @@ public class QualifierTranslator extends QueryAssemblerHelper implements Travers
 				out.append(" / ");
 				break;
 			case Expression.BETWEEN:
-				if (childIndex == 0)
+				if (childIndex == 0) {
 					out.append(" BETWEEN ");
-				else if (childIndex == 1)
+				}
+				else if (childIndex == 1) {
 					out.append(" AND ");
+				}
 				break;
 			case Expression.NOT_BETWEEN:
-				if (childIndex == 0)
+				if (childIndex == 0) {
 					out.append(" NOT BETWEEN ");
-				else if (childIndex == 1)
+				}
+				else if (childIndex == 1) {
 					out.append(" AND ");
+				}
 				break;
 			case Expression.BITWISE_OR:
 				out.append(" ").append(operandForBitwiseOr()).append(" ");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
index 044605f..d5d2c42 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
@@ -149,18 +149,22 @@ public class CalendarType<T extends Calendar> implements ExtendedType<Calendar>
     }
 
     protected Object convertToJdbcObject(Calendar value, int type) throws Exception {
-        if (type == Types.DATE)
+        if (type == Types.DATE) {
             return new java.sql.Date(value.getTimeInMillis());
-        else if (type == Types.TIME)
+        }
+        else if (type == Types.TIME) {
             return new java.sql.Time(value.getTimeInMillis());
-        else if (type == Types.TIMESTAMP)
+        }
+        else if (type == Types.TIMESTAMP) {
             return new java.sql.Timestamp(value.getTimeInMillis());
-        else
+        }
+        else {
             throw new IllegalArgumentException(
                     "Only DATE, TIME or TIMESTAMP can be mapped as '"
                             + getClassName()
                             + "', got "
                             + TypesMapping.getSqlNameByType(type));
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
index 17151cb..77a1cd4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedEnumType.java
@@ -49,8 +49,9 @@ public class ExtendedEnumType<T extends Enum<T>> implements ExtendedType<T> {
     private Map<Object, Enum<T>> enumerationMappings = new HashMap<>();
 
     public ExtendedEnumType(Class<T> enumerationClass) {
-        if (enumerationClass == null)
+        if (enumerationClass == null) {
             throw new IllegalArgumentException("Null ExtendedEnumType class");
+        }
 
         this.enumerationClass = enumerationClass;
 
@@ -117,8 +118,9 @@ public class ExtendedEnumType<T extends Enum<T>> implements ExtendedType<T> {
     private void register(Enum<T> enumeration, Object databaseValue) {
         // Check for duplicates.
         if (enumerationMappings.containsKey(databaseValue)
-                || enumerationMappings.containsValue(enumeration))
+                || enumerationMappings.containsValue(enumeration)) {
             throw new CayenneRuntimeException("Enumerations/values may not be duplicated.");
+        }
 
         // Store by database value/enum because we have to lookup by db value later.
         enumerationMappings.put(databaseValue, enumeration);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
index 8d3d31b..e2b869e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
@@ -189,7 +189,7 @@ public class ExtendedTypeMap {
 	ExtendedType getExplictlyRegisteredType(String className) {
 
 		if (className == null) {
-			throw new NullPointerException("Null className");
+			throw new IllegalArgumentException("Null className");
 		}
 		return typeMap.get(className);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index 13214a9..1fa1b9e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -265,9 +265,10 @@ public class AshwoodEntitySorter implements EntitySorter {
 
 		while (sorter.hasNext()) {
 			Persistent o = sorter.next();
-			if (o == null)
+			if (o == null) {
 				throw new CayenneRuntimeException("Sorting objects for %s failed. Cycles found."
 						, objEntity.getClassName());
+			}
 			sorted.add(o);
 		}
 
@@ -340,8 +341,9 @@ public class AshwoodEntitySorter implements EntitySorter {
 
 		@Override
 		public int compare(ObjEntity o1, ObjEntity o2) {
-			if (o1 == o2)
+			if (o1 == o2) {
 				return 0;
+			}
 			DbEntity t1 = o1.getDbEntity();
 			DbEntity t2 = o2.getDbEntity();
 			return dbEntityComparator.compare(t1, t2);
@@ -353,22 +355,25 @@ public class AshwoodEntitySorter implements EntitySorter {
 		@Override
 		public int compare(DbEntity t1, DbEntity t2) {
 
-			if (t1 == t2)
+			if (t1 == t2) {
 				return 0;
-			if (t1 == null)
+			}
+			if (t1 == null) {
 				return -1;
-			else if (t2 == null)
+			}
+			else if (t2 == null) {
 				return 1;
+			}
 			else {
 				ComponentRecord rec1 = components.get(t1);
 				ComponentRecord rec2 = components.get(t2);
 
 				if(rec1 == null) {
-					throw new NullPointerException("No record for DbEntity: " + t1);
+					throw new IllegalArgumentException("No record for DbEntity: " + t1);
 				}
 
 				if(rec2 == null) {
-					throw new NullPointerException("No record for DbEntity: " + t2);
+					throw new IllegalArgumentException("No record for DbEntity: " + t2);
 				}
 
 				int index1 = rec1.index;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
index cc8321e..4bc8ab6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/DepthFirstStampSearch.java
@@ -100,8 +100,9 @@ public class DepthFirstStampSearch<E> extends DepthFirstSearch<E> {
 			stack.push(factory.outgoingIterator(dst));
 			// grow depth
 			stamp = GROW_DEPTH_STAMP;
-			if (i.hasNext())
+			if (i.hasNext()) {
 				i.next();
+			}
 		} else {
 			if (i.hasNext()) {
 				i.next();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
index 81653ab..7b0f3a0 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterArcIterator.java
@@ -84,11 +84,13 @@ public class FilterArcIterator<E, V> implements ArcIterator<E, V> {
         this.acceptDestination = acceptDestination;
         this.acceptArc = acceptArc;
         nextOrigin = iterator.getOrigin();
-        if (!acceptOrigin.test(nextOrigin))
+        if (!acceptOrigin.test(nextOrigin)) {
             nextOrigin = null;
+        }
         nextDst = iterator.getDestination();
-        if (!acceptDestination.test(nextDst))
+        if (!acceptDestination.test(nextDst)) {
             nextDst = null;
+        }
     }
 
     public E getOrigin() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
index e679c22..89b6e27 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/FilterIteration.java
@@ -93,8 +93,9 @@ public class FilterIteration<E, V> implements DigraphIteration<E, V> {
     }
 
     public ArcIterator<E, V> outgoingIterator(E vertex) {
-        if (!acceptVertex.test(vertex))
+        if (!acceptVertex.test(vertex)) {
             return EmptyIterator.instance();
+        }
         return new FilterArcIterator<>(
                 digraph.outgoingIterator(vertex),
                 v -> true,
@@ -103,8 +104,9 @@ public class FilterIteration<E, V> implements DigraphIteration<E, V> {
     }
 
     public ArcIterator<E, V> incomingIterator(E vertex) {
-        if (!acceptVertex.test(vertex))
+        if (!acceptVertex.test(vertex)) {
             return EmptyIterator.instance();
+        }
         return new FilterArcIterator<>(
                 digraph.incomingIterator(vertex),
                 acceptVertex,

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
index 597edaa..749730d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/IndegreeTopologicalSort.java
@@ -94,8 +94,9 @@ public class IndegreeTopologicalSort<E> implements Iterator<E> {
         boolean progress = true;
         while (hasNext()) {
             if (!current.hasNext()) {
-                if (!progress)
+                if (!progress) {
                     break;
+                }
                 progress = false;
                 current = vertices.listIterator();
             }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
index 1526379..31cac7b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
@@ -130,10 +130,12 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 	@Override
 	public boolean removeVertex(E vertex) {
 		Map<E, V> destination = graph.remove(vertex);
-		if (destination != null)
+		if (destination != null) {
 			size -= destination.size();
-		else
+		}
+		else {
 			return false;
+		}
 
 		removeIncoming(vertex);
 		return true;
@@ -158,8 +160,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 		}
 
 		V arc = destinations.remove(destination);
-		if (arc != null)
+		if (arc != null) {
 			size--;
+		}
 
 		return arc;
 	}
@@ -170,8 +173,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 
 		for (Map<E, V> destinations : graph.values()) {
 			Object arc = destinations.remove(vertex);
-			if (arc != null)
+			if (arc != null) {
 				size--;
+			}
 			modified |= (arc != null);
 		}
 
@@ -182,10 +186,12 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 	public boolean removeOutgoing(E vertex) {
 
 		Map<E, V> destinations = graph.remove(vertex);
-		if (destinations != null)
+		if (destinations != null) {
 			size -= destinations.size();
-		else
+		}
+		else {
 			return false;
+		}
 		boolean modified = !destinations.isEmpty();
 		destinations.clear();
 		return modified;
@@ -232,17 +238,20 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 	@Override
 	public int outgoingSize(E vertex) {
 		Map<E, V> destinations = graph.get(vertex);
-		if (destinations == null)
+		if (destinations == null) {
 			return 0;
-		else
+		}
+		else {
 			return destinations.size();
+		}
 	}
 
 	@Override
 	public int incomingSize(E vertex) {
 		int count = 0;
-		if (!graph.containsKey(vertex))
+		if (!graph.containsKey(vertex)) {
 			return 0;
+		}
 
 		for (Map<E, V> destinations : graph.values()) {
 			count += (destinations.containsKey(vertex) ? 1 : 0);
@@ -264,8 +273,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 	@Override
 	public boolean hasArc(E origin, E destination) {
 		Map<E, V> destinations = graph.get(origin);
-		if (destinations == null)
+		if (destinations == null) {
 			return false;
+		}
 		return destinations.containsKey(destination);
 	}
 
@@ -366,8 +376,9 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 
 		@Override
 		public E getDestination() {
-			if (entry == null)
+			if (entry == null) {
 				return null;
+			}
 			return entry.getKey();
 		}
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
index d099ea1..3c9cf20 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
@@ -140,8 +140,9 @@ public class StrongConnection<E, V> implements Iterator<Collection<E>> {
 				for (ArcIterator<E, V> k = digraph.outgoingIterator(member); k.hasNext();) {
 					V arc = k.next();
 					E dst = k.getDestination();
-					if (origin.contains(dst))
+					if (origin.contains(dst)) {
 						continue;
+					}
 					Collection<E> destination = memberToComponent.get(dst);
 
 					Collection<V> contractedArc = contractedDigraph.getArc(origin, destination);
@@ -172,12 +173,15 @@ public class StrongConnection<E, V> implements Iterator<Collection<E>> {
 		dfsStack.clear();
 		reverseDFSFilter.seenVertices.clear();
 		E root = nextDFSRoot();
-		if (root == null)
+		if (root == null) {
 			return false;
-		if (directDfs == null)
+		}
+		if (directDfs == null) {
 			directDfs = new DepthFirstStampSearch<>(filteredDigraph, root);
-		else
+		}
+		else {
 			directDfs.reset(root);
+		}
 		int stamp;
 		E vertex;
 		while (directDfs.hasNext()) {
@@ -198,10 +202,12 @@ public class StrongConnection<E, V> implements Iterator<Collection<E>> {
 		E root = (E) dfsStack.pop();
 		Collection<E> component = Collections.singletonList(root);
 		boolean singleton = true;
-		if (reverseDfs == null)
+		if (reverseDfs == null) {
 			reverseDfs = new DepthFirstSearch<>(reverseDigraph, root);
-		else
+		}
+		else {
 			reverseDfs.reset(root);
+		}
 		while (reverseDfs.hasNext()) {
 			E vertex = reverseDfs.next();
 			if (vertex != root) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
index 5e6a53d..d399b86 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
@@ -92,7 +92,7 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
 	protected String getDataChannelName(String name) {
 		if (name == null) {
-			throw new NullPointerException("Null DataChannelDescriptor name");
+			throw new IllegalArgumentException("Null DataChannelDescriptor name");
 		}
 
 		return CAYENNE_PREFIX + name + CAYENNE_SUFFIX;
@@ -100,7 +100,7 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
 	protected String getDataMapName(String name) {
 		if (name == null) {
-			throw new NullPointerException("Null DataMap name");
+			throw new IllegalArgumentException("Null DataMap name");
 		}
 
 		return name + DATA_MAP_SUFFIX;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
index 9e44d19..675525a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultDataChannelDescriptorMerger.java
@@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory;
  */
 public class DefaultDataChannelDescriptorMerger implements DataChannelDescriptorMerger {
 
-    private static Logger logger = LoggerFactory
+    private static final Logger logger = LoggerFactory
             .getLogger(DefaultDataChannelDescriptorMerger.class);
 
     public DataChannelDescriptor merge(DataChannelDescriptor... descriptors) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
index 67b7581..d8cd163 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
@@ -66,10 +66,12 @@ public class Rot13PasswordEncoder implements PasswordEncoding {
             char c = value.charAt(i);
 
             // If c is a letter, rotate it by 13. Numbers/symbols are untouched.
-            if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M'))
+            if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M')) {
                 c += 13; // The first half of the alphabet goes forward 13 letters
-            else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z'))
+            }
+            else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) {
                 c -= 13; // The last half of the alphabet goes backward 13 letters
+            }
 
             result.append(c);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
index 5895fcd..e5d87b3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot47PasswordEncoder.java
@@ -76,8 +76,9 @@ public class Rot47PasswordEncoder implements PasswordEncoding {
                 // therefore the value that needs to be subtracted from the
                 // non-printable character to put it into the correct printable
                 // range.
-                if (c > '~')
+                if (c > '~') {
                     c -= 94;
+                }
             }
 
             result.append(c);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
index e616700..f0d3402 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DataDomainProvider.java
@@ -57,7 +57,7 @@ import java.util.List;
  */
 public class DataDomainProvider implements Provider<DataDomain> {
 
-	private static Logger logger = LoggerFactory.getLogger(DataDomainProvider.class);
+	private static final Logger logger = LoggerFactory.getLogger(DataDomainProvider.class);
 
 	@Inject
 	protected ResourceLocator resourceLocator;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
index 2287071..46ea16d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
@@ -57,7 +57,7 @@ public class DefaultDbAdapterFactory implements DbAdapterFactory {
 
 	public DefaultDbAdapterFactory(@Inject(Constants.SERVER_ADAPTER_DETECTORS_LIST) List<DbAdapterDetector> detectors) {
 		if (detectors == null) {
-			throw new NullPointerException("Null detectors list");
+			throw new IllegalArgumentException("Null detectors list");
 		}
 
 		this.detectors = detectors;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
index ddca060..e351fac 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelChildrenHandler.java
@@ -34,7 +34,7 @@ import org.xml.sax.ContentHandler;
  */
 final class DataChannelChildrenHandler extends NamespaceAwareNestedTagHandler {
 
-    private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String OLD_MAP_TAG = "map";
     static final String NODE_TAG = "node";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
index 8b71bc7..b55e604 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataChannelHandler.java
@@ -30,7 +30,7 @@ import org.xml.sax.ContentHandler;
  */
 final class DataChannelHandler extends VersionAwareHandler {
 
-    private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String DOMAIN_TAG = "domain";
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
index 066dd31..df95704 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DataSourceChildrenHandler.java
@@ -35,7 +35,7 @@ import org.xml.sax.Attributes;
  */
 class DataSourceChildrenHandler extends NamespaceAwareNestedTagHandler {
 
-    private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     static final String DRIVER_TAG = "driver";
     static final String LOGIN_TAG = "login";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
index 8de6bb1..ce766f8 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
@@ -28,6 +28,8 @@ import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -126,7 +128,7 @@ public class DbEntityHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
index 5fd2293..f20b058 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DefaultHandlerFactory.java
@@ -28,7 +28,7 @@ import org.xml.sax.Attributes;
  */
 public class DefaultHandlerFactory implements HandlerFactory {
 
-    private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+    private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
     @Override
     public NamespaceAwareNestedTagHandler createHandler(String namespace, String localName, NamespaceAwareNestedTagHandler parent) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
index e9ee9aa..ab4a655 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
@@ -28,6 +28,8 @@ import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -191,7 +193,7 @@ public class ObjEntityHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
index 4034184..da18429 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
@@ -26,6 +26,8 @@ import org.apache.cayenne.util.Util;
 import org.xml.sax.Attributes;
 import org.xml.sax.SAXException;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * @since 4.1
  */
@@ -160,7 +162,7 @@ public class QueryDescriptorHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (qualifier.trim().length() == 0) {
+        if (isBlank(qualifier.trim())) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
index 8444732..5a55447 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
@@ -47,7 +47,7 @@ import java.net.URL;
  */
 public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoader {
 
-	private static Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
+	private static final Logger logger = LoggerFactory.getLogger(XMLDataChannelDescriptorLoader.class);
 
 	static final String CURRENT_PROJECT_VERSION = "10";
 
@@ -117,7 +117,7 @@ public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoad
 	public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
 
 		if (configurationResource == null) {
-			throw new NullPointerException("Null configurationResource");
+			throw new IllegalArgumentException("Null configurationResource");
 		}
 
 		URL configurationURL = configurationResource.getURL();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
index 0647fbc..967054c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
@@ -20,6 +20,7 @@
 package org.apache.cayenne.conn;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
 import org.apache.cayenne.configuration.PasswordEncoding;
@@ -38,7 +39,7 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 
 	private static final long serialVersionUID = 3748394113864532902L;
 
-	private static Logger logger = LoggerFactory.getLogger(DataSourceInfo.class);
+	private static final Logger logger = LoggerFactory.getLogger(DataSourceInfo.class);
 
 	public static final String PASSWORD_LOCATION_CLASSPATH = "classpath";
 	public static final String PASSWORD_LOCATION_EXECUTABLE = "executable";
@@ -132,6 +133,15 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 		return true;
 	}
 
+	@Override
+	public int hashCode() {
+		return Objects.hash(userName, password, jdbcDriver,
+				dataSourceUrl, adapterClassName, minConnections,
+				maxConnections, passwordEncoderClass, passwordEncoderKey,
+				passwordLocation, passwordSourceFilename, passwordSourceModel,
+				passwordSourceUrl);
+	}
+
 	/**
 	 * @since 3.1
 	 */
@@ -268,10 +278,12 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	 *            the passwordEncoderClass to set
 	 */
 	public void setPasswordEncoderClass(String passwordEncoderClass) {
-		if (passwordEncoderClass == null)
+		if (passwordEncoderClass == null) {
 			this.passwordEncoderClass = PasswordEncoding.standardEncoders[0];
-		else
+		}
+		else {
 			this.passwordEncoderClass = passwordEncoderClass;
+		}
 	}
 
 	/**
@@ -342,26 +354,33 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	}
 
 	public String getPasswordSource() {
-		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
 			return getPasswordSourceFilename();
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+		}
+		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
 			return getPasswordSourceExecutable();
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL))
+		}
+		else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL)) {
 			return getPasswordSourceModel();
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+		}
+		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
 			return getPasswordSourceUrl();
+		}
 
 		throw new RuntimeException("Invalid password source detected");
 	}
 
 	public void setPasswordSource(String passwordSource) {
 		// The location for the model is omitted since it cannot change
-		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
 			setPasswordSourceFilename(passwordSource);
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+		}
+		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
 			setPasswordSourceExecutable(passwordSource);
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+		}
+		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
 			setPasswordSourceUrl(passwordSource);
+		}
 	}
 
 	/**
@@ -376,10 +395,12 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	 *            the passwordLocation to set
 	 */
 	public void setPasswordLocation(String passwordLocation) {
-		if (passwordLocation == null)
+		if (passwordLocation == null) {
 			this.passwordLocation = DataSourceInfo.PASSWORD_LOCATION_MODEL;
-		else
+		}
+		else {
 			this.passwordLocation = passwordLocation;
+		}
 	}
 
 	@Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
index b5ccc5a..33e8f9f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
@@ -58,7 +58,7 @@ public class DriverDataSource implements DataSource {
 	public DriverDataSource(Driver driver, String connectionUrl, String userName, String password) {
 
 		if (connectionUrl == null) {
-			throw new NullPointerException("Null 'connectionUrl'");
+			throw new IllegalArgumentException("Null 'connectionUrl'");
 		}
 
 		this.driver = driver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java b/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
index da40900..a51fe55 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/datasource/UnmanagedPoolingDataSource.java
@@ -88,7 +88,7 @@ public class UnmanagedPoolingDataSource implements PoolingDataSource {
 	 */
 	public static final int MAX_QUEUE_WAIT_DEFAULT = 20000;
 
-	private static Logger LOGGER = LoggerFactory.getLogger(UnmanagedPoolingDataSource.class);
+	private static final Logger LOGGER = LoggerFactory.getLogger(UnmanagedPoolingDataSource.class);
 
 	private DataSource nonPoolingDataSource;
 	private long maxQueueWaitTime;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
index 24d39ae..4c53225 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
@@ -197,8 +197,8 @@ public class MySQLAdapter extends JdbcAdapter {
 		else if (typeName != null && typeName.endsWith(" unsigned")) {
 			// per
 			// http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html
-			if (typeName.equals("int unsigned") || typeName.equals("integer unsigned")
-					|| typeName.equals("mediumint unsigned")) {
+			if ("int unsigned".equals(typeName) || "integer unsigned".equals(typeName)
+					|| "mediumint unsigned".equals(typeName)) {
 				type = Types.BIGINT;
 			}
 			// BIGINT UNSIGNED maps to BigInteger according to MySQL docs, but
@@ -288,10 +288,12 @@ public class MySQLAdapter extends JdbcAdapter {
             sqlBuffer.append(", PRIMARY KEY (");
             boolean firstPk = true;
             while (pkit.hasNext()) {
-                if (firstPk)
-                    firstPk = false;
-                else
-                    sqlBuffer.append(", ");
+                if (firstPk) {
+					firstPk = false;
+				}
+                else {
+					sqlBuffer.append(", ");
+				}
 
                 DbAttribute at = pkit.next();
                 sqlBuffer.append(quotingStrategy.quotedName(at));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
index ce2636f..02a7ca5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
@@ -524,7 +524,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
 	 */
 	public void traverse(TraversalHandler visitor) {
 		if (visitor == null) {
-			throw new NullPointerException("Null Visitor.");
+			throw new IllegalArgumentException("Null Visitor.");
 		}
 
 		traverse(null, visitor);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
index 6c227a9..7a27469 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
@@ -107,17 +107,21 @@ public class ExpressionFactory {
 		int min = 0;
 		int allLen = allTypes.length;
 		for (int i = 0; i < allLen; i++) {
-			if (allTypes[i] > max)
+			if (allTypes[i] > max) {
 				max = allTypes[i];
-			else if (allTypes[i] < min)
+			}
+			else if (allTypes[i] < min) {
 				min = allTypes[i];
+			}
 		}
 
 		// sanity check....
-		if (max > 500)
+		if (max > 500) {
 			throw new RuntimeException("Types values are too big: " + max);
-		if (min < 0)
+		}
+		if (min < 0) {
 			throw new RuntimeException("Types values are too small: " + min);
+		}
 
 		// now we know that if types are used as indexes,
 		// they will fit in array "max + 1" long (though gaps are possible)
@@ -285,7 +289,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Collection<?> values) {
 
 		if (values == null) {
-			throw new NullPointerException("Null values collection");
+			throw new IllegalArgumentException("Null values collection");
 		}
 
 		if (values.size() == 0) {
@@ -301,7 +305,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Object... values) {
 
 		if (values == null) {
-			throw new NullPointerException("Null values collection");
+			throw new IllegalArgumentException("Null values collection");
 		}
 
 		if (values.length == 0) {
@@ -1321,7 +1325,7 @@ public class ExpressionFactory {
 	private static Expression fromString(String expressionString) {
 
 		if (expressionString == null) {
-			throw new NullPointerException("Null expression string.");
+			throw new IllegalArgumentException("Null expression string.");
 		}
 
 		// optimizing parser buffers per CAY-1667...

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
index 5562b12..c89169e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionParameter.java
@@ -22,6 +22,7 @@ package org.apache.cayenne.exp;
 import org.apache.cayenne.util.Util;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 /**
  * Named parameter for parameterized expressions.
@@ -60,4 +61,9 @@ public class ExpressionParameter implements Serializable {
 		ExpressionParameter parameter = (ExpressionParameter) o;
 		return Util.nullSafeEquals(name, parameter.name);
 	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(name);
+	}
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
index 8260333..6872615 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Property.java
@@ -168,12 +168,20 @@ public class Property<E> {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
 
         Property<?> property = (Property<?>) o;
-        if (name != null ? !name.equals(property.name) : property.name != null) return false;
-        if (name == null && !expressionProvider.get().equals(property.expressionProvider.get())) return false;
+        if (name != null ? !name.equals(property.name) : property.name != null) {
+            return false;
+        }
+        if (name == null && !expressionProvider.get().equals(property.expressionProvider.get())) {
+            return false;
+        }
         return (type == null ? property.type == null : type.equals(property.type));
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
index 4777fd3..54ee014 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
@@ -94,7 +94,7 @@ public class ChildDiffLoader implements GraphChangeHandler {
 		try {
 			ObjectId id = (ObjectId) nodeId;
 			if (id.getEntityName() == null) {
-				throw new NullPointerException("Null entity name in id " + id);
+				throw new IllegalArgumentException("Null entity name in id " + id);
 			}
 
 			ObjEntity entity = context.getEntityResolver().getObjEntity(id.getEntityName());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
index b38c90e..aa8e7e6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/FormattedSlf4jJdbcEventLogger.java
@@ -70,8 +70,9 @@ public class FormattedSlf4jJdbcEventLogger extends Slf4jJdbcEventLogger {
         for (int pos = 0; pos < sql.length(); pos++) {
             if (sql.charAt(pos) == '\'') {
                 apixCount++;
-                if (pos > 0 && sql.charAt(pos - 1) == '\'')
+                if (pos > 0 && sql.charAt(pos - 1) == '\'') {
                     apixCount = apixCount - 2;
+                }
             }
             if (apixCount % 2 != 0) {
                 continue;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java b/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
index d29b585..9eef8e9 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/log/Slf4jJdbcEventLogger.java
@@ -75,8 +75,9 @@ public class Slf4jJdbcEventLogger implements JdbcEventLogger {
 	}
 
 	private boolean isInserting(String query) {
-		if (query == null || query.length() == 0)
+		if (query == null || query.length() == 0) {
 			return false;
+		}
 
 		char firstCharacter = query.charAt(0);
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
index 6d6b341..b2d73d5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/CallbackDescriptor.java
@@ -83,9 +83,10 @@ public class CallbackDescriptor implements Serializable {
     public boolean moveMethod(String callbackMethod, int destinationIndex) {
         List<String> callbackMethodsList = new ArrayList<>(callbackMethods);
         int currentIndex = callbackMethodsList.indexOf(callbackMethod);
-        if (currentIndex < 0)
+        if (currentIndex < 0) {
             throw new IllegalArgumentException("Unknown callback method: "
                     + callbackMethod);
+        }
 
         boolean changed = false;
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index f52f5b5..64f5aff 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -455,11 +455,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addQueryDescriptor(QueryDescriptor queryDescriptor) {
 		if (queryDescriptor == null) {
-			throw new NullPointerException("Can't add null query.");
+			throw new IllegalArgumentException("Can't add null query.");
 		}
 
 		if (queryDescriptor.getName() == null) {
-			throw new NullPointerException("Query name can't be null.");
+			throw new IllegalArgumentException("Query name can't be null.");
 		}
 
 		// TODO: change method signature to return replaced procedure and make
@@ -553,11 +553,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addEmbeddable(Embeddable embeddable) {
 		if (embeddable == null) {
-			throw new NullPointerException("Null embeddable");
+			throw new IllegalArgumentException("Null embeddable");
 		}
 
 		if (embeddable.getClassName() == null) {
-			throw new NullPointerException("Attempt to add Embeddable with no class name.");
+			throw new IllegalArgumentException("Attempt to add Embeddable with no class name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -583,11 +583,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addResult(SQLResult result) {
 		if (result == null) {
-			throw new NullPointerException("Null result");
+			throw new IllegalArgumentException("Null result");
 		}
 
 		if (result.getName() == null) {
-			throw new NullPointerException("Attempt to add resultSetMapping with no name.");
+			throw new IllegalArgumentException("Attempt to add resultSetMapping with no name.");
 		}
 
 		Object existing = results.get(result.getName());
@@ -607,7 +607,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addObjEntity(ObjEntity entity) {
 		if (entity.getName() == null) {
-			throw new NullPointerException("Attempt to add ObjEntity with no name.");
+			throw new IllegalArgumentException("Attempt to add ObjEntity with no name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -631,7 +631,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addDbEntity(DbEntity entity) {
 		if (entity.getName() == null) {
-			throw new NullPointerException("Attempt to add DbEntity with no name.");
+			throw new IllegalArgumentException("Attempt to add DbEntity with no name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -922,7 +922,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addProcedure(Procedure procedure) {
 		if (procedure.getName() == null) {
-			throw new NullPointerException("Attempt to add procedure with no name.");
+			throw new IllegalArgumentException("Attempt to add procedure with no name.");
 		}
 
 		// TODO: change method signature to return replaced procedure and make

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
index d91e787..30e54e1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbKeyGenerator.java
@@ -109,8 +109,9 @@ public class DbKeyGenerator implements CayenneMapEntry, XMLSerializable, Seriali
         if (this.generatorType != null) {
             this.generatorType = this.generatorType.trim().toUpperCase();
             if (!(ORACLE_TYPE.equals(this.generatorType)
-                    || NAMED_SEQUENCE_TABLE_TYPE.equals(this.generatorType)))
+                    || NAMED_SEQUENCE_TABLE_TYPE.equals(this.generatorType))) {
                 this.generatorType = null;
+            }
         }
     }
 
@@ -133,8 +134,9 @@ public class DbKeyGenerator implements CayenneMapEntry, XMLSerializable, Seriali
         this.generatorName = generatorName;
         if (this.generatorName != null) {
             this.generatorName = this.generatorName.trim();
-            if (this.generatorName.length() == 0)
+            if (this.generatorName.length() == 0) {
                 this.generatorName = null;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
index d4f7d54..e631156 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
@@ -64,13 +64,14 @@ class PathComponentIterator implements Iterator<PathComponent<Attribute, Relatio
         Attribute attr = currentEntity.getAttribute(pathComp);
         if (attr != null) {
             // do a sanity check...
-            if (toks.hasMoreTokens())
+            if (toks.hasMoreTokens()) {
                 throw new ExpressionException(
                         "Attribute must be the last component of the path: '"
                                 + pathComp
                                 + "'.",
                         path,
                         null);
+            }
 
             return new AttributePathComponent<Attribute, Relationship>(attr);
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
index cd5235f..fe4382b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
@@ -30,6 +30,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.apache.cayenne.util.Util.isBlank;
+
 /**
  * A builder that constructs Cayenne queries from abstract configuration information
  * defined in cayenne-data-map*.dtd. This abstract builder supports values declared in the
@@ -189,7 +191,7 @@ public class QueryDescriptorLoader {
     }
 
     public void setQualifier(String qualifier) {
-        if (qualifier == null || qualifier.trim().length() == 0) {
+        if (qualifier == null || isBlank(qualifier.trim())) {
             this.qualifier = null;
         }
         else {
@@ -210,7 +212,7 @@ public class QueryDescriptorLoader {
             orderings = new ArrayList<>();
         }
 
-        if (path != null && path.trim().length() == 0) {
+        if (path != null && isBlank(path.trim())) {
             path = null;
         }
         boolean isDescending = "true".equalsIgnoreCase(descending);
@@ -233,7 +235,7 @@ public class QueryDescriptorLoader {
     }
 
     public void addPrefetch(String path) {
-        if (path == null || (path != null && path.trim().length() == 0)) {
+        if (path == null || (path != null && isBlank(path.trim()))) {
             // throw??
             return;
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
index ca9db48..d16fbae 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
@@ -462,7 +462,7 @@ public class ColumnSelect<T> extends FluentSelect<T> {
     @SuppressWarnings("unchecked")
     public ColumnSelect<Object[]> columns(Collection<Property<?>> properties) {
         if (properties == null){
-            throw new NullPointerException("properties is null");
+            throw new IllegalArgumentException("properties is null");
         }
         if (properties.isEmpty()) {
             throw new IllegalArgumentException("properties must contain at least one element");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
index b58d11c..7c430eb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
@@ -54,7 +54,7 @@ public class DeleteBatchQuery extends BatchQuery {
         super(dbEntity, qualifierAttributes, batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new NullPointerException("Null 'nullQualifierNames'");
+            throw new IllegalArgumentException("Null 'nullQualifierNames'");
         }
 
         this.nullQualifierNames = nullQualifierNames;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/87c6ccc8/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
index 96968c5..ddbe32f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
@@ -69,7 +69,7 @@ public class ObjectIdQuery extends IndirectQuery {
      */
     public ObjectIdQuery(ObjectId objectId, boolean fetchingDataRows, int cachePolicy) {
         if (objectId == null) {
-            throw new NullPointerException("Null objectID");
+            throw new IllegalArgumentException("Null objectID");
         }
 
         this.objectId = objectId;


[07/11] cayenne git commit: Code-checkers, omd, checkstyle and code-coverage

Posted by nt...@apache.org.
Code-checkers, omd, checkstyle and code-coverage


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/0b01512b
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/0b01512b
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/0b01512b

Branch: refs/heads/master
Commit: 0b01512b8e72abe136d1b55e96c5be48de87eca5
Parents: ea745fd
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Jan 26 15:22:15 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Jan 26 15:22:15 2018 +0300

----------------------------------------------------------------------
 build-tools/cayenne-checkers/pom.xml            |   9 +-
 .../src/main/resources/cayenne-checkstyle.xml   |  82 ++++++
 .../src/main/resources/cayenne-pmd.xml          | 295 +++++++++++++++++++
 build-tools/cayenne-coverage/pom.xml            | 125 --------
 cayenne-checkstyle.xml                          |  82 ------
 cayenne-pmd.xml                                 | 295 -------------------
 .../java/org/apache/cayenne/BaseContext.java    |   6 +-
 .../java/org/apache/cayenne/BaseDataObject.java |   2 +-
 .../org/apache/cayenne/access/DataContext.java  |   4 +-
 .../access/DataDomainLegacyQueryAction.java     |   2 +-
 .../cayenne/access/DataDomainQueryAction.java   |   2 +-
 .../cayenne/access/DataDomainSyncBucket.java    |   2 +-
 .../access/jdbc/DistinctResultIterator.java     |   4 +-
 .../access/jdbc/LimitResultIterator.java        |   2 +-
 .../access/translator/ejbql/EJBQLTableId.java   |   2 +-
 .../cayenne/access/types/ExtendedTypeMap.java   |   2 +-
 .../cayenne/ashwood/AshwoodEntitySorter.java    |   4 +-
 .../DefaultConfigurationNameMapper.java         |   4 +-
 .../server/DefaultDbAdapterFactory.java         |   2 +-
 .../xml/XMLDataChannelDescriptorLoader.java     |   2 +-
 .../cayenne/datasource/DriverDataSource.java    |   2 +-
 .../java/org/apache/cayenne/exp/Expression.java |   2 +-
 .../apache/cayenne/exp/ExpressionFactory.java   |   6 +-
 .../apache/cayenne/graph/ChildDiffLoader.java   |   2 +-
 .../java/org/apache/cayenne/map/DataMap.java    |  18 +-
 .../org/apache/cayenne/query/ColumnSelect.java  |   2 +-
 .../apache/cayenne/query/DeleteBatchQuery.java  |   2 +-
 .../org/apache/cayenne/query/ObjectIdQuery.java |   2 +-
 .../apache/cayenne/query/PrefetchTreeNode.java  |   2 +-
 .../cayenne/query/SelectQueryMetadata.java      |   2 +-
 .../apache/cayenne/query/UpdateBatchQuery.java  |   2 +-
 .../cayenne/reflect/BaseToManyProperty.java     |   2 +-
 .../cayenne/reflect/ClassDescriptorMap.java     |   2 +-
 .../reflect/LifecycleCallbackRegistry.java      |   2 +-
 .../cayenne/reflect/PersistentDescriptor.java   |   2 +-
 .../cayenne/reflect/PropertyAccessor.java       |   2 +-
 .../valueholder/ValueHolderMapProperty.java     |   2 +-
 .../resource/FilesystemResourceLocator.java     |   2 +-
 .../org/apache/cayenne/util/ReferenceMap.java   |   4 +-
 .../java/org/apache/cayenne/util/RegexUtil.java |   2 +-
 .../apache/cayenne/util/RelationshipFault.java  |   4 +-
 .../ConcurrentLinkedHashMap.java                |   2 +-
 .../validation/BeanValidationFailure.java       |   2 +-
 .../apache/cayenne/util/WeakValueMapTest.java   |   4 +-
 pom.xml                                         | 223 +++++++-------
 45 files changed, 546 insertions(+), 679 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-checkers/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/pom.xml b/build-tools/cayenne-checkers/pom.xml
index 5d88b5b..6e2c2d3 100644
--- a/build-tools/cayenne-checkers/pom.xml
+++ b/build-tools/cayenne-checkers/pom.xml
@@ -20,14 +20,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <groupId>org.apache.cayenne.build-tools</groupId>
-        <artifactId>build-tools-parent</artifactId>
-        <version>4.1.M2-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
+    <groupId>org.apache.cayenne.build-tools</groupId>
     <artifactId>cayenne-checkers</artifactId>
+    <version>4.1.M2-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <name>cayenne-checkers: Cayenne Code Checkers</name>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
new file mode 100644
index 0000000..90587cb
--- /dev/null
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
@@ -0,0 +1,82 @@
+<?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.
+  -->
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
+<module name="Checker">
+    <module name="SuppressionCommentFilter"/>
+    <module name="TreeWalker">
+        <module name="FileContentsHolder"/>
+        <module name="CyclomaticComplexity">
+            <property name="severity" value="error"/>
+            <property name="max" value="15"/>
+        </module>
+        <module name="MethodLength">
+            <property name="severity" value="warning"/>
+            <property name="max" value="200"/>
+        </module>
+        <module name="IllegalCatch">
+            <property name="severity" value="warning"/>
+        </module>
+
+        <module name="FallThrough">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EqualsHashCode">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingSwitchDefault">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ExecutableStatementCount">
+            <property name="severity" value="error"/>
+        </module>
+        <module name="CovariantEquals">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ConstantName">
+            <property name="severity" value="info"/>
+            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
+        </module>
+        <module name="IllegalThrows">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ArrayTypeStyle">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="EqualsAvoidNull">
+            <property name="severity" value="warning"/>
+            <property name="ignoreEqualsIgnoreCase" value="false"/>
+        </module>
+        <module name="AvoidNestedBlocks">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingDeprecated">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="DefaultComesLast">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="BooleanExpressionComplexity">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EmptyBlock">
+            <property name="severity" value="warning"/>
+        </module>
+    </module>
+</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
new file mode 100644
index 0000000..de950e7
--- /dev/null
+++ b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
@@ -0,0 +1,295 @@
+<?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>
+
+  <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
+    <priority>3</priority>
+  </rule>
+
+  <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
+    <priority>2</priority>
+    <properties>
+      <property name="reportLevel" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
+    <priority>1</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ShortMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
+    <priority>3</priority>
+  </rule>
+
+  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
+    <priority>3</priority>
+    <properties>
+      <property name="maxmethods" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
+    <priority>1</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
+    <!--<priority>1</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/BadComparison">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyInitializer">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/StringToString">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/CloseResource">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
+    <priority>3</priority>
+  </rule>
+</ruleset>
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/build-tools/cayenne-coverage/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-coverage/pom.xml b/build-tools/cayenne-coverage/pom.xml
deleted file mode 100644
index 6a4a51b..0000000
--- a/build-tools/cayenne-coverage/pom.xml
+++ /dev/null
@@ -1,125 +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.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>build-tools-parent</artifactId>
-        <groupId>org.apache.cayenne.build-tools</groupId>
-        <version>4.0.M2-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>cayenne-coverage</artifactId>
-    <name>cayenne-coverage</name>
-
-    <properties>
-        <cayenne.version>${parent.version}</cayenne.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-server</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-di</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-crypto</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne.plugins</groupId>
-            <artifactId>cayenne-maven-plugin</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.cayenne</groupId>
-            <artifactId>cayenne-ant</artifactId>
-            <version>${cayenne.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>extract</id>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>unpack-dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${basedir}/target/classes</outputDirectory>
-                            <includeGroupIds>org.apache.cayenne,org.apache.cayenne.plugins,org.apache.cayenne.modeler</includeGroupIds>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${jacoco.version}</version>
-                <executions>
-                    <execution>
-                        <id>aggregate-jacoco-ut.exec</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>merge</goal>
-                        </goals>
-                        <configuration>
-                            <fileSets>
-                                <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
-                                    <directory>${basedir}/../..</directory>
-                                    <includes>
-                                        <include>**/*.exec</include>
-                                    </includes>
-                                </fileSet>
-                            </fileSets>
-                            <destFile>${build.directory}/coverage-reports/jacoco-ut.exec</destFile>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>post-unit-test</id>
-                        <phase>test</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                        <configuration>
-                            <!-- Sets the path to the file which contains the execution data. -->
-                            <dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
-                            <!-- Sets the output directory for the code coverage report. -->
-                            <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/cayenne-checkstyle.xml b/cayenne-checkstyle.xml
deleted file mode 100644
index 90587cb..0000000
--- a/cayenne-checkstyle.xml
+++ /dev/null
@@ -1,82 +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.
-  -->
-<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
-        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
-<module name="Checker">
-    <module name="SuppressionCommentFilter"/>
-    <module name="TreeWalker">
-        <module name="FileContentsHolder"/>
-        <module name="CyclomaticComplexity">
-            <property name="severity" value="error"/>
-            <property name="max" value="15"/>
-        </module>
-        <module name="MethodLength">
-            <property name="severity" value="warning"/>
-            <property name="max" value="200"/>
-        </module>
-        <module name="IllegalCatch">
-            <property name="severity" value="warning"/>
-        </module>
-
-        <module name="FallThrough">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EqualsHashCode">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingSwitchDefault">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ExecutableStatementCount">
-            <property name="severity" value="error"/>
-        </module>
-        <module name="CovariantEquals">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ConstantName">
-            <property name="severity" value="info"/>
-            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
-        </module>
-        <module name="IllegalThrows">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ArrayTypeStyle">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="EqualsAvoidNull">
-            <property name="severity" value="warning"/>
-            <property name="ignoreEqualsIgnoreCase" value="false"/>
-        </module>
-        <module name="AvoidNestedBlocks">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingDeprecated">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="DefaultComesLast">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="BooleanExpressionComplexity">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EmptyBlock">
-            <property name="severity" value="warning"/>
-        </module>
-    </module>
-</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/cayenne-pmd.xml b/cayenne-pmd.xml
deleted file mode 100644
index de950e7..0000000
--- a/cayenne-pmd.xml
+++ /dev/null
@@ -1,295 +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>
-
-  <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
-    <priority>3</priority>
-  </rule>
-
-  <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
-    <priority>2</priority>
-    <properties>
-      <property name="reportLevel" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
-    <priority>1</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ShortMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
-    <priority>3</priority>
-  </rule>
-
-  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
-    <priority>3</priority>
-    <properties>
-      <property name="maxmethods" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
-    <priority>1</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
-    <!--<priority>1</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/BadComparison">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyInitializer">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/StringToString">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/CloseResource">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
-    <priority>3</priority>
-  </rule>
-</ruleset>
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
index 0d94f94..ac9cc7a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseContext.java
@@ -170,7 +170,7 @@ public abstract class BaseContext implements ObjectContext {
 	 */
 	protected void attachToChannel(DataChannel channel) {
 		if (channel == null) {
-			throw new IllegalArgumentException("Null channel");
+			throw new NullPointerException("Null channel");
 		}
 
 		setChannel(channel);
@@ -246,7 +246,7 @@ public abstract class BaseContext implements ObjectContext {
 	public <T extends Persistent> T localObject(T objectFromAnotherContext) {
 
 		if (objectFromAnotherContext == null) {
-			throw new IllegalArgumentException("Null object argument");
+			throw new NullPointerException("Null object argument");
 		}
 
 		ObjectId id = objectFromAnotherContext.getObjectId();
@@ -553,7 +553,7 @@ public abstract class BaseContext implements ObjectContext {
 
 		// don't allow null collections as a matter of coding discipline
 		if (objects == null) {
-			throw new IllegalArgumentException("Null collection of objects to invalidate");
+			throw new NullPointerException("Null collection of objects to invalidate");
 		}
 
 		if (!objects.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
index 5857edb..a12b1bb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/BaseDataObject.java
@@ -248,7 +248,7 @@ public abstract class BaseDataObject extends PersistentObject implements DataObj
     @Override
     public void addToManyTarget(String relName, DataObject value, boolean setReverse) {
         if (value == null) {
-            throw new IllegalArgumentException("Attempt to add null target DataObject.");
+            throw new NullPointerException("Attempt to add null target DataObject.");
         }
 
         willConnect(relName, value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
index 99ba355..27460d2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataContext.java
@@ -463,7 +463,7 @@ public class DataContext extends BaseContext {
     @Override
     public <T> T newObject(Class<T> persistentClass) {
         if (persistentClass == null) {
-            throw new IllegalArgumentException("Null 'persistentClass'");
+            throw new NullPointerException("Null 'persistentClass'");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(persistentClass);
@@ -527,7 +527,7 @@ public class DataContext extends BaseContext {
     @Override
     public void registerNewObject(Object object) {
         if (object == null) {
-            throw new IllegalArgumentException("Can't register null object.");
+            throw new NullPointerException("Can't register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity((Persistent) object);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
index 6ec5e43..7715c12 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainLegacyQueryAction.java
@@ -114,7 +114,7 @@ class DataDomainLegacyQueryAction implements QueryRouter, OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new IllegalArgumentException("Null DataMap, can't determine DataNode.");
+            throw new NullPointerException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
index b005b90..a87de83 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainQueryAction.java
@@ -536,7 +536,7 @@ class DataDomainQueryAction implements QueryRouter, OperationObserver {
     @Override
     public QueryEngine engineForDataMap(DataMap map) {
         if (map == null) {
-            throw new IllegalArgumentException("Null DataMap, can't determine DataNode.");
+            throw new NullPointerException("Null DataMap, can't determine DataNode.");
         }
 
         QueryEngine node = domain.lookupDataNode(map);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
index c5d98e6..7c25ab5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainSyncBucket.java
@@ -82,7 +82,7 @@ abstract class DataDomainSyncBucket {
     void checkReadOnly(ObjEntity entity) throws CayenneRuntimeException {
 
         if (entity == null) {
-            throw new IllegalArgumentException("Entity must not be null.");
+            throw new NullPointerException("Entity must not be null.");
         }
 
         if (entity.isReadOnly()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
index 5393980..e6e5dab 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/DistinctResultIterator.java
@@ -59,11 +59,11 @@ public class DistinctResultIterator<T> implements ResultIterator<T> {
      */
     public DistinctResultIterator(ResultIterator<T> delegate, DbEntity defaultEntity, boolean compareFullRows) {
         if (delegate == null) {
-            throw new IllegalArgumentException("Null wrapped iterator.");
+            throw new NullPointerException("Null wrapped iterator.");
         }
 
         if (defaultEntity == null) {
-            throw new IllegalArgumentException("Null defaultEntity.");
+            throw new NullPointerException("Null defaultEntity.");
         }
 
         this.delegate = delegate;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
index da7d3e8..e2f03ce 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/LimitResultIterator.java
@@ -44,7 +44,7 @@ public class LimitResultIterator<T> implements ResultIterator<T> {
     public LimitResultIterator(ResultIterator<T> delegate, int offset, int fetchLimit) {
 
         if (delegate == null) {
-            throw new IllegalArgumentException("Null delegate iterator.");
+            throw new NullPointerException("Null delegate iterator.");
         }
         this.delegate = delegate;
         this.offset = offset;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
index 485b989..a28d647 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/ejbql/EJBQLTableId.java
@@ -62,7 +62,7 @@ class EJBQLTableId {
     EJBQLTableId(String entityId, String dbPath) {
 
         if (entityId == null) {
-            throw new IllegalArgumentException("Null entityId");
+            throw new NullPointerException("Null entityId");
         }
 
         this.entityId = entityId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
index e2b869e..8d3d31b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/ExtendedTypeMap.java
@@ -189,7 +189,7 @@ public class ExtendedTypeMap {
 	ExtendedType getExplictlyRegisteredType(String className) {
 
 		if (className == null) {
-			throw new IllegalArgumentException("Null className");
+			throw new NullPointerException("Null className");
 		}
 		return typeMap.get(className);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index 1fa1b9e..c7775a5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -369,11 +369,11 @@ public class AshwoodEntitySorter implements EntitySorter {
 				ComponentRecord rec2 = components.get(t2);
 
 				if(rec1 == null) {
-					throw new IllegalArgumentException("No record for DbEntity: " + t1);
+					throw new NullPointerException("No record for DbEntity: " + t1);
 				}
 
 				if(rec2 == null) {
-					throw new IllegalArgumentException("No record for DbEntity: " + t2);
+					throw new NullPointerException("No record for DbEntity: " + t2);
 				}
 
 				int index1 = rec1.index;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
index d399b86..5e6a53d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/DefaultConfigurationNameMapper.java
@@ -92,7 +92,7 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
 	protected String getDataChannelName(String name) {
 		if (name == null) {
-			throw new IllegalArgumentException("Null DataChannelDescriptor name");
+			throw new NullPointerException("Null DataChannelDescriptor name");
 		}
 
 		return CAYENNE_PREFIX + name + CAYENNE_SUFFIX;
@@ -100,7 +100,7 @@ public class DefaultConfigurationNameMapper implements ConfigurationNameMapper {
 
 	protected String getDataMapName(String name) {
 		if (name == null) {
-			throw new IllegalArgumentException("Null DataMap name");
+			throw new NullPointerException("Null DataMap name");
 		}
 
 		return name + DATA_MAP_SUFFIX;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
index 46ea16d..2287071 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/server/DefaultDbAdapterFactory.java
@@ -57,7 +57,7 @@ public class DefaultDbAdapterFactory implements DbAdapterFactory {
 
 	public DefaultDbAdapterFactory(@Inject(Constants.SERVER_ADAPTER_DETECTORS_LIST) List<DbAdapterDetector> detectors) {
 		if (detectors == null) {
-			throw new IllegalArgumentException("Null detectors list");
+			throw new NullPointerException("Null detectors list");
 		}
 
 		this.detectors = detectors;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
index 5a55447..1f3f6f1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/XMLDataChannelDescriptorLoader.java
@@ -117,7 +117,7 @@ public class XMLDataChannelDescriptorLoader implements DataChannelDescriptorLoad
 	public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
 
 		if (configurationResource == null) {
-			throw new IllegalArgumentException("Null configurationResource");
+			throw new NullPointerException("Null configurationResource");
 		}
 
 		URL configurationURL = configurationResource.getURL();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
index 33e8f9f..b5ccc5a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/datasource/DriverDataSource.java
@@ -58,7 +58,7 @@ public class DriverDataSource implements DataSource {
 	public DriverDataSource(Driver driver, String connectionUrl, String userName, String password) {
 
 		if (connectionUrl == null) {
-			throw new IllegalArgumentException("Null 'connectionUrl'");
+			throw new NullPointerException("Null 'connectionUrl'");
 		}
 
 		this.driver = driver;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
index 02a7ca5..ce2636f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/Expression.java
@@ -524,7 +524,7 @@ public abstract class Expression implements Serializable, XMLSerializable {
 	 */
 	public void traverse(TraversalHandler visitor) {
 		if (visitor == null) {
-			throw new IllegalArgumentException("Null Visitor.");
+			throw new NullPointerException("Null Visitor.");
 		}
 
 		traverse(null, visitor);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
index 7a27469..ec0b2ce 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
@@ -289,7 +289,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Collection<?> values) {
 
 		if (values == null) {
-			throw new IllegalArgumentException("Null values collection");
+			throw new NullPointerException("Null values collection");
 		}
 
 		if (values.size() == 0) {
@@ -305,7 +305,7 @@ public class ExpressionFactory {
 	public static Expression matchAllExp(String path, Object... values) {
 
 		if (values == null) {
-			throw new IllegalArgumentException("Null values collection");
+			throw new NullPointerException("Null values collection");
 		}
 
 		if (values.length == 0) {
@@ -1325,7 +1325,7 @@ public class ExpressionFactory {
 	private static Expression fromString(String expressionString) {
 
 		if (expressionString == null) {
-			throw new IllegalArgumentException("Null expression string.");
+			throw new NullPointerException("Null expression string.");
 		}
 
 		// optimizing parser buffers per CAY-1667...

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
index 54ee014..4777fd3 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/graph/ChildDiffLoader.java
@@ -94,7 +94,7 @@ public class ChildDiffLoader implements GraphChangeHandler {
 		try {
 			ObjectId id = (ObjectId) nodeId;
 			if (id.getEntityName() == null) {
-				throw new IllegalArgumentException("Null entity name in id " + id);
+				throw new NullPointerException("Null entity name in id " + id);
 			}
 
 			ObjEntity entity = context.getEntityResolver().getObjEntity(id.getEntityName());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
index 64f5aff..f52f5b5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DataMap.java
@@ -455,11 +455,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addQueryDescriptor(QueryDescriptor queryDescriptor) {
 		if (queryDescriptor == null) {
-			throw new IllegalArgumentException("Can't add null query.");
+			throw new NullPointerException("Can't add null query.");
 		}
 
 		if (queryDescriptor.getName() == null) {
-			throw new IllegalArgumentException("Query name can't be null.");
+			throw new NullPointerException("Query name can't be null.");
 		}
 
 		// TODO: change method signature to return replaced procedure and make
@@ -553,11 +553,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addEmbeddable(Embeddable embeddable) {
 		if (embeddable == null) {
-			throw new IllegalArgumentException("Null embeddable");
+			throw new NullPointerException("Null embeddable");
 		}
 
 		if (embeddable.getClassName() == null) {
-			throw new IllegalArgumentException("Attempt to add Embeddable with no class name.");
+			throw new NullPointerException("Attempt to add Embeddable with no class name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -583,11 +583,11 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addResult(SQLResult result) {
 		if (result == null) {
-			throw new IllegalArgumentException("Null result");
+			throw new NullPointerException("Null result");
 		}
 
 		if (result.getName() == null) {
-			throw new IllegalArgumentException("Attempt to add resultSetMapping with no name.");
+			throw new NullPointerException("Attempt to add resultSetMapping with no name.");
 		}
 
 		Object existing = results.get(result.getName());
@@ -607,7 +607,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addObjEntity(ObjEntity entity) {
 		if (entity.getName() == null) {
-			throw new IllegalArgumentException("Attempt to add ObjEntity with no name.");
+			throw new NullPointerException("Attempt to add ObjEntity with no name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -631,7 +631,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addDbEntity(DbEntity entity) {
 		if (entity.getName() == null) {
-			throw new IllegalArgumentException("Attempt to add DbEntity with no name.");
+			throw new NullPointerException("Attempt to add DbEntity with no name.");
 		}
 
 		// TODO: change method signature to return replaced entity and make sure
@@ -922,7 +922,7 @@ public class DataMap implements Serializable, ConfigurationNode, XMLSerializable
 	 */
 	public void addProcedure(Procedure procedure) {
 		if (procedure.getName() == null) {
-			throw new IllegalArgumentException("Attempt to add procedure with no name.");
+			throw new NullPointerException("Attempt to add procedure with no name.");
 		}
 
 		// TODO: change method signature to return replaced procedure and make

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
index d16fbae..ca9db48 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ColumnSelect.java
@@ -462,7 +462,7 @@ public class ColumnSelect<T> extends FluentSelect<T> {
     @SuppressWarnings("unchecked")
     public ColumnSelect<Object[]> columns(Collection<Property<?>> properties) {
         if (properties == null){
-            throw new IllegalArgumentException("properties is null");
+            throw new NullPointerException("properties is null");
         }
         if (properties.isEmpty()) {
             throw new IllegalArgumentException("properties must contain at least one element");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
index 7c430eb..b58d11c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/DeleteBatchQuery.java
@@ -54,7 +54,7 @@ public class DeleteBatchQuery extends BatchQuery {
         super(dbEntity, qualifierAttributes, batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new IllegalArgumentException("Null 'nullQualifierNames'");
+            throw new NullPointerException("Null 'nullQualifierNames'");
         }
 
         this.nullQualifierNames = nullQualifierNames;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
index ddbe32f..96968c5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/ObjectIdQuery.java
@@ -69,7 +69,7 @@ public class ObjectIdQuery extends IndirectQuery {
      */
     public ObjectIdQuery(ObjectId objectId, boolean fetchingDataRows, int cachePolicy) {
         if (objectId == null) {
-            throw new IllegalArgumentException("Null objectID");
+            throw new NullPointerException("Null objectID");
         }
 
         this.objectId = objectId;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
index f398d4c..2f72e4e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/PrefetchTreeNode.java
@@ -306,7 +306,7 @@ public class PrefetchTreeNode implements Serializable, XMLSerializable {
 	 */
 	public void merge(PrefetchTreeNode node) {
 		if (node == null) {
-			throw new IllegalArgumentException("Null node");
+			throw new NullPointerException("Null node");
 		}
 
 		PrefetchTreeNode start = node.getName() != null ? addPath(node.getName()) : this;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
index 5c4ec62..66c947d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/SelectQueryMetadata.java
@@ -194,7 +194,7 @@ class SelectQueryMetadata extends BaseQueryMetadata {
 	 */
 	public void addPathSplitAliases(String path, String... aliases) {
 		if (aliases == null) {
-			throw new IllegalArgumentException("Null aliases");
+			throw new NullPointerException("Null aliases");
 		}
 
 		if (aliases.length == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
index 3d9e8e9..8b44d86 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/UpdateBatchQuery.java
@@ -69,7 +69,7 @@ public class UpdateBatchQuery extends BatchQuery {
         super(dbEntity, toDbAttributes(qualifierAttributes, updatedAttributes), batchCapacity);
 
         if (nullQualifierNames == null) {
-            throw new IllegalArgumentException("Null 'nullQualifierNames'");
+            throw new NullPointerException("Null 'nullQualifierNames'");
         }
 
         this.updatedAttributes = updatedAttributes;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
index e296d1c..f2c9879 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/BaseToManyProperty.java
@@ -62,7 +62,7 @@ public abstract class BaseToManyProperty extends BaseArcProperty implements
 
     public void addTarget(Object source, Object target, boolean setReverse) {
         if (target == null) {
-            throw new IllegalArgumentException("Attempt to add null object.");
+            throw new NullPointerException("Attempt to add null object.");
         }
 
         // TODO, Andrus, 2/9/2006 - CayenneDataObject differences:

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
index 1700f72..73992a6 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ClassDescriptorMap.java
@@ -91,7 +91,7 @@ public class ClassDescriptorMap {
 
     public ClassDescriptor getDescriptor(String entityName) {
         if (entityName == null) {
-            throw new IllegalArgumentException("Null 'entityName'");
+            throw new NullPointerException("Null 'entityName'");
         }
 
         ClassDescriptor cached = descriptors.get(entityName);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
index 31773bb..3b01d5e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/LifecycleCallbackRegistry.java
@@ -167,7 +167,7 @@ public class LifecycleCallbackRegistry {
 	 */
 	public void addListener(Object listener) {
 		if (listener == null) {
-			throw new IllegalArgumentException("Null listener");
+			throw new NullPointerException("Null listener");
 		}
 
 		Class<?> listenerType = listener.getClass();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
index d1497aa..548ea90 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PersistentDescriptor.java
@@ -309,7 +309,7 @@ public class PersistentDescriptor implements ClassDescriptor {
 	 */
 	public Object createObject() {
 		if (objectClass == null) {
-			throw new IllegalArgumentException("Null objectClass. Descriptor wasn't initialized properly.");
+			throw new NullPointerException("Null objectClass. Descriptor wasn't initialized properly.");
 		}
 
 		try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
index 21f75e9..c9812cf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/PropertyAccessor.java
@@ -29,7 +29,7 @@ public class PropertyAccessor implements Accessor {
 
     public PropertyAccessor(PropertyDescriptor property) {
         if (property == null) {
-            throw new IllegalArgumentException("Null property");
+            throw new NullPointerException("Null property");
         }
         this.property = property;
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
index 49887d1..2a91499 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/valueholder/ValueHolderMapProperty.java
@@ -46,7 +46,7 @@ class ValueHolderMapProperty extends ValueHolderToManyProperty implements
     public void addTarget(Object source, Object target, boolean setReverse) {
 
         if (target == null) {
-            throw new IllegalArgumentException("Attempt to add null object.");
+            throw new NullPointerException("Attempt to add null object.");
         }
 
         // Now do the rest of the normal handling (regardless of whether it was

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
index 9867a95..8bd3128 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/resource/FilesystemResourceLocator.java
@@ -66,7 +66,7 @@ public class FilesystemResourceLocator implements ResourceLocator {
      */
     public FilesystemResourceLocator(Collection<File> roots) {
         if (roots == null) {
-            throw new IllegalArgumentException("Null roots");
+            throw new NullPointerException("Null roots");
         }
 
         init(roots.toArray(new File[roots.size()]));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
index d3035f9..99a91a4 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/ReferenceMap.java
@@ -146,7 +146,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
     @Override
     public V put(K key, V value) {
         if(value == null) {
-            throw new IllegalArgumentException("ReferenceMap can't contain null values");
+            throw new NullPointerException("ReferenceMap can't contain null values");
         }
         checkReferenceQueue();
         R refValue = newReference(value);
@@ -172,7 +172,7 @@ abstract class ReferenceMap<K, V, R extends Reference<V>> extends AbstractMap<K,
         checkReferenceQueue();
         for(Map.Entry<? extends K, ? extends V> entry : m.entrySet()) {
             if(entry.getValue() == null) {
-                throw new IllegalArgumentException("ReferenceMap can't contain null values");
+                throw new NullPointerException("ReferenceMap can't contain null values");
             }
             R value = newReference(entry.getValue());
             map.put(entry.getKey(), value);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
index c07c4a4..2292caf 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RegexUtil.java
@@ -75,7 +75,7 @@ class RegexUtil {
      */
     static String sqlPatternToRegex(String pattern) {
         if (pattern == null) {
-            throw new IllegalArgumentException("Null pattern.");
+            throw new NullPointerException("Null pattern.");
         }
 
         if (pattern.length() == 0) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
index 6654d4c..067e7cb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/RelationshipFault.java
@@ -46,11 +46,11 @@ public abstract class RelationshipFault {
 
     public RelationshipFault(Persistent relationshipOwner, String relationshipName) {
         if (relationshipOwner == null) {
-            throw new IllegalArgumentException("'relationshipOwner' can't be null.");
+            throw new NullPointerException("'relationshipOwner' can't be null.");
         }
 
         if (relationshipName == null) {
-            throw new IllegalArgumentException("'relationshipName' can't be null.");
+            throw new NullPointerException("'relationshipName' can't be null.");
         }
 
         this.relationshipOwner = relationshipOwner;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
index a76b35c..91f15f2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/util/concurrentlinkedhashmap/ConcurrentLinkedHashMap.java
@@ -258,7 +258,7 @@ public class ConcurrentLinkedHashMap<K, V> extends AbstractMap<K, V> implements
     /** Asserts that the object is not null. */
     static void checkNotNull(Object o) {
         if (o == null) {
-            throw new IllegalArgumentException();
+            throw new NullPointerException();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
index 47e4784..6969b16 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/validation/BeanValidationFailure.java
@@ -80,7 +80,7 @@ public class BeanValidationFailure extends SimpleValidationFailure {
 
     public static ValidationFailure validateMandatory(Object bean, String attribute) {
         if (bean == null) {
-            throw new IllegalArgumentException("Null bean.");
+            throw new NullPointerException("Null bean.");
         }
 
         try {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/0b01512b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
index 4aeced3..ace6579 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/util/WeakValueMapTest.java
@@ -205,13 +205,13 @@ public class WeakValueMapTest {
         }
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testPutNullValue() {
         Map<Object, Object> map = new WeakValueMap<>();
         map.put("1", null);
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test(expected = NullPointerException.class)
     public void testPutAllNullValue() {
 
         Map<Object, Object> values = new HashMap<>();


[05/11] cayenne git commit: Code check and code-coverage and code-quality options

Posted by nt...@apache.org.
Code check and code-coverage and code-quality options


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/ea745fd6
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/ea745fd6
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/ea745fd6

Branch: refs/heads/master
Commit: ea745fd6d261454b6074c7b42a56fe4d62ab8c85
Parents: c47c03d
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Jan 26 12:14:56 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Jan 26 12:14:56 2018 +0300

----------------------------------------------------------------------
 .../src/main/resources/cayenne-checkstyle.xml   |  82 ------
 .../src/main/resources/cayenne-pmd.xml          | 295 -------------------
 build-tools/pom.xml                             |  32 --
 cayenne-checkstyle.xml                          |  82 ++++++
 .../main/java/org/apache/cayenne/di/Key.java    |   2 +-
 .../di/spi/DefaultAdhocObjectFactory.java       |   6 +-
 .../apache/cayenne/di/spi/DefaultInjector.java  |   4 +-
 .../cayenne/lifecycle/id/EntityIdCoder.java     |   2 +-
 .../apache/cayenne/lifecycle/id/IdCoder.java    |   2 +-
 .../cayenne/lifecycle/id/StringIdQuery.java     |   4 +-
 .../configuration/osgi/OsgiModuleBuilder.java   |   2 +-
 cayenne-pmd.xml                                 | 295 +++++++++++++++++++
 ...ompatibilityDataChannelDescriptorLoader.java |   2 +-
 .../cayenne/project/FileProjectSaver.java       |   2 +-
 .../java/org/apache/cayenne/CayenneContext.java |   4 +-
 pom.xml                                         |   9 +-
 16 files changed, 400 insertions(+), 425 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
deleted file mode 100644
index 90587cb..0000000
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-checkstyle.xml
+++ /dev/null
@@ -1,82 +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.
-  -->
-<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
-        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
-<module name="Checker">
-    <module name="SuppressionCommentFilter"/>
-    <module name="TreeWalker">
-        <module name="FileContentsHolder"/>
-        <module name="CyclomaticComplexity">
-            <property name="severity" value="error"/>
-            <property name="max" value="15"/>
-        </module>
-        <module name="MethodLength">
-            <property name="severity" value="warning"/>
-            <property name="max" value="200"/>
-        </module>
-        <module name="IllegalCatch">
-            <property name="severity" value="warning"/>
-        </module>
-
-        <module name="FallThrough">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EqualsHashCode">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingSwitchDefault">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ExecutableStatementCount">
-            <property name="severity" value="error"/>
-        </module>
-        <module name="CovariantEquals">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ConstantName">
-            <property name="severity" value="info"/>
-            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
-        </module>
-        <module name="IllegalThrows">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="ArrayTypeStyle">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="EqualsAvoidNull">
-            <property name="severity" value="warning"/>
-            <property name="ignoreEqualsIgnoreCase" value="false"/>
-        </module>
-        <module name="AvoidNestedBlocks">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="MissingDeprecated">
-            <property name="severity" value="info"/>
-        </module>
-        <module name="DefaultComesLast">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="BooleanExpressionComplexity">
-            <property name="severity" value="warning"/>
-        </module>
-        <module name="EmptyBlock">
-            <property name="severity" value="warning"/>
-        </module>
-    </module>
-</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml b/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
deleted file mode 100644
index de950e7..0000000
--- a/build-tools/cayenne-checkers/src/main/resources/cayenne-pmd.xml
+++ /dev/null
@@ -1,295 +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>
-
-  <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
-    <priority>3</priority>
-  </rule>
-
-  <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
-    <priority>2</priority>
-    <properties>
-      <property name="reportLevel" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
-    <priority>1</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/ShortMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
-    <priority>3</priority>
-  </rule>
-
-  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
-    <priority>3</priority>
-    <properties>
-      <property name="maxmethods" value="30" />
-    </properties>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
-    <priority>1</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
-    <!--<priority>1</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
-    <priority>1</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/BadComparison">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyInitializer">
-    <priority>3</priority>
-  </rule>
-  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
-    <!--<priority>3</priority>-->
-  <!--</rule>-->
-  <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/StringToString">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/CloseResource">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
-    <priority>3</priority>
-  </rule>
-  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
-    <priority>3</priority>
-  </rule>
-</ruleset>
-

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/build-tools/pom.xml
----------------------------------------------------------------------
diff --git a/build-tools/pom.xml b/build-tools/pom.xml
index ddba56e..f0dfa0e 100644
--- a/build-tools/pom.xml
+++ b/build-tools/pom.xml
@@ -57,37 +57,5 @@
 			</plugin>
 		</plugins>
 	</build>
-	<profiles>
-		<profile>
-			<id>code-quality</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-checkstyle-plugin</artifactId>
-						<executions>
-							<execution>
-								<configuration>
-									<skip>true</skip>
-								</configuration>
 
-							</execution>
-						</executions>
-					</plugin>
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-pmd-plugin</artifactId>
-						<executions>
-							<execution>
-								<configuration>
-									<skip>true</skip>
-								</configuration>
-
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
 </project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-checkstyle.xml
----------------------------------------------------------------------
diff --git a/cayenne-checkstyle.xml b/cayenne-checkstyle.xml
new file mode 100644
index 0000000..90587cb
--- /dev/null
+++ b/cayenne-checkstyle.xml
@@ -0,0 +1,82 @@
+<?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.
+  -->
+<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+        "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"><!-- Generated by Sonar -->
+<module name="Checker">
+    <module name="SuppressionCommentFilter"/>
+    <module name="TreeWalker">
+        <module name="FileContentsHolder"/>
+        <module name="CyclomaticComplexity">
+            <property name="severity" value="error"/>
+            <property name="max" value="15"/>
+        </module>
+        <module name="MethodLength">
+            <property name="severity" value="warning"/>
+            <property name="max" value="200"/>
+        </module>
+        <module name="IllegalCatch">
+            <property name="severity" value="warning"/>
+        </module>
+
+        <module name="FallThrough">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EqualsHashCode">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingSwitchDefault">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ExecutableStatementCount">
+            <property name="severity" value="error"/>
+        </module>
+        <module name="CovariantEquals">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ConstantName">
+            <property name="severity" value="info"/>
+            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger|log)$"/>
+        </module>
+        <module name="IllegalThrows">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="ArrayTypeStyle">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="EqualsAvoidNull">
+            <property name="severity" value="warning"/>
+            <property name="ignoreEqualsIgnoreCase" value="false"/>
+        </module>
+        <module name="AvoidNestedBlocks">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="MissingDeprecated">
+            <property name="severity" value="info"/>
+        </module>
+        <module name="DefaultComesLast">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="BooleanExpressionComplexity">
+            <property name="severity" value="warning"/>
+        </module>
+        <module name="EmptyBlock">
+            <property name="severity" value="warning"/>
+        </module>
+    </module>
+</module>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java b/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
index 47c9f1d..d3c35df 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/Key.java
@@ -81,7 +81,7 @@ public class Key<T> {
 
     protected Key(TypeLiteral<T> type, String bindingName) {
         if (type == null) {
-            throw new IllegalArgumentException("Null key type");
+            throw new NullPointerException("Null key type");
         }
 
         this.typeLiteral = type;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
index 241b6b6..ab2728d 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultAdhocObjectFactory.java
@@ -50,11 +50,11 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory {
     public <T> T newInstance(Class<? super T> superType, String className) {
 
         if (superType == null) {
-            throw new IllegalArgumentException("Null superType");
+            throw new NullPointerException("Null superType");
         }
 
         if (className == null) {
-            throw new IllegalArgumentException("Null className");
+            throw new NullPointerException("Null className");
         }
 
         Class<T> type = (Class<T>) getJavaClass(className);
@@ -82,7 +82,7 @@ public class DefaultAdhocObjectFactory implements AdhocObjectFactory {
         // is there a better way to get array class from string name?
 
         if (className == null) {
-            throw new IllegalArgumentException("Null class name");
+            throw new NullPointerException("Null class name");
         }
 
         ClassLoader classLoader = classLoaderManager.getClassLoader(className.replace('.', '/'));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
----------------------------------------------------------------------
diff --git a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
index e9dfdb4..a998cf4 100644
--- a/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
+++ b/cayenne-di/src/main/java/org/apache/cayenne/di/spi/DefaultInjector.java
@@ -80,7 +80,7 @@ public class DefaultInjector implements Injector {
 	<T> Binding<T> getBinding(Key<T> key) throws DIRuntimeException {
 
         if (key == null) {
-            throw new IllegalArgumentException("Null key");
+            throw new NullPointerException("Null key");
         }
 
         // may return null - this is intentionally allowed in this non-public method
@@ -148,7 +148,7 @@ public class DefaultInjector implements Injector {
     public <T> Provider<T> getProvider(Key<T> key) throws DIRuntimeException {
 
         if (key == null) {
-            throw new IllegalArgumentException("Null key");
+            throw new NullPointerException("Null key");
         }
 
         @SuppressWarnings("unchecked")

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
index d0a6227..092aa27 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/EntityIdCoder.java
@@ -216,7 +216,7 @@ public class EntityIdCoder {
     private Converter create(Class<?> type) {
 
         if (type == null) {
-            throw new IllegalArgumentException("Null type");
+            throw new NullPointerException("Null type");
         }
 
         if (Long.class.isAssignableFrom(type)) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
index bad72f6..696a2b4 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/IdCoder.java
@@ -63,7 +63,7 @@ public class IdCoder {
     public String getStringId(Persistent object) {
 
         if (object == null) {
-            throw new IllegalArgumentException("Null object");
+            throw new NullPointerException("Null object");
         }
 
         ObjectId id = object.getObjectId();

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
----------------------------------------------------------------------
diff --git a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
index d319f09..89646d2 100644
--- a/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
+++ b/cayenne-lifecycle/src/main/java/org/apache/cayenne/lifecycle/id/StringIdQuery.java
@@ -62,7 +62,7 @@ public class StringIdQuery implements Query {
     private static Collection<String> toCollection(String... stringIds) {
 
         if (stringIds == null) {
-            throw new IllegalArgumentException("Null stringIds");
+            throw new NullPointerException("Null stringIds");
         }
 
         return Arrays.asList(stringIds);
@@ -88,7 +88,7 @@ public class StringIdQuery implements Query {
 
     public void addStringIds(String... ids) {
         if (ids == null) {
-            throw new IllegalArgumentException("Null ids");
+            throw new NullPointerException("Null ids");
         }
 
         boolean changed = false;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java b/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
index 6214452..481f220 100644
--- a/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
+++ b/cayenne-osgi/src/main/java/org/apache/cayenne/configuration/osgi/OsgiModuleBuilder.java
@@ -34,7 +34,7 @@ public class OsgiModuleBuilder {
     public static OsgiModuleBuilder forProject(Class<?> typeFromProjectBundle) {
 
         if (typeFromProjectBundle == null) {
-            throw new IllegalArgumentException("Null 'typeFromProjectBundle'");
+            throw new NullPointerException("Null 'typeFromProjectBundle'");
         }
 
         return new OsgiModuleBuilder(typeFromProjectBundle);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-pmd.xml
----------------------------------------------------------------------
diff --git a/cayenne-pmd.xml b/cayenne-pmd.xml
new file mode 100644
index 0000000..de950e7
--- /dev/null
+++ b/cayenne-pmd.xml
@@ -0,0 +1,295 @@
+<?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>
+
+  <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops">
+    <priority>3</priority>
+  </rule>
+
+  <rule ref="rulesets/java/basic.xml/BooleanInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity">
+    <priority>2</priority>
+    <properties>
+      <property name="reportLevel" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock">
+    <priority>1</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/codesize.xml/ExcessiveClassLength">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/AvoidEnumAsIdentifier">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/BrokenNullCheck">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ClassNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodNamingConventions">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/ShortMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause">
+    <priority>3</priority>
+  </rule>
+
+  <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/codesize.xml/TooManyMethods">
+    <priority>3</priority>
+    <properties>
+      <property name="maxmethods" value="30" />
+    </properties>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ByteInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/LongInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/migrating.xml/ShortInstantiation">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyWhileStmt">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/EqualsNull">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/MisplacedNullCheck">
+    <priority>1</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/j2ee.xml/UseProperClassLoader">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/PreserveStackTrace">-->
+    <!--<priority>1</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/logging-java.xml/SystemPrintln">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/controversial.xml/AssignmentInOperand">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/AddEmptyString">
+    <priority>1</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/ProperCloneImplementation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidThreadGroup">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidCatchingGenericException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidLosingExceptionInformation">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/BadComparison">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyInitializer">
+    <priority>3</priority>
+  </rule>
+  <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals">-->
+    <!--<priority>3</priority>-->
+  <!--</rule>-->
+  <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/EmptyMethodInAbstractClassShouldBeAbstract">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyTryBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/StringToString">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/CloseResource">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptySwitchStatements">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strings.xml/InefficientEmptyStringCheck">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock">
+    <priority>3</priority>
+  </rule>
+  <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException">
+    <priority>3</priority>
+  </rule>
+</ruleset>
+

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
index bbe7f1b..85dd6d5 100644
--- a/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
+++ b/cayenne-project-compatibility/src/main/java/org/apache/cayenne/configuration/xml/CompatibilityDataChannelDescriptorLoader.java
@@ -63,7 +63,7 @@ public class CompatibilityDataChannelDescriptorLoader extends XMLDataChannelDesc
     @Override
     public ConfigurationTree<DataChannelDescriptor> load(Resource configurationResource) throws ConfigurationException {
         if (configurationResource == null) {
-            throw new IllegalArgumentException("Null configurationResource");
+            throw new NullPointerException("Null configurationResource");
         }
 
         if(!(upgradeServiceProvider.get() instanceof CompatibilityUpgradeService)) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index e45ca89..0d6af44 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -88,7 +88,7 @@ public class FileProjectSaver implements ProjectSaver {
 	@Override
 	public void saveAs(Project project, Resource baseDirectory) {
 		if (baseDirectory == null) {
-			throw new IllegalArgumentException("Null 'baseDirectory'");
+			throw new NullPointerException("Null 'baseDirectory'");
 		}
 		save(project, baseDirectory, false);
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
index c8b3620..3f111db 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContext.java
@@ -240,7 +240,7 @@ public class CayenneContext extends BaseContext {
     @Override
     public <T> T newObject(Class<T> persistentClass) {
         if (persistentClass == null) {
-            throw new IllegalArgumentException("Persistent class can't be null.");
+            throw new NullPointerException("Persistent class can't be null.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(persistentClass);
@@ -262,7 +262,7 @@ public class CayenneContext extends BaseContext {
     @Override
     public void registerNewObject(Object object) {
         if (object == null) {
-            throw new IllegalArgumentException("An attempt to register null object.");
+            throw new NullPointerException("An attempt to register null object.");
         }
 
         ObjEntity entity = getEntityResolver().getObjEntity(object.getClass());

http://git-wip-us.apache.org/repos/asf/cayenne/blob/ea745fd6/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index d53e068..453dda8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,7 +77,8 @@
 		<module>tutorials</module>
 		<module>docs</module>
 		<module>assembly</module>
-    </modules>
+		<module>cayenne-module-parent</module>
+	</modules>
 	<issueManagement>
 		<system>jira</system>
 		<url>https://issues.apache.org/jira/browse/CAY</url>
@@ -741,6 +742,10 @@
 					<version>3.8</version>
 				</plugin>
 				<plugin>
+					<artifactId>maven-checkstyle-plugin</artifactId>
+					<version>3.0.0</version>
+				</plugin>
+				<plugin>
 					<artifactId>maven-enforcer-plugin</artifactId>
 					<version>1.4.1</version>
 				</plugin>
@@ -959,6 +964,7 @@
             <id>code-quality</id>
 
             <build>
+				<pluginManagement>
                     <plugins>
                         <plugin>
                             <groupId>org.apache.maven.plugins</groupId>
@@ -1037,6 +1043,7 @@
                             <version>2.0</version>
                         </plugin>
                     </plugins>
+				</pluginManagement>
             </build>
 
             <reporting>


[10/11] cayenne git commit: Merge remote-tracking branch 'remotes/parent/pr/261' into asf-master

Posted by nt...@apache.org.
Merge remote-tracking branch 'remotes/parent/pr/261' into asf-master


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/d1c214f4
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/d1c214f4
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/d1c214f4

Branch: refs/heads/master
Commit: d1c214f4c3c00738648f262f951515605722b65a
Parents: 96914de 50bed16
Author: Nikita Timofeev <st...@gmail.com>
Authored: Fri Feb 2 15:36:48 2018 +0300
Committer: Nikita Timofeev <st...@gmail.com>
Committed: Fri Feb 2 15:36:48 2018 +0300

----------------------------------------------------------------------
 build-tools/cayenne-checkers/pom.xml            |   9 +-
 .../src/main/resources/cayenne-checkstyle.xml   |  16 +-
 .../src/main/resources/cayenne-pmd.xml          | 138 ++----
 .../main/resources/cayenne-tests-checkstyle.xml |   3 -
 .../src/main/resources/cayenne-tests-pmd.xml    |  48 +--
 build-tools/cayenne-coverage/pom.xml            | 125 ------
 build-tools/pom.xml                             |   1 +
 cayenne-cache-invalidation/pom.xml              |   1 -
 .../CacheInvalidationModuleProvider.java        |   4 +-
 .../org/apache/cayenne/gen/StringUtils.java     |   9 +-
 cayenne-client-jetty/pom.xml                    |  24 --
 .../rop/JettyHttpClientConnectionProvider.java  |   2 +-
 .../cayenne/rop/http/JettyHttpROPConnector.java |   5 +-
 cayenne-client/pom.xml                          |  22 -
 .../remote/hessian/DataRowDeserializer.java     |   2 +-
 .../java/org/apache/cayenne/rop/ROPUtil.java    |  12 +-
 .../cayenne/rop/http/HttpROPConnector.java      |   2 +-
 cayenne-commitlog/pom.xml                       |   1 -
 .../CommitLogServerModuleProvider.java          |   4 +-
 cayenne-crypto/pom.xml                          |  25 --
 cayenne-dbcp2/pom.xml                           |   8 -
 .../merge/factory/IngresMergerTokenFactory.java |   3 +-
 .../reverse/dbimport/DefaultDbImportAction.java |   4 +-
 .../reverse/dbimport/FilterContainer.java       |   5 +-
 .../dbsync/reverse/dbimport/PatternParam.java   |   4 +-
 cayenne-di/pom.xml                              |  24 --
 .../java/org/apache/cayenne/di/TypeLiteral.java |  10 +-
 .../java/org/apache/cayenne/di/spi/DIGraph.java |   3 +-
 .../jcache/JCacheServerModuleProvider.java      |   4 +-
 cayenne-joda/pom.xml                            |   9 -
 cayenne-lifecycle/pom.xml                       |  23 -
 cayenne-project-compatibility/pom.xml           |   1 -
 ...ompatibilityDataChannelDescriptorLoader.java |   2 +-
 .../compatibility/DefaultDocumentProvider.java  |   2 +-
 cayenne-project/pom.xml                         |  24 --
 .../project/upgrade/DefaultUpgradeService.java  |  12 +-
 .../upgrade/handlers/UpgradeHandler_V9.java     |   6 +-
 cayenne-protostuff/pom.xml                      |  25 --
 cayenne-rop-server/pom.xml                      |   1 -
 .../java/org/apache/cayenne/CayenneContext.java |  11 +-
 .../cayenne/CayenneContextChildDiffLoader.java  |   5 +-
 .../cayenne/CayenneContextMergeHandler.java     |  17 +-
 .../remote/RemoteIncrementalFaultList.java      |   9 +-
 .../apache/cayenne/remote/RemoteSession.java    |  11 +-
 cayenne-server/pom.xml                          |   7 +-
 .../apache/cayenne/ObjectContextChangeLog.java  |   3 +-
 .../apache/cayenne/ObjectContextStateLog.java   |   6 +-
 .../org/apache/cayenne/access/DataRowStore.java |   2 +-
 .../org/apache/cayenne/access/DbGenerator.java  |   2 +-
 .../cayenne/access/IncrementalFaultList.java    |   9 +-
 .../ejbql/EJBQLConditionTranslator.java         |   2 +-
 .../translator/select/QualifierTranslator.java  |  10 +-
 .../cayenne/access/types/CalendarType.java      |   9 +-
 .../cayenne/access/types/ExtendedEnumType.java  |   6 +-
 .../cayenne/ashwood/AshwoodEntitySorter.java    |  14 +-
 .../ashwood/graph/DepthFirstStampSearch.java    |   3 +-
 .../ashwood/graph/FilterArcIterator.java        |   6 +-
 .../cayenne/ashwood/graph/FilterIteration.java  |   6 +-
 .../ashwood/graph/IndegreeTopologicalSort.java  |   3 +-
 .../cayenne/ashwood/graph/MapDigraph.java       |  30 +-
 .../cayenne/ashwood/graph/StrongConnection.java |  16 +-
 .../DefaultDataChannelDescriptorMerger.java     |   2 +-
 .../configuration/Rot13PasswordEncoder.java     |   5 +-
 .../configuration/Rot47PasswordEncoder.java     |   3 +-
 .../server/DataDomainProvider.java              |   2 +-
 .../xml/DataChannelChildrenHandler.java         |   2 +-
 .../configuration/xml/DataChannelHandler.java   |   2 +-
 .../xml/DataSourceChildrenHandler.java          |   2 +-
 .../configuration/xml/DbEntityHandler.java      |   4 +-
 .../xml/DefaultHandlerFactory.java              |   2 +-
 .../configuration/xml/ObjEntityHandler.java     |   4 +-
 .../xml/QueryDescriptorHandler.java             |   4 +-
 .../xml/XMLDataChannelDescriptorLoader.java     |   2 +-
 .../org/apache/cayenne/conn/DataSourceInfo.java |  38 +-
 .../datasource/UnmanagedPoolingDataSource.java  |   2 +-
 .../apache/cayenne/dba/mysql/MySQLAdapter.java  |  13 +-
 .../apache/cayenne/exp/ExpressionFactory.java   |  11 +-
 .../apache/cayenne/exp/ExpressionParameter.java |   6 +
 .../java/org/apache/cayenne/exp/Property.java   |  16 +-
 .../log/FormattedSlf4jJdbcEventLogger.java      |   3 +-
 .../cayenne/log/Slf4jJdbcEventLogger.java       |   3 +-
 .../apache/cayenne/map/CallbackDescriptor.java  |   3 +-
 .../org/apache/cayenne/map/DbKeyGenerator.java  |   6 +-
 .../cayenne/map/PathComponentIterator.java      |   3 +-
 .../cayenne/map/QueryDescriptorLoader.java      |  11 +-
 .../java/org/apache/cayenne/query/Ordering.java |  20 +-
 .../cayenne/reflect/ConverterFactory.java       |  57 ++-
 .../reflect/PersistentDescriptorFactory.java    |   6 +-
 .../apache/cayenne/reflect/ToAnyConverter.java  |   8 +-
 .../main/java/org/apache/cayenne/util/Util.java |  12 +-
 cayenne-velocity/pom.xml                        |   1 -
 cayenne-web/pom.xml                             |   8 -
 pom.xml                                         | 424 +++++++++----------
 93 files changed, 591 insertions(+), 904 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/d1c214f4/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d1c214f4/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cayenne/blob/d1c214f4/pom.xml
----------------------------------------------------------------------


[09/11] cayenne git commit: Code-checkers

Posted by nt...@apache.org.
Code-checkers


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/50bed162
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/50bed162
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/50bed162

Branch: refs/heads/master
Commit: 50bed162eb59bd78f6d9fd65a3d50a898b7842be
Parents: 97664e9
Author: Arseni Bulatski <an...@gmail.com>
Authored: Fri Feb 2 11:34:46 2018 +0300
Committer: Arseni Bulatski <an...@gmail.com>
Committed: Fri Feb 2 11:53:13 2018 +0300

----------------------------------------------------------------------
 .../CacheInvalidationModuleProvider.java        |  1 -
 .../java/org/apache/cayenne/rop/ROPUtil.java    |  9 +++------
 .../CommitLogServerModuleProvider.java          |  1 -
 .../reverse/dbimport/DefaultDbImportAction.java |  2 +-
 .../reverse/dbimport/FilterContainer.java       |  2 +-
 .../dbsync/reverse/dbimport/PatternParam.java   |  2 +-
 .../jcache/JCacheServerModuleProvider.java      |  1 -
 .../project/upgrade/DefaultUpgradeService.java  |  6 +++---
 .../upgrade/handlers/UpgradeHandler_V9.java     |  2 +-
 .../cayenne/CayenneContextMergeHandler.java     |  3 +--
 .../apache/cayenne/remote/RemoteSession.java    |  4 ++--
 .../apache/cayenne/ObjectContextStateLog.java   |  4 ++--
 .../translator/select/QualifierTranslator.java  |  6 ++----
 .../cayenne/access/types/CalendarType.java      |  9 +++------
 .../cayenne/ashwood/AshwoodEntitySorter.java    |  3 +--
 .../cayenne/ashwood/graph/MapDigraph.java       |  9 +++------
 .../cayenne/ashwood/graph/StrongConnection.java |  6 ++----
 .../configuration/Rot13PasswordEncoder.java     |  3 +--
 .../configuration/xml/DbEntityHandler.java      |  2 +-
 .../configuration/xml/ObjEntityHandler.java     |  2 +-
 .../xml/QueryDescriptorHandler.java             |  2 +-
 .../org/apache/cayenne/conn/DataSourceInfo.java | 21 +++++++-------------
 .../apache/cayenne/dba/mysql/MySQLAdapter.java  |  3 +--
 .../apache/cayenne/exp/ExpressionFactory.java   |  3 +--
 .../cayenne/map/QueryDescriptorLoader.java      |  9 ++++-----
 .../java/org/apache/cayenne/query/Ordering.java | 12 ++++-------
 .../cayenne/reflect/ConverterFactory.java       |  3 +--
 27 files changed, 48 insertions(+), 82 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java b/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
index 3d3b34c..bcfd77e 100644
--- a/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
+++ b/cayenne-cache-invalidation/src/main/java/org/apache/cayenne/cache/invalidation/CacheInvalidationModuleProvider.java
@@ -41,7 +41,6 @@ public class CacheInvalidationModuleProvider implements CayenneServerModuleProvi
         return CacheInvalidationModule.class;
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
         return Collections.singletonList(ServerModule.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
----------------------------------------------------------------------
diff --git a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
index 44aa7b1..c95f46d 100644
--- a/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
+++ b/cayenne-client/src/main/java/org/apache/cayenne/rop/ROPUtil.java
@@ -137,14 +137,11 @@ public class ROPUtil {
         d &= 0x3f;
         if (d < 26) {
             return (char) (d + 'A');
-        }
-        else if (d < 52) {
+        } else if (d < 52) {
             return (char) (d + 'a' - 26);
-        }
-        else if (d < 62) {
+        } else if (d < 62) {
             return (char) (d + '0' - 52);
-        }
-        else if (d == 62) {
+        } else if (d == 62) {
             return '+';
         }
         else {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
index 4294c3e..6693e5a 100644
--- a/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
+++ b/cayenne-commitlog/src/main/java/org/apache/cayenne/commitlog/CommitLogServerModuleProvider.java
@@ -41,7 +41,6 @@ public class CommitLogServerModuleProvider implements CayenneServerModuleProvide
         return CommitLogModule.class;
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
         return Collections.singletonList(ServerModule.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
index 7446c5f..17c26ce 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/DefaultDbImportAction.java
@@ -196,7 +196,7 @@ public class DefaultDbImportAction implements DbImportAction {
 
     private boolean syncDataMapProperties(DataMap targetDataMap, DbImportConfiguration config) {
         String defaultPackage = config.getDefaultPackage();
-        if (defaultPackage == null || isBlank(defaultPackage.trim())) {
+        if (defaultPackage == null || isBlank(defaultPackage)) {
             return false;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
index a05f8dd..7090522 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/FilterContainer.java
@@ -156,7 +156,7 @@ public abstract class FilterContainer {
     }
 
     public void addText(String name) {
-        if (Util.isBlank(name.trim())) {
+        if (Util.isBlank(name)) {
             return;
         }
         setName(name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
----------------------------------------------------------------------
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
index f0ec3ed..bef2d5e 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbimport/PatternParam.java
@@ -59,7 +59,7 @@ public class PatternParam {
      * Used by Ant task
      */
     public void addText(String pattern) {
-        if (isBlank(pattern.trim())) {
+        if (isBlank(pattern)) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
index 6dcd227..0d1643a 100644
--- a/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
+++ b/cayenne-jcache/src/main/java/org/apache/cayenne/jcache/JCacheServerModuleProvider.java
@@ -41,7 +41,6 @@ public class JCacheServerModuleProvider implements CayenneServerModuleProvider {
         return JCacheModule.class;
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Collection<Class<? extends Module>> overrides() {
         return Collections.singletonList(ServerModule.class);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
index c4044a6..d00b7b5 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/DefaultUpgradeService.java
@@ -227,7 +227,7 @@ public class DefaultUpgradeService implements UpgradeService {
                 resources.add(mapResource);
             }
         } catch (Exception ex) {
-            logger.warn("Message: ", ex);
+            logger.warn("Can't get additional dataMap resources: ", ex);
         }
         return resources;
     }
@@ -240,7 +240,7 @@ public class DefaultUpgradeService implements UpgradeService {
             Transformer transformer = TransformerFactory.newInstance().newTransformer();
             transformer.transform(input, output);
         } catch (Exception ex) {
-            logger.warn("Message: ", ex);
+            logger.warn("Can't save the document: ", ex);
         }
     }
 
@@ -267,7 +267,7 @@ public class DefaultUpgradeService implements UpgradeService {
     }
 
     protected static double decodeVersion(String version) {
-        if (version == null || isBlank(version.trim())) {
+        if (version == null || isBlank(version)) {
             return 0;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
----------------------------------------------------------------------
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
index ac796ec..91850ea 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V9.java
@@ -75,7 +75,7 @@ public class UpgradeHandler_V9 implements UpgradeHandler {
                 dataMap.removeChild(reNode);
             }
         } catch (Exception ex) {
-            logger.warn("Message: ", ex);
+            logger.warn("Can't process dataMap DOM: ", ex);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
index 1f03bb7..e3217a8 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/CayenneContextMergeHandler.java
@@ -189,8 +189,7 @@ class CayenneContextMergeHandler implements GraphChangeHandler, DataChannelListe
 
         if (p instanceof ToManyProperty) {
             ((ToManyProperty) p).addTargetDirectly(source, target);
-        }
-        else {
+        } else {
             p.writePropertyDirectly(source, null, target);
         }
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
----------------------------------------------------------------------
diff --git a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
index 7eae9d4..d86e1ec 100644
--- a/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
+++ b/cayenne-rop-server/src/main/java/org/apache/cayenne/remote/RemoteSession.java
@@ -90,8 +90,8 @@ public class RemoteSession implements Serializable {
 
     @Override
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) { return true; }
+        if (o == null || getClass() != o.getClass()) { return false; }
         RemoteSession that = (RemoteSession) o;
         return Objects.equals(sessionId, that.sessionId);
     }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
index 69920d3..25a970b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ObjectContextStateLog.java
@@ -41,12 +41,12 @@ class ObjectContextStateLog implements GraphChangeHandler {
     GraphManager graphManager;
 
     ObjectContextStateLog(GraphManager graphManager) {
-        this.dirtyIds = new HashSet<Object>();
+        this.dirtyIds = new HashSet<>();
         this.graphManager = graphManager;
     }
 
     void clear() {
-        dirtyIds = new HashSet<Object>();
+        dirtyIds = new HashSet<>();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
index 774d0bf..3795976 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/translator/select/QualifierTranslator.java
@@ -316,16 +316,14 @@ public class QualifierTranslator extends QueryAssemblerHelper implements Travers
 			case Expression.BETWEEN:
 				if (childIndex == 0) {
 					out.append(" BETWEEN ");
-				}
-				else if (childIndex == 1) {
+				} else if (childIndex == 1) {
 					out.append(" AND ");
 				}
 				break;
 			case Expression.NOT_BETWEEN:
 				if (childIndex == 0) {
 					out.append(" NOT BETWEEN ");
-				}
-				else if (childIndex == 1) {
+				} else if (childIndex == 1) {
 					out.append(" AND ");
 				}
 				break;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
index d5d2c42..77447ca 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/types/CalendarType.java
@@ -151,14 +151,11 @@ public class CalendarType<T extends Calendar> implements ExtendedType<Calendar>
     protected Object convertToJdbcObject(Calendar value, int type) throws Exception {
         if (type == Types.DATE) {
             return new java.sql.Date(value.getTimeInMillis());
-        }
-        else if (type == Types.TIME) {
+        } else if (type == Types.TIME) {
             return new java.sql.Time(value.getTimeInMillis());
-        }
-        else if (type == Types.TIMESTAMP) {
+        } else if (type == Types.TIMESTAMP) {
             return new java.sql.Timestamp(value.getTimeInMillis());
-        }
-        else {
+        } else {
             throw new IllegalArgumentException(
                     "Only DATE, TIME or TIMESTAMP can be mapped as '"
                             + getClassName()

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
index c7775a5..4c1a947 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/AshwoodEntitySorter.java
@@ -360,8 +360,7 @@ public class AshwoodEntitySorter implements EntitySorter {
 			}
 			if (t1 == null) {
 				return -1;
-			}
-			else if (t2 == null) {
+			} else if (t2 == null) {
 				return 1;
 			}
 			else {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
index 31cac7b..949681c 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/MapDigraph.java
@@ -132,8 +132,7 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 		Map<E, V> destination = graph.remove(vertex);
 		if (destination != null) {
 			size -= destination.size();
-		}
-		else {
+		} else {
 			return false;
 		}
 
@@ -188,8 +187,7 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 		Map<E, V> destinations = graph.remove(vertex);
 		if (destinations != null) {
 			size -= destinations.size();
-		}
-		else {
+		} else {
 			return false;
 		}
 		boolean modified = !destinations.isEmpty();
@@ -240,8 +238,7 @@ public class MapDigraph<E, V> implements Digraph<E, V> {
 		Map<E, V> destinations = graph.get(vertex);
 		if (destinations == null) {
 			return 0;
-		}
-		else {
+		} else {
 			return destinations.size();
 		}
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
index 3c9cf20..b96fb86 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/ashwood/graph/StrongConnection.java
@@ -178,8 +178,7 @@ public class StrongConnection<E, V> implements Iterator<Collection<E>> {
 		}
 		if (directDfs == null) {
 			directDfs = new DepthFirstStampSearch<>(filteredDigraph, root);
-		}
-		else {
+		} else {
 			directDfs.reset(root);
 		}
 		int stamp;
@@ -204,8 +203,7 @@ public class StrongConnection<E, V> implements Iterator<Collection<E>> {
 		boolean singleton = true;
 		if (reverseDfs == null) {
 			reverseDfs = new DepthFirstSearch<>(reverseDigraph, root);
-		}
-		else {
+		} else {
 			reverseDfs.reset(root);
 		}
 		while (reverseDfs.hasNext()) {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
index d8cd163..c2bb9ca 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/Rot13PasswordEncoder.java
@@ -68,8 +68,7 @@ public class Rot13PasswordEncoder implements PasswordEncoding {
             // If c is a letter, rotate it by 13. Numbers/symbols are untouched.
             if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M')) {
                 c += 13; // The first half of the alphabet goes forward 13 letters
-            }
-            else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) {
+            } else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) {
                 c -= 13; // The last half of the alphabet goes backward 13 letters
             }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
index ce766f8..b248f6a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/DbEntityHandler.java
@@ -128,7 +128,7 @@ public class DbEntityHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (isBlank(qualifier.trim())) {
+        if (isBlank(qualifier)) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
index ab4a655..3da4cbc 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/ObjEntityHandler.java
@@ -193,7 +193,7 @@ public class ObjEntityHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (isBlank(qualifier.trim())) {
+        if (isBlank(qualifier)) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
index da18429..1cff9eb 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/configuration/xml/QueryDescriptorHandler.java
@@ -162,7 +162,7 @@ public class QueryDescriptorHandler extends NamespaceAwareNestedTagHandler {
     }
 
     private void createQualifier(String qualifier) {
-        if (isBlank(qualifier.trim())) {
+        if (isBlank(qualifier)) {
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
index 967054c..165f37b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
@@ -280,8 +280,7 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	public void setPasswordEncoderClass(String passwordEncoderClass) {
 		if (passwordEncoderClass == null) {
 			this.passwordEncoderClass = PasswordEncoding.standardEncoders[0];
-		}
-		else {
+		} else {
 			this.passwordEncoderClass = passwordEncoderClass;
 		}
 	}
@@ -356,14 +355,11 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	public String getPasswordSource() {
 		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
 			return getPasswordSourceFilename();
-		}
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
+		} else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
 			return getPasswordSourceExecutable();
-		}
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL)) {
+		} else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL)) {
 			return getPasswordSourceModel();
-		}
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
+		} else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
 			return getPasswordSourceUrl();
 		}
 
@@ -374,11 +370,9 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 		// The location for the model is omitted since it cannot change
 		if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH)) {
 			setPasswordSourceFilename(passwordSource);
-		}
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
+		} else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE)) {
 			setPasswordSourceExecutable(passwordSource);
-		}
-		else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
+		} else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL)) {
 			setPasswordSourceUrl(passwordSource);
 		}
 	}
@@ -397,8 +391,7 @@ public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable
 	public void setPasswordLocation(String passwordLocation) {
 		if (passwordLocation == null) {
 			this.passwordLocation = DataSourceInfo.PASSWORD_LOCATION_MODEL;
-		}
-		else {
+		} else {
 			this.passwordLocation = passwordLocation;
 		}
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
index 4c53225..b50fbc0 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/mysql/MySQLAdapter.java
@@ -290,8 +290,7 @@ public class MySQLAdapter extends JdbcAdapter {
             while (pkit.hasNext()) {
                 if (firstPk) {
 					firstPk = false;
-				}
-                else {
+				} else {
 					sqlBuffer.append(", ");
 				}
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
index ec0b2ce..ab525af 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/ExpressionFactory.java
@@ -109,8 +109,7 @@ public class ExpressionFactory {
 		for (int i = 0; i < allLen; i++) {
 			if (allTypes[i] > max) {
 				max = allTypes[i];
-			}
-			else if (allTypes[i] < min) {
+			} else if (allTypes[i] < min) {
 				min = allTypes[i];
 			}
 		}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
index fe4382b..d8370de 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/QueryDescriptorLoader.java
@@ -191,10 +191,9 @@ public class QueryDescriptorLoader {
     }
 
     public void setQualifier(String qualifier) {
-        if (qualifier == null || isBlank(qualifier.trim())) {
+        if (qualifier == null || isBlank(qualifier)) {
             this.qualifier = null;
-        }
-        else {
+        } else {
             this.qualifier = ExpressionFactory.exp(qualifier.trim());
         }
     }
@@ -212,7 +211,7 @@ public class QueryDescriptorLoader {
             orderings = new ArrayList<>();
         }
 
-        if (path != null && isBlank(path.trim())) {
+        if (path != null && isBlank(path)) {
             path = null;
         }
         boolean isDescending = "true".equalsIgnoreCase(descending);
@@ -235,7 +234,7 @@ public class QueryDescriptorLoader {
     }
 
     public void addPrefetch(String path) {
-        if (path == null || (path != null && isBlank(path.trim()))) {
+        if (path == null || (path != null && isBlank(path))) {
             // throw??
             return;
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
index 1de21fa..85ad2cc 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/query/Ordering.java
@@ -270,8 +270,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	public void setAscending() {
 		if (sortOrder == null || sortOrder == SortOrder.DESCENDING) {
 			setSortOrder(SortOrder.ASCENDING);
-		}
-		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
+		} else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.ASCENDING_INSENSITIVE);
 		}
 	}
@@ -285,8 +284,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	public void setDescending() {
 		if (sortOrder == null || sortOrder == SortOrder.ASCENDING) {
 			setSortOrder(SortOrder.DESCENDING);
-		}
-		else if (sortOrder == SortOrder.ASCENDING_INSENSITIVE) {
+		} else if (sortOrder == SortOrder.ASCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.DESCENDING_INSENSITIVE);
 		}
 	}
@@ -314,8 +312,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	public void setCaseInsensitive() {
 		if (sortOrder == null || sortOrder == SortOrder.ASCENDING) {
 			setSortOrder(SortOrder.ASCENDING_INSENSITIVE);
-		}
-		else if (sortOrder == SortOrder.DESCENDING) {
+		} else if (sortOrder == SortOrder.DESCENDING) {
 			setSortOrder(SortOrder.DESCENDING_INSENSITIVE);
 		}
 	}
@@ -329,8 +326,7 @@ public class Ordering implements Comparator<Object>, Serializable, XMLSerializab
 	public void setCaseSensitive() {
 		if (sortOrder == null || sortOrder == SortOrder.ASCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.ASCENDING);
-		}
-		else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
+		} else if (sortOrder == SortOrder.DESCENDING_INSENSITIVE) {
 			setSortOrder(SortOrder.DESCENDING);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/50bed162/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
index 8fad950..1567e0b 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/reflect/ConverterFactory.java
@@ -63,8 +63,7 @@ public class ConverterFactory {
                 } else if (object instanceof Integer || object instanceof Long || object instanceof Short || object instanceof Byte) {
                 	if (((Number)object).longValue() == 0) {
                         return Boolean.FALSE;
-                    }
-                	else if (((Number)object).longValue() == 1) {
+                    } else if (((Number)object).longValue() == 1) {
                         return Boolean.TRUE;
                     }
                 }