Added detekt extension

This commit is contained in:
Erik C. Thauvin 2023-11-25 21:36:53 -08:00
parent fad1d06b96
commit b5cfb1ddff
11 changed files with 46 additions and 16 deletions

2
.idea/misc.xml generated
View file

@ -5,6 +5,8 @@
<pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="dokkaHtml" /> <pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="dokkaHtml" />
<pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="jacoco" /> <pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="jacoco" />
<pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="docs" /> <pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="docs" />
<pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="detekt" />
<pattern value="net.thauvin.erik.bitly.BitlyShortenBuild" method="detektBaseline" />
</component> </component>
<component name="PDMPlugin"> <component name="PDMPlugin">
<option name="customRuleSets"> <option name="customRuleSets">

View file

@ -17,7 +17,6 @@
<ID>ConstructorParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$private var custom_bitlinks: Array&lt;String> = emptyArray()</ID> <ID>ConstructorParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$private var custom_bitlinks: Array&lt;String> = emptyArray()</ID>
<ID>ConstructorParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$private var long_url: String = Constants.EMPTY</ID> <ID>ConstructorParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$private var long_url: String = Constants.EMPTY</ID>
<ID>CyclomaticComplexMethod:Bitlinks.kt$Bitlinks$@Synchronized fun update( bitlink: String, references: Map&lt;String, String> = emptyMap(), archived: Boolean = false, tags: Array&lt;String> = emptyArray(), created_at: String = Constants.EMPTY, title: String = Constants.EMPTY, deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), created_by: String = Constants.EMPTY, long_url: String = Constants.EMPTY, client_id: String = Constants.EMPTY, custom_bitlinks: Array&lt;String> = emptyArray(), link: String = Constants.EMPTY, id: String = Constants.EMPTY, toJson: Boolean = false ): String</ID> <ID>CyclomaticComplexMethod:Bitlinks.kt$Bitlinks$@Synchronized fun update( bitlink: String, references: Map&lt;String, String> = emptyMap(), archived: Boolean = false, tags: Array&lt;String> = emptyArray(), created_at: String = Constants.EMPTY, title: String = Constants.EMPTY, deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), created_by: String = Constants.EMPTY, long_url: String = Constants.EMPTY, client_id: String = Constants.EMPTY, custom_bitlinks: Array&lt;String> = emptyArray(), link: String = Constants.EMPTY, id: String = Constants.EMPTY, toJson: Boolean = false ): String</ID>
<ID>FunctionNaming:CreateConfig.kt$CreateConfig.Builder$fun group_guid(group_guid: String)</ID>
<ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$bitlink_id: String</ID> <ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$bitlink_id: String</ID>
<ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$client_id: String = Constants.EMPTY</ID> <ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$client_id: String = Constants.EMPTY</ID>
<ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$created_at: String = Constants.EMPTY</ID> <ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$created_at: String = Constants.EMPTY</ID>
@ -29,11 +28,6 @@
<ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$unit_reference: String = Constants.EMPTY</ID> <ID>FunctionParameterNaming:Bitlinks.kt$Bitlinks$unit_reference: String = Constants.EMPTY</ID>
<ID>FunctionParameterNaming:CreateConfig.kt$CreateConfig.Builder$group_guid: String</ID> <ID>FunctionParameterNaming:CreateConfig.kt$CreateConfig.Builder$group_guid: String</ID>
<ID>FunctionParameterNaming:CreateConfig.kt$CreateConfig.Builder$long_url: String</ID> <ID>FunctionParameterNaming:CreateConfig.kt$CreateConfig.Builder$long_url: String</ID>
<ID>FunctionParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$client_id: String</ID>
<ID>FunctionParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$created_at: String</ID>
<ID>FunctionParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$created_by: String</ID>
<ID>FunctionParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$custom_bitlinks: Array&lt;String></ID>
<ID>FunctionParameterNaming:UpdateConfig.kt$UpdateConfig.Builder$long_url: String</ID>
<ID>LongParameterList:Bitlinks.kt$Bitlinks$( bitlink: String, references: Map&lt;String, String> = emptyMap(), archived: Boolean = false, tags: Array&lt;String> = emptyArray(), created_at: String = Constants.EMPTY, title: String = Constants.EMPTY, deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), created_by: String = Constants.EMPTY, long_url: String = Constants.EMPTY, client_id: String = Constants.EMPTY, custom_bitlinks: Array&lt;String> = emptyArray(), link: String = Constants.EMPTY, id: String = Constants.EMPTY, toJson: Boolean = false )</ID> <ID>LongParameterList:Bitlinks.kt$Bitlinks$( bitlink: String, references: Map&lt;String, String> = emptyMap(), archived: Boolean = false, tags: Array&lt;String> = emptyArray(), created_at: String = Constants.EMPTY, title: String = Constants.EMPTY, deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), created_by: String = Constants.EMPTY, long_url: String = Constants.EMPTY, client_id: String = Constants.EMPTY, custom_bitlinks: Array&lt;String> = emptyArray(), link: String = Constants.EMPTY, id: String = Constants.EMPTY, toJson: Boolean = false )</ID>
<ID>LongParameterList:Bitlinks.kt$Bitlinks$( bitlink: String, unit: Units = Units.DAY, units: Int = -1, size: Int = 50, unit_reference: String = Constants.EMPTY, toJson: Boolean = false )</ID> <ID>LongParameterList:Bitlinks.kt$Bitlinks$( bitlink: String, unit: Units = Units.DAY, units: Int = -1, size: Int = 50, unit_reference: String = Constants.EMPTY, toJson: Boolean = false )</ID>
<ID>LongParameterList:Bitlinks.kt$Bitlinks$( domain: String = Constants.EMPTY, title: String = Constants.EMPTY, group_guid: String = Constants.EMPTY, tags: Array&lt;String> = emptyArray(), deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), long_url: String, toJson: Boolean = false )</ID> <ID>LongParameterList:Bitlinks.kt$Bitlinks$( domain: String = Constants.EMPTY, title: String = Constants.EMPTY, group_guid: String = Constants.EMPTY, tags: Array&lt;String> = emptyArray(), deeplinks: Array&lt;Map&lt;String, String>> = emptyArray(), long_url: String, toJson: Boolean = false )</ID>

View file

@ -2,6 +2,7 @@ bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true bld.downloadExtensionSources=true
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.1
bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.0-SNAPSHOT bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.0-SNAPSHOT
bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.0-SNAPSHOT
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.downloadLocation= bld.downloadLocation=
bld.sourceDirectories= bld.sourceDirectories=

18
pom.xml
View file

@ -21,6 +21,24 @@
<version>1.9.21</version> <version>1.9.21</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-common</artifactId>
<version>1.9.21</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk7</artifactId>
<version>1.9.21</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>1.9.21</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>

View file

@ -34,7 +34,7 @@ package net.thauvin.erik.bitly;
import rife.bld.BuildCommand; import rife.bld.BuildCommand;
import rife.bld.Project; import rife.bld.Project;
import rife.bld.extension.CompileKotlinOperation; import rife.bld.extension.CompileKotlinOperation;
import rife.bld.extension.CompileKotlinOptions; import rife.bld.extension.DetektOperation;
import rife.bld.extension.JacocoReportOperation; import rife.bld.extension.JacocoReportOperation;
import rife.bld.extension.dokka.DokkaOperation; import rife.bld.extension.dokka.DokkaOperation;
import rife.bld.extension.dokka.LoggingLevel; import rife.bld.extension.dokka.LoggingLevel;
@ -67,8 +67,12 @@ public class BitlyShortenBuild extends Project {
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL);
var okHttp = version(4, 12, 0); var okHttp = version(4, 12, 0);
final var kotlin = version(1, 9, 21);
scope(compile) scope(compile)
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", version(1, 9, 21))) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin))
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-common", kotlin))
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk7", kotlin))
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk8", kotlin))
.include(dependency("com.squareup.okhttp3", "okhttp", okHttp)) .include(dependency("com.squareup.okhttp3", "okhttp", okHttp))
.include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp)) .include(dependency("com.squareup.okhttp3", "logging-interceptor", okHttp))
.include(dependency("org.json", "json", "20231013")); .include(dependency("org.json", "json", "20231013"));
@ -124,6 +128,23 @@ public class BitlyShortenBuild extends Project {
.execute(); .execute();
} }
@BuildCommand(summary = "Checks source with Detekt")
public void detekt() throws ExitStatusException, IOException, InterruptedException {
new DetektOperation()
.fromProject(this)
.baseline("config/detekt/baseline.xml")
.execute();
}
@BuildCommand(value = "detekt-baseline", summary = "Creates the Detekt baseline")
public void detektBaseline() throws ExitStatusException, IOException, InterruptedException {
new DetektOperation()
.fromProject(this)
.baseline("config/detekt/baseline.xml")
.createBaseline(true)
.execute();
}
@BuildCommand(summary = "Generates documentation in HTML format") @BuildCommand(summary = "Generates documentation in HTML format")
public void docs() throws ExitStatusException, IOException, InterruptedException { public void docs() throws ExitStatusException, IOException, InterruptedException {
var kotlin = new File(srcMainDirectory(), "kotlin").getAbsolutePath(); var kotlin = new File(srcMainDirectory(), "kotlin").getAbsolutePath();

View file

@ -56,7 +56,6 @@ open class Bitly() {
* *
* @param accessToken The API access token. * @param accessToken The API access token.
*/ */
@Suppress("unused")
constructor(accessToken: String) : this() { constructor(accessToken: String) : this() {
this.accessToken = accessToken this.accessToken = accessToken
} }
@ -67,7 +66,6 @@ open class Bitly() {
* @param properties The properties containing the [API Access Token][accessToken]. * @param properties The properties containing the [API Access Token][accessToken].
* @param key The property key containing the [API Access Token][accessToken]. * @param key The property key containing the [API Access Token][accessToken].
*/ */
@Suppress("unused")
@JvmOverloads @JvmOverloads
constructor(properties: Properties, key: String = Constants.ENV_ACCESS_TOKEN) : this() { constructor(properties: Properties, key: String = Constants.ENV_ACCESS_TOKEN) : this() {
accessToken = properties.getProperty(key, accessToken) accessToken = properties.getProperty(key, accessToken)
@ -96,7 +94,6 @@ open class Bitly() {
* @param propertiesFile The properties file containing the [API Access Token][accessToken]. * @param propertiesFile The properties file containing the [API Access Token][accessToken].
* @param key The property key containing the [API Access Token][accessToken]. * @param key The property key containing the [API Access Token][accessToken].
*/ */
@Suppress("unused")
@JvmOverloads @JvmOverloads
constructor(propertiesFile: File, key: String = Constants.ENV_ACCESS_TOKEN) : this(propertiesFile.toPath(), key) constructor(propertiesFile: File, key: String = Constants.ENV_ACCESS_TOKEN) : this(propertiesFile.toPath(), key)

View file

@ -39,7 +39,6 @@ package net.thauvin.erik.bitly
* @param description Bitly error description, if any. * @param description Bitly error description, if any.
* @param statusCode HTTP status code, * @param statusCode HTTP status code,
*/ */
@Suppress("unused")
data class CallResponse( data class CallResponse(
val body: String = Constants.EMPTY_JSON, val body: String = Constants.EMPTY_JSON,
val message: String = "", val message: String = "",

View file

@ -34,7 +34,6 @@ package net.thauvin.erik.bitly
/** /**
* Provides units of time definitions. * Provides units of time definitions.
*/ */
@Suppress("unused")
enum class Units { enum class Units {
MINUTE, HOUR, DAY, WEEK, MONTH MINUTE, HOUR, DAY, WEEK, MONTH
} }

View file

@ -50,7 +50,7 @@ class CreateConfig private constructor(
* *
* See the [Bit.ly API](https://dev.bitly.com/api-reference#createFullBitlink) for more information. * See the [Bit.ly API](https://dev.bitly.com/api-reference#createFullBitlink) for more information.
**/ **/
@Suppress("unused", "ArrayInDataClass") @Suppress("ArrayInDataClass")
data class Builder( data class Builder(
private var domain: String = Constants.EMPTY, private var domain: String = Constants.EMPTY,
private var title: String = Constants.EMPTY, private var title: String = Constants.EMPTY,

View file

@ -57,7 +57,7 @@ class UpdateConfig private constructor(
* *
* See the [Bit.ly API](https://dev.bitly.com/api-reference#updateBitlink) for more information. * See the [Bit.ly API](https://dev.bitly.com/api-reference#updateBitlink) for more information.
**/ **/
@Suppress("unused", "ArrayInDataClass") @Suppress("ArrayInDataClass")
data class Builder( data class Builder(
private var bitlink: String = Constants.EMPTY, private var bitlink: String = Constants.EMPTY,
private var references: Map<String, String> = emptyMap(), private var references: Map<String, String> = emptyMap(),

View file

@ -40,7 +40,6 @@ import net.thauvin.erik.bitly.Utils.toEndPoint
import net.thauvin.erik.bitly.config.CreateConfig import net.thauvin.erik.bitly.config.CreateConfig
import net.thauvin.erik.bitly.config.UpdateConfig import net.thauvin.erik.bitly.config.UpdateConfig
import org.json.JSONObject import org.json.JSONObject
import org.junit.Before
import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.BeforeAll
import java.io.File import java.io.File
import java.util.logging.Level import java.util.logging.Level