From 78d15dd4a8649832e27051f0519a7980d8888136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 1 Mar 2016 17:30:48 +0000 Subject: [PATCH 1/4] Add PMD, for now with no rules Unlike findbugs, PMD is very easy to configure. Should be very useful as long as we set a correct ruleSet. --- F-Droid/build.gradle | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/F-Droid/build.gradle b/F-Droid/build.gradle index 7236d7c19..a58edd30d 100644 --- a/F-Droid/build.gradle +++ b/F-Droid/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' apply plugin: 'witness' apply plugin: 'checkstyle' +apply plugin: 'pmd' repositories { jcenter() @@ -203,11 +204,24 @@ task checkstyle(type: Checkstyle) { configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml") source 'src', 'test/src' include '**/*.java' - exclude '**/gen/**' classpath = files() } +pmd { + toolVersion = '5.4.1' + consoleOutput = true +} + +task pmd(type: Pmd, dependsOn: assembleDebug) { + ruleSets = [ + //'java-basic', + //'java-unusedcode', + ] + source 'src' + include '**/org/fdroid/**/*.java' +} + // This person took the example code below from another blogpost online, however // I lost the reference to it: // http://stackoverflow.com/questions/23297562/gradle-javadoc-and-android-documentation From fbeb6d140f508f2246700bd6a7d969b76deabc98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 1 Mar 2016 17:31:41 +0000 Subject: [PATCH 2/4] PMD: Enable java-android, fix issues --- F-Droid/build.gradle | 1 + F-Droid/src/org/fdroid/fdroid/FDroidApp.java | 2 +- F-Droid/src/org/fdroid/fdroid/localrepo/SwapService.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/F-Droid/build.gradle b/F-Droid/build.gradle index a58edd30d..d784a2f6e 100644 --- a/F-Droid/build.gradle +++ b/F-Droid/build.gradle @@ -217,6 +217,7 @@ task pmd(type: Pmd, dependsOn: assembleDebug) { ruleSets = [ //'java-basic', //'java-unusedcode', + 'java-android', ] source 'src' include '**/org/fdroid/**/*.java' diff --git a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java index 37dc218cd..9db97b91d 100644 --- a/F-Droid/src/org/fdroid/fdroid/FDroidApp.java +++ b/F-Droid/src/org/fdroid/fdroid/FDroidApp.java @@ -176,6 +176,7 @@ public class FDroidApp extends Application { @TargetApi(9) @Override public void onCreate() { + super.onCreate(); if (Build.VERSION.SDK_INT >= 9 && BuildConfig.DEBUG) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectAll() @@ -187,7 +188,6 @@ public class FDroidApp extends Application { .build()); } updateLanguage(); - super.onCreate(); ACRA.init(this); // Needs to be setup before anything else tries to access it. diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/SwapService.java b/F-Droid/src/org/fdroid/fdroid/localrepo/SwapService.java index e5e7aabc0..a9dcebeab 100644 --- a/F-Droid/src/org/fdroid/fdroid/localrepo/SwapService.java +++ b/F-Droid/src/org/fdroid/fdroid/localrepo/SwapService.java @@ -595,12 +595,12 @@ public class SwapService extends Service { @Override public void onDestroy() { - super.onDestroy(); Utils.debugLog(TAG, "Destroying service, will disable swapping if required, and unregister listeners."); disableAllSwapping(); Preferences.get().unregisterLocalRepoHttpsListeners(httpsEnabledListener); LocalBroadcastManager.getInstance(this).unregisterReceiver(onWifiChange); LocalBroadcastManager.getInstance(this).unregisterReceiver(receiveSwapStatusChanged); + super.onDestroy(); } private Notification createNotification() { From 85ba537d957c02f1c2fa1b8dcb6cdb5fe29bf69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 1 Mar 2016 17:38:47 +0000 Subject: [PATCH 3/4] PMD: Add a few rulesets that we already obey --- F-Droid/build.gradle | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/F-Droid/build.gradle b/F-Droid/build.gradle index d784a2f6e..b94fde9b3 100644 --- a/F-Droid/build.gradle +++ b/F-Droid/build.gradle @@ -218,6 +218,10 @@ task pmd(type: Pmd, dependsOn: assembleDebug) { //'java-basic', //'java-unusedcode', 'java-android', + 'java-clone', + 'java-finalizers', + 'java-imports', + 'java-migrating', ] source 'src' include '**/org/fdroid/**/*.java' From d3ca6020dc9ec7853406460f84ea1c37ee8d4e17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 1 Mar 2016 17:46:49 +0000 Subject: [PATCH 4/4] CI: Run pmd too --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 32d16745b..002b26310 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ test: - cd .. - ./gradlew build - ./gradlew checkstyle + - ./gradlew pmd - echo no | android create avd --force -n fcl-test -t android-10 -b armeabi - emulator -force-32bit -avd fcl-test -no-skin -no-audio -no-window & - ./tools/wait-for-emulator