Compare commits
15 commits
cd8baa4ac1
...
6723df912e
Author | SHA1 | Date | |
---|---|---|---|
6723df912e | |||
436862e87a | |||
36a12effb2 | |||
2994a4becc | |||
99e8b204fd | |||
c42c0a7a17 | |||
b7543cf615 | |||
fc084f6e52 | |||
6fc73d2320 | |||
9b5cc988dd | |||
04b210b464 | |||
4c011f1e1b | |||
bc7894ecc1 | |||
a3fbf72f38 | |||
de2150693f |
10 changed files with 166 additions and 22 deletions
22
.github/workflows/build.yml
vendored
Normal file
22
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
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
|
23
.github/workflows/release.yml
vendored
23
.github/workflows/release.yml
vendored
|
@ -9,16 +9,27 @@ permissions:
|
|||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
release:
|
||||
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
|
||||
|
@ -29,17 +40,17 @@ jobs:
|
|||
direction: upload
|
||||
url: https://code.host.antville.org
|
||||
token: ${{ github.token }}
|
||||
title: ${{ env.TODAY }}
|
||||
title: Helma ${{ github.ref_name }}
|
||||
release-dir: build/distributions
|
||||
release-notes-assistant: true
|
||||
release-notes: ${{ steps.create_release_notes.outputs.release_notes }}
|
||||
verbose: true
|
||||
|
||||
- name: Create release at GitHub
|
||||
run: |
|
||||
gh release create "$GITHUB_REF_NAME" \
|
||||
--repo "$GITHUB_REPOSITORY" \
|
||||
--title "${{ env.TODAY }}" \
|
||||
--generate-notes
|
||||
--title "Helma ${{ github.ref_name }}" \
|
||||
--notes "${{ steps.create_release_notes.outputs.release_notes }}"
|
||||
|
||||
- name: Upload release assets to GitHub
|
||||
run: |
|
||||
|
|
|
@ -1 +1 @@
|
|||
11.0
|
||||
17
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# License
|
||||
|
||||
Copyright (c) 1999-2008 Helma Project. All rights reserved.
|
||||
Copyright (c) 1999-2025 Helma Project. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
## TL;DR
|
||||
|
||||
- Make sure you have Java 11 or higher installed
|
||||
- Download and unpack the [latest release](https://github.com/antville/helma/releases)
|
||||
- Make sure you have Java 17 or higher installed
|
||||
- Download and unpack the [latest release](https://code.host.antville.org/antville/helma/releases)
|
||||
- Invoke `./bin/helma`, resp. `./bin/helma.bat`, depending on your platform
|
||||
- Direct your web browser to <http://localhost:8080>
|
||||
|
||||
|
|
|
@ -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.9'
|
||||
implementation 'org.eclipse.jetty:jetty-xml:12.0.9'
|
||||
implementation 'org.eclipse.jetty.ee9:jetty-ee9-servlet:12.0.19'
|
||||
implementation 'org.eclipse.jetty:jetty-xml:12.0.19'
|
||||
implementation 'org.mozilla:rhino-all:1.8.0'
|
||||
implementation 'org.sejda.imageio:webp-imageio:0.1.6'
|
||||
implementation 'xerces:xercesImpl:2.12.2'
|
||||
|
|
52
cliff.toml
Normal file
52
cliff.toml
Normal file
|
@ -0,0 +1,52 @@
|
|||
# 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 %}
|
||||
* [<tt>{{ commit.id | split(pat="") | slice(end=11) | join() }}</tt>]\
|
||||
(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 = "<!-- 0 --> 🐛 Bug Fixes" },
|
||||
{ field = "author.name", pattern = "[Rr]enovate|[Dd]ependabot", group = "<!-- 3 --> 📦 Dependency Updates" },
|
||||
{ message = "^Merge pull request", group = "<!-- 1 --> 🔀 Merges" },
|
||||
{ message = ".*", group = "<!-- 2 --> Uncategorized" },
|
||||
]
|
60
src/dist/extras/deploy.sh
vendored
Normal file
60
src/dist/extras/deploy.sh
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
#!/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
|
|
@ -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();
|
||||
}
|
||||
|
||||
appContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
|
||||
// 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.setContextPath(pathPattern);
|
||||
context.addHandler(appContext);
|
||||
|
||||
|
@ -544,9 +544,7 @@ public class ApplicationManager implements XmlRpcHandler {
|
|||
|
||||
// Remap the context paths and start
|
||||
ApplicationManager.this.context.mapContexts();
|
||||
// FIXME: Causing java.lang.IllegalStateException: Shared scheduler not started
|
||||
// Is it necessary, anway?
|
||||
//this.appContext.start();
|
||||
this.appContext.start();
|
||||
}
|
||||
|
||||
// register as XML-RPC handler
|
||||
|
@ -565,8 +563,8 @@ public class ApplicationManager implements XmlRpcHandler {
|
|||
// unbind from Jetty HTTP server
|
||||
if (ApplicationManager.this.jetty != null) {
|
||||
if (this.appContext != null) {
|
||||
// FIXME: Causing incompatible types: ServletContextHandler cannot be converted to Handler
|
||||
// Is it necessary, anyway?
|
||||
// Adding appContext to the ContextHandlerCollection works (see above) but removing it causes an exception of
|
||||
// incompatible types: ServletContextHandler cannot be converted to Handler
|
||||
//ApplicationManager.this.context.removeHandler(this.appContext);
|
||||
this.appContext.stop();
|
||||
this.appContext.destroy();
|
||||
|
|
|
@ -21,6 +21,7 @@ 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.*;
|
||||
|
@ -152,8 +153,8 @@ public class Server implements Runnable {
|
|||
String javaVersion = System.getProperty("java.version", "0");
|
||||
int majorVersion = Integer.parseInt(javaVersion.split("\\.")[0]);
|
||||
|
||||
if (majorVersion < 11) {
|
||||
System.err.println("This version of Helma requires Java 11 or greater.");
|
||||
if (majorVersion < 17) {
|
||||
System.err.println("This version of Helma requires Java 17 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.");
|
||||
|
|
Loading…
Add table
Reference in a new issue