Skip to content

Migrate HTTP server from Spark to Javalin#63

Merged
eviltester merged 2 commits into
masterfrom
codex/53-migrate-away-from-spark
Jul 16, 2026
Merged

Migrate HTTP server from Spark to Javalin#63
eviltester merged 2 commits into
masterfrom
codex/53-migrate-away-from-spark

Conversation

@eviltester

Copy link
Copy Markdown
Owner

Summary

  • migrate the HTTP server adapter from SparkJava to Javalin 7.2.2
  • add framework-neutral HTTP route abstractions and a confined Javalin adapter
  • update Challenger, CRUD UI, standalone apps, test harnesses, docs/static/shutdown routing, and guardrails
  • preserve existing HTTP behavior, including legacy HEAD content-length behavior

Closes #53

Verification

  • mvn -pl thingifier-crud-ui -am verify
  • mvn -pl thingifier,challenger -am verify
  • mvn spotless:check
  • mvn -pl ercoremodel,thingifier,thingifier-yaml,thingifier-crud-ui,challenger,challengerAuto -am pmd:check checkstyle:check
  • mvn -pl challengerAuto -am test "-Dchallenger.auto.target=local" "-Dchallenger.auto.local.repository=memory"
  • mvn -pl challengerAuto -am test "-Dchallenger.auto.target=local" "-Dchallenger.auto.local.repository=sqlite-memory"
  • focused 413 payload-size challenge checks for single-player and multi-player modes

Copilot AI review requested due to automatic review settings July 16, 2026 17:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e4acfff035

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +74 to 75
if (path.equals("heartbeat")
&& request.getHeader("x-http-method-override").equalsIgnoreCase("patch")) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Guard heartbeat overrides by method and header

For any normal /heartbeat request with a tracked challenger but no X-HTTP-Method-Override header (including the documented GET /heartbeat flow), getHeader(...) returns null and this dereference throws. The Javalin runtime exception handler then returns 400 instead of the route's intended 204 response, and the heartbeat challenge cannot complete. Retain the POST guard and/or compare against a null-safe value.

Useful? React with 👍 / 👎.

@eviltester
eviltester merged commit 9e244a2 into master Jul 16, 2026
3 checks passed
@eviltester
eviltester deleted the codex/53-migrate-away-from-spark branch July 16, 2026 17:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

migrate away from spark

2 participants