Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
f416823
Create CI pipeline and mvn wrapper (#3)
fmazmz Feb 6, 2026
2bb8152
add docker release workflow for publishing docker image to ghcr (#8)
fmazmz Feb 6, 2026
b86eb38
create initial DockerFile (#9)
fmazmz Feb 6, 2026
1f93012
Feature/tcp serversocket #4 (#10)
met4lk1tty Feb 6, 2026
70db6c7
chore: Update POM to Java 25 and rename artifactId/groupId (#11)
met4lk1tty Feb 6, 2026
bf031de
feature/HTTPparser (#12)
LinusWestling Feb 7, 2026
06d3f0c
feature/ServerLogging (#22)
addee1 Feb 10, 2026
68b5341
update POM with pitest (#26)
met4lk1tty Feb 10, 2026
e0c324c
Add basic HTTP response support (#24)
addee1 Feb 10, 2026
019e4c4
Fix PiTest by defining argLine and removing invalid Mockito javaagent…
met4lk1tty Feb 10, 2026
7815c6b
Rename SocketServer to Server Move HTTP request handling logic to a d…
johanbriger Feb 11, 2026
b0d7583
Add testing for ServerLogging.java. Configure ServerLogging.java for …
bamsemats Feb 11, 2026
446b5e9
feature/FilterPlugin (#17)
LinusWestling Feb 11, 2026
410ff28
Introduce ADR structure and first ADR - Add ADR README explaining the…
annikaholmqvist94 Feb 11, 2026
d6080ff
feat: make HttpResponse mutable and implement NotFoundPlugin default …
LinusWestling Feb 12, 2026
d9fa188
Implement static file handler (foundation for #18) (#36)
annikaholmqvist94 Feb 12, 2026
57f52cb
bump pom version for release (#57)
fmazmz Feb 12, 2026
b088497
Create release tag v1.0.0-beta (#58)
fmazmz Feb 12, 2026
1ac03c5
Adds unit tests to HttpParser (#42)
simonforsberg Feb 12, 2026
418f1ad
add application properties and a ConfigLoader to load set configurati…
fmazmz Feb 12, 2026
ef181c0
Feature/global filter (#51)
met4lk1tty Feb 12, 2026
fb5ae28
Add IP filter to request pipeline (#59)
HerrKanin Feb 13, 2026
0d42601
Update websit to include nav bar, readme site and load content from r…
bamsemats Feb 13, 2026
9823160
docs: centralize documentation into root README and remove package-le…
addee1 Feb 13, 2026
b716a70
Update to fix yaml error in pom and README.md content (#65)
bamsemats Feb 14, 2026
48d88db
Feature/routing separate from plugin (#68)
bamsemats Feb 17, 2026
af32a5d
feat: add filter scope annotations (@Global, @Route) (#67)
met4lk1tty Feb 17, 2026
3377579
Feat/testing the full image before publishing (#84)
TatjanaTrajkovic Feb 18, 2026
7e5ce75
add .dockerignore to optimize and speed up Docker build (#86)
TatjanaTrajkovic Feb 18, 2026
97381b0
Feature: Rate Limiting Filter (#83)
simonforsberg Feb 18, 2026
46352c8
Add URL redirect filter (301/302) (#64)
annikaholmqvist94 Feb 18, 2026
eede595
bug: IOException due to non existant source mapping url (#80)
fmazmz Feb 18, 2026
3d11a7c
implement securityheadersfilter to harden http responses (#91)
johanbriger Feb 19, 2026
74de92e
Added IpFilterTest class with unit test verifying IpFilter allows whi…
SandraNelj Feb 19, 2026
427ca1c
Add test for default statusCode in HttpResponse
eafalkens Feb 19, 2026
fb5b5da
Add test for setting statusCode in HttpResponse
eafalkens Feb 19, 2026
89bfc44
Add test for default statusText in HttpResponse
eafalkens Feb 19, 2026
e0761cd
Add test for setting statusText in HttpResponse
eafalkens Feb 19, 2026
b1618b2
Add test for deafult empty header in HttpResponse
eafalkens Feb 19, 2026
743a6e5
Add test for setting header in HttpResponse
eafalkens Feb 19, 2026
f28f3a0
Add test for default empty body in HttpResponse
eafalkens Feb 19, 2026
e71b1d7
Add test for setting body in HttpResponse
eafalkens Feb 19, 2026
4bd580e
Add test for NullPointerException when setting null statusText
eafalkens Feb 19, 2026
f136e93
Refactor ConfigLoader to accept InputStream and add unit tests (#72)
lindaeskilsson Feb 20, 2026
997b771
Initialize safe defaults in HttpResponse no-arg constructorFix/httpre…
lindaeskilsson Feb 20, 2026
7556101
Align rate-limiting configuration with Server and Logging in ConfigLo…
mattknatt Feb 21, 2026
251a3a8
applied order filter annotations to existing filters (#107)
met4lk1tty Feb 22, 2026
8b2b644
Feature/health check plugin + Metric Plugin (#105)
bamsemats Feb 22, 2026
831901b
Add filter for measuring request response time (#101)
Cavve Feb 22, 2026
69fafc6
Clean up HttpResponseTests; keep defaults and validation, remove
eafalkens Feb 23, 2026
5a0fead
Refactor HttpResponseTest to CodeRabbit changes
eafalkens Feb 23, 2026
052d32c
Merge branch 'main' into test/HttpResponse
eafalkens Feb 23, 2026
04addf4
Fix HttpResponseTest
eafalkens Feb 23, 2026
d924bfe
Trigger CI
eafalkens Feb 23, 2026
3d72223
Fix HttpResponseTest
eafalkens Feb 23, 2026
0a46b1f
Adds a connection id to an incoming request that is included in all …
Tyreviel Feb 23, 2026
9ae1672
Add ETag support to StaticFileHandler with caching for static files (…
OskarLundqvist33 Feb 23, 2026
bd127df
allow using both white and blacklist at the same time with a configur…
jesperlarsson1910 Feb 23, 2026
76aff08
Feature/core di architecture (#114)
met4lk1tty Feb 23, 2026
1167331
Route forwarding server proxy (#119)
fmazmz Feb 23, 2026
7453592
split app into layers for more efficent building (#112)
jesperlarsson1910 Feb 23, 2026
50bf1a1
Merge branch 'test/HttpResponse'
eafalkens Feb 23, 2026
33421f9
remove comments (#124)
met4lk1tty Feb 24, 2026
280c9ee
refactor: decouple Server from Pipeline by moving dependency to Conne…
FionaSprinkles Feb 24, 2026
ad74e89
Feature/429 page redirect (#126)
simonforsberg Feb 24, 2026
a5321d2
Test/architecture test (#121)
FionaSprinkles Feb 25, 2026
93fd9aa
Feature/destroy filter method (#133)
FionaSprinkles Feb 25, 2026
30ac3cb
Feature/123 support x forwarded for header for accurate client ip ide…
simonforsberg Feb 25, 2026
1e443d8
Add ADR for IP-based request filtering (#135)
HerrKanin Feb 25, 2026
24c1a34
41-add-cors-filter-to-enable-cross-origin-requests (#120)
VonAdamo Feb 25, 2026
e46bb6b
#129 protection vs null pointer (#134)
Tyreviel Feb 26, 2026
bc28a4e
Merge remote-tracking branch 'origin/main'
eafalkens Feb 26, 2026
6d84d6b
Add test for empty statusText in HttpResponse and remove null test
eafalkens Mar 1, 2026
2cdf3a1
Resolve merging conflict in pom.xml
eafalkens Mar 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
target/
.git/
.mvn/
mvnw
mvnw.cmd
.editorconfig
.gitignore
*.md
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true

[*.yml]
indent_size = 2

[*.yaml]
indent_size = 2
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI Pipeline
on:
push:
branches:
- main

pull_request:

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Setup Java 25
uses: actions/setup-java@v5.2.0
with:
distribution: 'temurin'
java-version: '25'
cache: 'maven'

- name: Run tests
run: ./mvnw -B test

- name: Run spotless checks
run: ./mvnw -B spotless:check
47 changes: 47 additions & 0 deletions .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Publish Docker Image
on:
push:
tags:
- 'v*'

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repo
uses: actions/checkout@v6.0.2

- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Setup Docker BuildX
uses: docker/setup-buildx-action@v3

- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/project-webserver-juv25d
tags: type=ref,event=tag
labels: org.opencontainers.image.source=${{ github.repository }}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
target/
/.idea/
/META-INF

.DS_Store
3 changes: 3 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
wrapperVersion=3.3.4
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.7/apache-maven-3.8.7-bin.zip
19 changes: 19 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM maven:3.9-eclipse-temurin-25 AS build

WORKDIR /app

COPY pom.xml pom.xml
RUN mvn dependency:go-offline -B

COPY src ./src
RUN mvn clean package -DskipTests -Dmaven.shade.skip=true
RUN mvn dependency:copy-dependencies -DoutputDirectory=target/deps -DincludeScope=runtime

FROM eclipse-temurin:25-jre-alpine

WORKDIR /app

COPY --from=build /app/target/deps/ libs/
COPY --from=build /app/target/classes/ classes/

ENTRYPOINT ["java", "-cp", "classes:libs/*","org.juv25d.App"]
Loading
Loading