diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 69bcdeab..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Build - -on: - push: - paths: - - .github/workflows/build.yml - - build.gradle - - settings.gradle - - src/** - - launcher/build.gradle - - launcher/src/** - workflow_dispatch: - -jobs: - build: - runs-on: antville - - steps: - - uses: actions/checkout@v4 - - - name: Compile with Gradle - run: ./gradlew :compileJava diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ac8a3d1a..f7aa7874 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,27 +9,16 @@ permissions: contents: write jobs: - release: + build: runs-on: antville env: GH_TOKEN: ${{ secrets.GH_TOKEN }} LC_TIME: en_US.UTF-8 + TODAY: $(date +'%d %b %Y') steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Create release notes - id: create_release_notes - run: | - release_notes=$(npx git-cliff@latest --latest) - # Write the release notes as a heredoc to the workflow output - # ⚠️ No white space around `<<` is crucial! - echo "release_notes<<.eot0x03" >> $GITHUB_OUTPUT - echo "$release_notes" >> $GITHUB_OUTPUT - echo ".eot0x03" >> $GITHUB_OUTPUT - name: Build with Gradle run: ./gradlew assembleDist @@ -40,17 +29,17 @@ jobs: direction: upload url: https://code.host.antville.org token: ${{ github.token }} - title: Helma ${{ github.ref_name }} + title: ${{ env.TODAY }} release-dir: build/distributions - release-notes: ${{ steps.create_release_notes.outputs.release_notes }} + release-notes-assistant: true verbose: true - name: Create release at GitHub run: | gh release create "$GITHUB_REF_NAME" \ --repo "$GITHUB_REPOSITORY" \ - --title "Helma ${{ github.ref_name }}" \ - --notes "${{ steps.create_release_notes.outputs.release_notes }}" + --title "${{ env.TODAY }}" \ + --generate-notes - name: Upload release assets to GitHub run: | diff --git a/.java-version b/.java-version index 98d9bcb7..3b5b5d8f 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -17 +11.0 \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index 65dfb884..df5926e7 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # License -Copyright (c) 1999-2025 Helma Project. All rights reserved. +Copyright (c) 1999-2008 Helma Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/README.md b/README.md index f6438677..e93af8d1 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ ## TL;DR -- Make sure you have Java 17 or higher installed -- Download and unpack the [latest release](https://code.host.antville.org/antville/helma/releases) +- Make sure you have Java 11 or higher installed +- Download and unpack the [latest release](https://github.com/antville/helma/releases) - Invoke `./bin/helma`, resp. `./bin/helma.bat`, depending on your platform - Direct your web browser to diff --git a/build.gradle b/build.gradle index d5f86709..84d471ed 100644 --- a/build.gradle +++ b/build.gradle @@ -67,8 +67,8 @@ dependencies { implementation 'com.sun.mail:javax.mail:1.6.2' implementation 'jakarta.servlet:jakarta.servlet-api:5.0.0' implementation 'org.ccil.cowan.tagsoup:tagsoup:1.2.1' - implementation 'org.eclipse.jetty.ee9:jetty-ee9-servlet:12.0.19' - implementation 'org.eclipse.jetty:jetty-xml:12.0.19' + implementation 'org.eclipse.jetty.ee9:jetty-ee9-servlet:12.0.9' + implementation 'org.eclipse.jetty:jetty-xml:12.0.9' implementation 'org.mozilla:rhino-all:1.8.0' implementation 'org.sejda.imageio:webp-imageio:0.1.6' implementation 'xerces:xercesImpl:2.12.2' diff --git a/cliff.toml b/cliff.toml deleted file mode 100644 index 755c4ca2..00000000 --- a/cliff.toml +++ /dev/null @@ -1,52 +0,0 @@ -# git-cliff ~ default configuration file -# https://git-cliff.org/docs/configuration -# -# Lines starting with "#" are comments. -# Configuration options are organized into tables and keys. -# See documentation for more information on available options. - -[changelog] -trim = true - -header = "## Changes" - -body = """ -{% for group, commits in commits | filter(attribute="merge_commit") | group_by(attribute="group") %} - ### {{ group | striptags | trim | upper_first }} - {% for commit in commits %} - * [{{ commit.id | split(pat="") | slice(end=11) | join() }}]\ - (https://code.host.antville.org/antville/helma/commit/{{ commit.id }}) \ - {% if commit.breaking %}**Breaking:** {% endif %}\ - {{ commit.message | split(pat="\\n") | first | upper_first | escape }}\ - {% endfor %} -{% endfor %} - -**Full Changelog:** [{{ previous.version }} → {{ version }}]\ -(https://code.host.antville.org/antville/helma/compare/\ -{{ previous.version | urlencode }}..{{ version | urlencode }})\n\n -""" - -footer = """ -Generated by [git-cliff](https://git-cliff.org/). -""" - -[git] -conventional_commits = false -filter_commits = false -filter_unconventional = false -protect_breaking_commits = false -sort_commits = "newest" -split_commits = false -topo_order = false - -commit_parsers = [ - { message = "^Apply \\d+ suggestion", skip = true }, - { message = "^Merge .*(branch|dependabot|dependency|renovate)", skip = true }, - { message = "^Lock file maintenance", skip = true }, - { message = "yarn\\.lock", skip = true }, - - { message = "^[Ff]ix", group = " 🐛 Bug Fixes" }, - { field = "author.name", pattern = "[Rr]enovate|[Dd]ependabot", group = " 📦 Dependency Updates" }, - { message = "^Merge pull request", group = " 🔀 Merges" }, - { message = ".*", group = " Uncategorized" }, -] diff --git a/src/dist/extras/deploy.sh b/src/dist/extras/deploy.sh deleted file mode 100644 index 6ebd6bf2..00000000 --- a/src/dist/extras/deploy.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# Use this script as forced command of an authorized SSH key: -# command="/home/helma/extras/deploy.sh" ssh-ed25519 AAAAC3NzaC… - -# Define HELMA_HOST and ANTVILLE_HOST in this file -# shellcheck source=/dev/null -. "$HOME"/deploy.env - -case "$SSH_ORIGINAL_COMMAND" in - ping) - echo pong - ;; - - deploy-helma) - rsync ./ "$HELMA_HOST":./ \ - --archive --compress --delete --verbose \ - --filter '+ /bin' \ - --filter '+ /extras' \ - --filter '+ /launcher.jar' \ - --filter '- /lib/ext' \ - --filter '+ /lib' \ - --filter '+ /modules' \ - --filter '- /*' - printf 'Restarting Helma on HELMA_host… ' - ssh "$HELMA_HOST" sudo /bin/systemctl restart helma - ;; - - deploy-antville) - rsync ./apps/antville/ "$ANTVILLE_HOST":./apps/antville/ \ - --archive --compress --delete --verbose \ - --filter '+ /claustra' \ - --filter '+ /code' \ - --filter '+ /compat' \ - --filter '+ /i18n' \ - --filter '+ /lib' \ - --filter '- /*' - rsync ./apps/antville/static/helma/ "$ANTVILLE_HOST":./apps/antville/static/helma/ \ - --archive --compress --verbose \ - --filter '+ /fonts' \ - --filter '+ /formica.html' \ - --filter '+ /img' \ - --filter '+ /scripts' \ - --filter '+ /styles' \ - --filter '- /*' - printf 'Restarting Helma on ANTVILLE_host… ' - ssh "$ANTVILLE_HOST" sudo /bin/systemctl restart helma - ;; - - restart) - printf 'Restarting Helma… ' - sudo /bin/systemctl restart helma - printf '%s\n' 'done.' - ;; - - *) - # Allow any rsync command but restrict it to the installation directory - rrsync -wo /home/helma - ;; -esac diff --git a/src/main/java/helma/main/ApplicationManager.java b/src/main/java/helma/main/ApplicationManager.java index e699a8d8..7d31b764 100644 --- a/src/main/java/helma/main/ApplicationManager.java +++ b/src/main/java/helma/main/ApplicationManager.java @@ -494,15 +494,15 @@ public class ApplicationManager implements XmlRpcHandler { ContextHandler staticContext = new ContextHandler(); staticContext.setContextPath(staticMountpoint); + // FIXME: Causing java.lang.IllegalArgumentException: Resource String is invalid + //staticContext.setBaseResourceAsString(""); staticContext.setHandler(rhandler); ApplicationManager.this.context.addHandler(staticContext); staticContext.start(); } - // I hope I am correct assuming Helma does not need Jetty’s session management, but using - // `ServletContextHandler.SESSIONS` causes an exception: Shared scheduler not started - appContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); + appContext = new ServletContextHandler(ServletContextHandler.SESSIONS); appContext.setContextPath(pathPattern); context.addHandler(appContext); @@ -544,7 +544,9 @@ public class ApplicationManager implements XmlRpcHandler { // Remap the context paths and start ApplicationManager.this.context.mapContexts(); - this.appContext.start(); + // FIXME: Causing java.lang.IllegalStateException: Shared scheduler not started + // Is it necessary, anway? + //this.appContext.start(); } // register as XML-RPC handler @@ -563,8 +565,8 @@ public class ApplicationManager implements XmlRpcHandler { // unbind from Jetty HTTP server if (ApplicationManager.this.jetty != null) { if (this.appContext != null) { - // Adding appContext to the ContextHandlerCollection works (see above) but removing it causes an exception of - // incompatible types: ServletContextHandler cannot be converted to Handler + // FIXME: Causing incompatible types: ServletContextHandler cannot be converted to Handler + // Is it necessary, anyway? //ApplicationManager.this.context.removeHandler(this.appContext); this.appContext.stop(); this.appContext.destroy(); diff --git a/src/main/java/helma/main/Server.java b/src/main/java/helma/main/Server.java index d951adae..88d70db7 100644 --- a/src/main/java/helma/main/Server.java +++ b/src/main/java/helma/main/Server.java @@ -21,7 +21,6 @@ import helma.framework.repository.FileResource; import helma.framework.core.*; import helma.objectmodel.db.DbSource; import helma.util.*; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.xmlrpc.*; @@ -153,8 +152,8 @@ public class Server implements Runnable { String javaVersion = System.getProperty("java.version", "0"); int majorVersion = Integer.parseInt(javaVersion.split("\\.")[0]); - if (majorVersion < 17) { - System.err.println("This version of Helma requires Java 17 or greater."); + if (majorVersion < 11) { + System.err.println("This version of Helma requires Java 11 or greater."); if (majorVersion == 0) { // don't think this will ever happen, but you never know System.err.println("Your Java Runtime did not provide a version number. Please update to a more recent version.");