diff --git a/examples/build.gradle.kts b/examples/build.gradle.kts index 20df428..b728ce7 100644 --- a/examples/build.gradle.kts +++ b/examples/build.gradle.kts @@ -2,11 +2,12 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("application") - id("com.github.ben-manes.versions") version "0.45.0" - kotlin("jvm") version "1.7.22" + id("com.github.ben-manes.versions") version "0.48.0" + kotlin("jvm") version "1.9.10" } -// ./gradlew run runJava +// ./gradlew run --args=API_KEY +// ./gradlew runJava --args=API_KEY defaultTasks(ApplicationPlugin.TASK_RUN_NAME) diff --git a/examples/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/wrapper/gradle-wrapper.jar index 7454180..7f93135 100644 Binary files a/examples/gradle/wrapper/gradle-wrapper.jar and b/examples/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/wrapper/gradle-wrapper.properties index 070cb70..ac72c34 100644 --- a/examples/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/examples/gradlew b/examples/gradlew index 1b6c787..0adc8e1 100755 --- a/examples/gradlew +++ b/examples/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,6 +198,10 @@ if "$cygwin" || "$msys" ; then done fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Collect all arguments for the java command; # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of # shell script including quotes and variable substitutions, so put them in @@ -205,6 +214,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/examples/gradlew.bat b/examples/gradlew.bat index 107acd3..93e3f59 100644 --- a/examples/gradlew.bat +++ b/examples/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/examples/src/main/java/com/example/AkismetSample.java b/examples/src/main/java/com/example/AkismetSample.java index d17d70f..f70698f 100644 --- a/examples/src/main/java/com/example/AkismetSample.java +++ b/examples/src/main/java/com/example/AkismetSample.java @@ -6,54 +6,59 @@ import net.thauvin.erik.akismet.AkismetComment; import java.util.Date; public class AkismetSample { - public static void main(String[] args) { - final Akismet akismet = new Akismet("YOUR_API_KEY", "https://yourblogdomainname.com/blog/"); - final AkismetComment comment = new AkismetComment("127.0.0.1", "curl/7.29.0"); + public static void main(String... args) { + if (args.length == 1 && !args[0].isBlank()) { + final Akismet akismet = new Akismet(args[0], "https://yourblogdomainname.com/blog/"); + final AkismetComment comment = new AkismetComment("127.0.0.1", "curl/7.29.0"); - comment.setTest(true); + comment.setTest(true); - comment.setReferrer("https://www.google.com"); - comment.setPermalink(akismet.getBlog() + "post=1"); - comment.setType(AkismetComment.TYPE_COMMENT); - comment.setAuthor("admin"); - comment.setAuthorEmail("test@test.com"); - comment.setAuthorUrl("http://www.CheckOutMyCoolSite.com"); - comment.setDateGmt(Akismet.dateToGmt(new Date())); - // comment.setUserRole(AkismetComment.ADMIN_ROLE); - comment.setContent("It means a lot that you would take the time to review our software. Thanks again."); + comment.setReferrer("https://www.google.com"); + comment.setPermalink(akismet.getBlog() + "post=1"); + comment.setType(AkismetComment.TYPE_COMMENT); + comment.setAuthor("admin"); + comment.setAuthorEmail("test@test.com"); + comment.setAuthorUrl("http://www.CheckOutMyCoolSite.com"); + comment.setDateGmt(Akismet.dateToGmt(new Date())); + // comment.setUserRole(AkismetComment.ADMIN_ROLE); + comment.setContent("It means a lot that you would take the time to review our software. Thanks again."); - // final ConsoleHandler consoleHandler = new ConsoleHandler(); - // consoleHandler.setLevel(Level.FINE); - // final Logger logger = akismet.getLogger(); - // logger.addHandler(consoleHandler); - // logger.setLevel(Level.FINE); + // final ConsoleHandler consoleHandler = new ConsoleHandler(); + // consoleHandler.setLevel(Level.FINE); + // final Logger logger = akismet.getLogger(); + // logger.addHandler(consoleHandler); + // logger.setLevel(Level.FINE); - if (akismet.verifyKey()) { - final boolean isSpam = akismet.checkComment(comment); - if (isSpam) { - System.out.println("The comment is SPAM according to Akismet."); + if (akismet.verifyKey()) { + final boolean isSpam = akismet.checkComment(comment); + if (isSpam) { + System.out.println("The comment is SPAM according to Akismet."); - final boolean hasBeenSubmitted = akismet.submitSpam(comment); - if (hasBeenSubmitted) { - System.out.println("The comment has been submitted as SPAM to Akismet"); + final boolean hasBeenSubmitted = akismet.submitSpam(comment); + if (hasBeenSubmitted) { + System.out.println("The comment has been submitted as SPAM to Akismet"); + } else { + System.err.println(akismet.getErrorMessage()); + } } else { - System.err.println(akismet.getErrorMessage()); + System.out.println("The comment is not SPAM according to Akismet."); + + final boolean hasBeenSubmitted = akismet.submitHam(comment); + if (hasBeenSubmitted) { + System.out.println("The comment has been submitted as HAM to Akismet"); + } else { + System.err.println(akismet.getErrorMessage()); + } } } else { - System.out.println("The comment is not SPAM according to Akismet."); - - final boolean hasBeenSubmitted = akismet.submitHam(comment); - if (hasBeenSubmitted) { - System.out.println("The comment has been submitted as HAM to Akismet"); - } else { - System.err.println(akismet.getErrorMessage()); - } + System.err.println("Invalid API Key."); + System.exit(1); } + + System.exit(0); } else { - System.err.println("Invalid API Key."); + System.err.println("Please specify an API key."); System.exit(1); } - - System.exit(0); } } diff --git a/examples/src/main/kotlin/com/example/AkismetExample.kt b/examples/src/main/kotlin/com/example/AkismetExample.kt index eabd4a5..149555f 100644 --- a/examples/src/main/kotlin/com/example/AkismetExample.kt +++ b/examples/src/main/kotlin/com/example/AkismetExample.kt @@ -5,56 +5,62 @@ import net.thauvin.erik.akismet.AkismetComment import java.util.Date import kotlin.system.exitProcess -fun main() { - val akismet = Akismet(apiKey = "YOUR_API_KEY", blog = "https://yourblogdomainname.com/blog/") - val comment = AkismetComment(userIp = "127.0.0.1", userAgent = "curl/7.29.0") +fun main(args: Array) { - with(comment) { - isTest = true + if (args.size == 1 && args[0].isNotEmpty()) { + val akismet = Akismet(apiKey = args[0], blog = "https://yourblogdomainname.com/blog/") + val comment = AkismetComment(userIp = "127.0.0.1", userAgent = "curl/7.29.0") - referrer = "https://www.google.com" - permalink = "${akismet.blog}post=1" - type = AkismetComment.TYPE_COMMENT - author = "admin" - authorEmail = "test@test.com" - authorUrl = "https://www.CheckOutMyCoolSite.com" - dateGmt = Akismet.dateToGmt(Date()) + with(comment) { + isTest = true + + referrer = "https://www.google.com" + permalink = "${akismet.blog}post=1" + type = AkismetComment.TYPE_COMMENT + author = "admin" + authorEmail = "test@test.com" + authorUrl = "https://www.CheckOutMyCoolSite.com" + dateGmt = Akismet.dateToGmt(Date()) // userRole = AkismetComment.ADMIN_ROLE - content = "It means a lot that you would take the time to review our software. Thanks again." - } + content = "It means a lot that you would take the time to review our software. Thanks again." + } // with(akismet.logger) { // addHandler(ConsoleHandler().apply { level = Level.FINE }) // level = Level.FINE // } - if (akismet.verifyKey()) { - val isSpam = akismet.checkComment(comment) - if (isSpam) { - println("The comment is SPAM according to Akismet.") + if (akismet.verifyKey()) { + val isSpam = akismet.checkComment(comment) + if (isSpam) { + println("The comment is SPAM according to Akismet.") - val hasBeenSubmitted = akismet.submitSpam(comment) + val hasBeenSubmitted = akismet.submitSpam(comment) - if (hasBeenSubmitted) { - println("The comment was successfully submitted as SPAM to Akismet.") + if (hasBeenSubmitted) { + println("The comment was successfully submitted as SPAM to Akismet.") + } else { + System.err.println(akismet.errorMessage) + } } else { - System.err.println(akismet.errorMessage) + println("The comment is not SPAM according to Akismet.") + + val hasBeenSubmitted = akismet.submitHam(comment) + + if (hasBeenSubmitted) { + println("The comment was successfully submitted as HAM to Akismet.") + } else { + System.err.println(akismet.errorMessage) + } } } else { - println("The comment is not SPAM according to Akismet.") - - val hasBeenSubmitted = akismet.submitHam(comment) - - if (hasBeenSubmitted) { - println("The comment was successfully submitted as HAM to Akismet.") - } else { - System.err.println(akismet.errorMessage) - } + System.err.println("Invalid API Key.") + exitProcess(1) } + + exitProcess(0) } else { - System.err.println("Invalid API Key.") + System.err.println("Please specify an API key.") exitProcess(1) } - - exitProcess(0) }