Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
f819bc2
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
b40faf7
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
43302ea
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
71cf356
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
4dfa162
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
d88a64c
FELIX-6759-Java-25-LTS
paulrutter Jul 14, 2025
a15676b
FELIX-6759-Java-25-LTS
paulrutter Jul 15, 2025
eafd8fb
Merge remote-tracking branch 'origin/master' into feature/FELIX-6759-…
paulrutter Aug 29, 2026
a801def
FELIX-6759-Java-25-LTS - Remove SecurityManager usage for JDK 25
paulrutter Aug 29, 2026
c748879
FELIX-6759-Java-25-LTS - Fix remaining JDK 25 build blockers
paulrutter Aug 29, 2026
3900808
FELIX-6759-Java-25-LTS - Close CI coverage gaps for changed modules
paulrutter Aug 29, 2026
662d0ee
FELIX-6759-Java-25-LTS - Unmask CI failures and fix what they exposed
paulrutter Aug 29, 2026
e2a1fe7
FELIX-6759-Java-25-LTS - Remove CI trigger markers and dead fields
paulrutter Aug 29, 2026
f8cd4ef
FELIX-6759-Java-25-LTS - Align byte-buddy with assertj-core 3.27.7 in…
paulrutter Aug 29, 2026
2d79ad7
FELIX-6759-Java-25-LTS - Cancel superseded CI runs
paulrutter Aug 29, 2026
3779881
FELIX-6759-Java-25-LTS - Repair FilterImpl.WrapperCapability, fixing …
paulrutter Aug 29, 2026
25984be
FELIX-6759-Java-25-LTS - Run CI for pull requests onto feature branches
paulrutter Aug 29, 2026
630fa4a
FELIX-6759-Java-25-LTS - Bump versions for the raised execution envir…
paulrutter Aug 29, 2026
40c4c0a
FELIX-6759-Java-25-LTS - Only bump the framework version
paulrutter Aug 29, 2026
7c9c987
FELIX-6759-Java-25-LTS - Narrow the PR to modules it actually changes
paulrutter Aug 29, 2026
92ebd78
FELIX-6759-Java-25-LTS - Repair the paths-filter block
paulrutter Aug 29, 2026
8a7dba6
FELIX-6759-Java-25-LTS - Record the changes in each module's changelog
paulrutter Aug 29, 2026
8d767f7
FELIX-6759-Java-25-LTS - Install the framework so the TCK tests the l…
paulrutter Aug 29, 2026
97898b3
FELIX-6759-Java-25-LTS - Point gogo.jline at the new gogo.runtime ver…
paulrutter Aug 29, 2026
466bd67
FELIX-6759-Java-25-LTS - Build main in CI, and repair its build
paulrutter Aug 29, 2026
1ee939c
FELIX-6759-Java-25-LTS - Move main to 8.0.0 and stop committing its b…
paulrutter Aug 29, 2026
74b27fa
FELIX-6759-Java-25-LTS - Also ignore main.distribution build output
paulrutter Aug 29, 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
29 changes: 25 additions & 4 deletions .github/workflows/maven-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ on:
- 'log/**'
- 'webconsole/**'
- 'framework/**'
- 'gogo/**'
- 'framework.tck/**'
- 'main/**'
pull_request:
branches: [ "master" ]
branches: [ "master", "feature/**", "maintenance/**" ]
paths:
- 'scr/**'
- 'http/**'
Expand All @@ -22,6 +25,15 @@ on:
- 'log/**'
- 'framework/**'
- 'gogo/**'
- 'framework.tck/**'
- 'main/**'

# Cancel superseded runs when a branch is pushed again. github.head_ref is only set
# for pull_request events, so pushes to master fall back to the unique run_id and are
# never cancelled.
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

permissions: {}

Expand All @@ -31,7 +43,7 @@ jobs:
strategy:
fail-fast: false
matrix:
java: [17,21,23]
java: [17,21,23,25]
steps:
- uses: actions/checkout@v6
- name: Set up JDK ${{ matrix.java }}
Expand Down Expand Up @@ -63,9 +75,11 @@ jobs:
- 'log/**'
framework:
- 'framework/**'
- 'framework.tck/**'
gogo:
- 'gogo/**'

main:
- 'main/**'
- name: Felix SCR
if: steps.changes.outputs.scr == 'true'
run: mvn -B -V -Dstyle.color=always --file scr/pom.xml clean verify
Expand All @@ -86,10 +100,17 @@ jobs:
run: mvn -B -V -Dstyle.color=always --file webconsole/pom.xml clean install verify
- name: Felix Framework
if: steps.changes.outputs.framework == 'true'
run: mvn -B -V -Dstyle.color=always --file framework/pom.xml clean verify
# install, not verify: the TCK below is a separate Maven invocation and resolves
# the framework from the repository, so without installing it would silently test
# whatever org.apache.felix.framework happens to be published rather than the
# build under test.
run: mvn -B -V -Dstyle.color=always --file framework/pom.xml clean install
- name: OSGi-TCK Framework
if: steps.changes.outputs.framework == 'true'
run: mvn -B -V -Dstyle.color=always --file framework.tck/pom.xml clean verify
- name: Felix Main
if: steps.changes.outputs.main == 'true'
run: mvn -B -V -Dstyle.color=always --file main/pom.xml clean verify
- name: Felix Gogo Shell
if: steps.changes.outputs.gogo == 'true'
run: mvn -B -V -Dstyle.color=always --file gogo/pom.xml clean verify
Expand Down
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,11 @@ dependency-reduced-pom.xml
/.metadata/
/workspace/
.vscode

# Generated by the main and main.distribution builds. Note that
# main.distribution/conf is tracked and must not be ignored.
main/bundle/
main/bin/
main/conf/
main.distribution/bundle/
main.distribution/bin/
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,32 @@

The **Apache Felix** project is a collection of semi-related **OSGi** sub-projects that build and release individually.

## Java support

Sub-projects build and release individually and each declares its own minimum Java
version, so there is no single repository-wide baseline. The CI build
(`.github/workflows/maven-ci.yml`) compiles and tests the covered sub-projects on
**Java 17, 21, 23 and 25**.

### Security Manager

The **Apache Felix Framework** no longer supports the OSGi security layer. Java SE 24
permanently disabled the Security Manager
([JEP 486](https://openjdk.org/jeps/486)), so permission checks can no longer be
enforced and `System.setSecurityManager` throws. Accordingly:

- Launching the framework with the `org.osgi.framework.security` property now fails
with a `SecurityException` rather than silently starting without the requested
security.
- `Bundle.hasPermission(...)` returns `true` unless a `SecurityProvider` is installed.
- The OSGi permission API (`AdminPermission`, `ServicePermission`, `PackagePermission`,
and friends) is still exported, so bundles referring to those types keep compiling
and resolving.
- The `org.apache.felix.framework.security` sub-project has been removed.

If you need the security layer, stay on a release that predates this change and run it
on Java 21 or earlier.

## Felix Framework

The flagship project is the **Apache Felix Framework** which implements the [**OSGi Core R7**](https://osgi.org/specification/osgi.core/7.0.0/) specification. The `/framework` directory contains the source and build tree for the **OSGi**-compliant
Expand Down
97 changes: 0 additions & 97 deletions framework.security/doc/changelog.txt

This file was deleted.

103 changes: 0 additions & 103 deletions framework.security/pom.xml

This file was deleted.

This file was deleted.

Loading
Loading