Compare commits

...

9 commits

Author SHA1 Message Date
4cc92e956f
Update root pom 2025-03-16 15:37:59 -07:00
b17a4fd588
Cleanup tests 2025-03-16 15:32:14 -07:00
944fbf1228
Bump JUnit to version 5.12.1 2025-03-16 13:17:08 -07:00
427dc1a248
Bump org.json to version 20250107 2025-03-16 13:16:42 -07:00
256903cec1
Update extensions dependencies
Bump Detekt extension to version 0.9.9
Bump Dokka extension to version 1.0.3
Bump Jacoco Report extension to version 0.9.9
Bump Kotlin extension to version 1.0.4
2025-03-16 13:15:40 -07:00
41e0d866e2
Bump Kotlin to version 2.1.10 2025-03-16 13:13:36 -07:00
3afbfb26ed
Bump bld to version 2.2.1 2025-03-16 13:12:40 -07:00
ccfe3ac4db
Updated copyright 2025-01-01 16:51:39 -08:00
b0631046b9
Bumped Json to version 20241224 2025-01-01 16:50:07 -08:00
30 changed files with 54 additions and 54 deletions

View file

@ -14,7 +14,7 @@ jobs:
strategy: strategy:
matrix: matrix:
java-version: [17, 21, 23] java-version: [17, 21, 23]
kotlin-version: [1.9.24, 2.1.0] kotlin-version: [1.9.25, 2.1.10]
steps: steps:
- name: Checkout source repository - name: Checkout source repository

View file

@ -2,12 +2,12 @@
<library name="bld"> <library name="bld">
<CLASSES> <CLASSES>
<root url="file://$PROJECT_DIR$/lib/bld" /> <root url="file://$PROJECT_DIR$/lib/bld" />
<root url="jar://$USER_HOME$/.bld/dist/bld-2.1.0.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES> <SOURCES>
<root url="file://$PROJECT_DIR$/lib/bld" /> <root url="file://$PROJECT_DIR$/lib/bld" />
<root url="jar://$USER_HOME$/.bld/dist/bld-2.1.0-sources.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-sources.jar!/" />
</SOURCES> </SOURCES>
<excluded> <excluded>
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" /> <root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />

View file

@ -1,4 +1,4 @@
Copyright 2022-2023 Erik C. Thauvin (erik@thauvin.net) Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met: modification, are permitted provided that the following conditions are met:

View file

@ -1,6 +1,6 @@
[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause)
[![Kotlin](https://img.shields.io/badge/kotlin-2.1.0-7f52ff)](https://kotlinlang.org/) [![Kotlin](https://img.shields.io/badge/kotlin-2.1.10-7f52ff)](https://kotlinlang.org/)
[![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld)
[![Release](https://img.shields.io/github/release/ethauvin/jokeapi.svg)](https://github.com/ethauvin/jokeapi/releases/latest) [![Release](https://img.shields.io/github/release/ethauvin/jokeapi.svg)](https://github.com/ethauvin/jokeapi/releases/latest)
[![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/jokeapi?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/jokeapi) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/jokeapi?color=blue)](https://central.sonatype.com/artifact/net.thauvin.erik/jokeapi)
[![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/jokeapi?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/jokeapi/) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/jokeapi?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/jokeapi/)

Binary file not shown.

View file

@ -1,10 +1,10 @@
bld.downloadExtensionJavadoc=false bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true bld.downloadExtensionSources=true
bld.downloadLocation= bld.downloadLocation=
bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.7 bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.9
bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.2 bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.3
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.9
bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.3 bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.4
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.sourceDirectories= bld.sourceDirectories=
bld.version=2.1.0 bld.version=2.2.1

View file

@ -18,13 +18,13 @@
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId> <artifactId>kotlin-stdlib</artifactId>
<version>2.1.0</version> <version>2.1.10</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json</groupId> <groupId>org.json</groupId>
<artifactId>json</artifactId> <artifactId>json</artifactId>
<version>20240303</version> <version>20250107</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>

View file

@ -1,7 +1,7 @@
/* /*
* JokeApiBuild.java * JokeApiBuild.java
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
@ -67,15 +67,15 @@ public class JokeApiBuild extends Project {
autoDownloadPurge = true; autoDownloadPurge = true;
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL);
final var kotlin = version(2, 1, 0); final var kotlin = version(2, 1, 10);
scope(compile) scope(compile)
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin))
.include(dependency("org.json", "json", "20240303")) .include(dependency("org.json", "json", "20250107"))
.include(dependency("net.thauvin.erik.urlencoder", "urlencoder-lib-jvm", version(1, 6, 0))); .include(dependency("net.thauvin.erik.urlencoder", "urlencoder-lib-jvm", version(1, 6, 0)));
scope(test) scope(test)
.include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin))
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 4))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 4))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
.include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1))); .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1)));
publishOperation() publishOperation()
@ -167,6 +167,12 @@ public class JokeApiBuild extends Project {
pomRoot(); pomRoot();
} }
@Override
public void publishLocal() throws Exception {
super.publishLocal();
pomRoot();
}
@BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory") @BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory")
public void pomRoot() throws FileUtilsErrorException { public void pomRoot() throws FileUtilsErrorException {
PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(), PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(),

View file

@ -1,7 +1,7 @@
/* /*
* JokeApi.kt * JokeApi.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeConfig.kt * JokeConfig.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeUtil.kt * JokeUtil.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* HttpErrorException.kt * HttpErrorException.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeException.kt * JokeException.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Category.kt * Category.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Flag.kt * Flag.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Format.kt * Format.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* IdRange.kt * IdRange.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Joke.kt * Joke.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeResponse.kt * JokeResponse.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Language.kt * Language.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Parameter.kt * Parameter.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* Type.kt * Type.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* ApiCallTest.kt * ApiCallTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* BeforeAllTests.kt * BeforeAllTests.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* ExceptionsTest.kt * ExceptionsTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* GetJokeTest.kt * GetJokeTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
@ -70,15 +70,12 @@ internal class GetJokeTest {
@Test @Test
fun `Get Joke with ID`() { fun `Get Joke with ID`() {
val id = 172 val id = 201
val joke = joke(idRange = IdRange(id)) val joke = joke(idRange = IdRange(id))
logger.fine(joke.toString()) logger.fine(joke.toString())
assertThat(joke, "joke($id)").all { assertThat(joke, "joke($id)").all {
prop(Joke::flags).all { prop(Joke::flags).contains(Flag.RELIGIOUS);
contains(Flag.EXPLICIT) prop(Joke::id).isEqualTo(id)
contains(Flag.NSFW)
}
prop(Joke::id).isEqualTo(172)
prop(Joke::category).isEqualTo(Category.PUN) prop(Joke::category).isEqualTo(Category.PUN)
} }
} }
@ -137,12 +134,10 @@ internal class GetJokeTest {
@Test @Test
fun `Get Joke with Split Newline`() { fun `Get Joke with Split Newline`() {
val joke = joke( val joke = joke(type = Type.SINGLE, idRange = IdRange(18), splitNewLine = true)
categories = setOf(Category.DARK), type = Type.SINGLE, idRange = IdRange(178), splitNewLine = true
)
logger.fine(joke.toString()) logger.fine(joke.toString())
assertThat(joke::joke, "joke(splitNewLine=true)").all { assertThat(joke::joke, "joke(splitNewLine=true)").all {
size().isEqualTo(2) size().isGreaterThanOrEqualTo(2)
each { each {
containsNone("\n") containsNone("\n")
} }
@ -177,13 +172,12 @@ internal class GetJokeTest {
@Test @Test
fun `Get Joke using Search`() { fun `Get Joke using Search`() {
val id = 265 val search = "UDP joke"
val search = "his wife"
val joke = val joke =
joke(contains = search, categories = setOf(Category.PROGRAMMING), idRange = IdRange(id), safe = true) joke(contains = search, categories = setOf(Category.PROGRAMMING), safe = true)
logger.fine(joke.toString()) logger.fine(joke.toString())
assertThat(joke, "joke($search)").all { assertThat(joke, "joke($search)").all {
prop(Joke::id).isEqualTo(id) prop(Joke::id).isEqualTo(0)
prop(Joke::joke).any { prop(Joke::joke).any {
it.contains(search) it.contains(search)
} }

View file

@ -1,7 +1,7 @@
/* /*
* GetJokesTest.kt * GetJokesTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* GetRawJokesTest.kt * GetRawJokesTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeConfigTest.kt * JokeConfigTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:

View file

@ -1,7 +1,7 @@
/* /*
* JokeUtilTest.kt * JokeUtilTest.kt
* *
* Copyright 2022-2024 Erik C. Thauvin (erik@thauvin.net) * Copyright 2022-2025 Erik C. Thauvin (erik@thauvin.net)
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met: