Skip to content

Commit a2fdefb

Browse files
committed
Enable parallel Felix bundle resolution with virtual threads
1 parent 8adf43d commit a2fdefb

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

‎loader/build.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<project default="core" basedir="." name="Lucee"
33
xmlns:resolver="antlib:org.apache.maven.resolver.ant">
44

5-
<property name="version" value="7.0.5.38-RC"/>
5+
<property name="version" value="7.0.5.39-RC"/>
66

77
<taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml">
88
<classpath>

‎loader/pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>org.lucee</groupId>
55
<artifactId>lucee</artifactId>
6-
<version>7.0.5.38-RC</version>
6+
<version>7.0.5.39-RC</version>
77
<packaging>jar</packaging>
88

99
<name>Lucee Loader Build</name>

‎loader/src/main/java/lucee/loader/engine/CFMLEngineFactory.java‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -817,11 +817,13 @@ public Felix getFelix(final File resourceRootDir, Map<String, Object> config) th
817817
extend(config, "felix.service.urlhandlers", null, false);
818818
extend(config, "felix.startlevel.bundle", null, false);
819819

820-
int processors = Runtime.getRuntime().availableProcessors();
821-
String parallelism = Math.max(4, processors * 2) + ""; // Use more threads
822-
extend(config, "felix.resolver.parallelism", parallelism, false);
823-
extend(config, "felix.resolver.parallel", "true", false); // Enable parallel resolution
824-
extend(config, "felix.systembundle.activators.start.parallelism", parallelism, false);
820+
// Felix bundle resolution parallelism: enable parallel resolution with virtual threads.
821+
// With virtual threads (Java 21+), parallelism is now beneficial for dependency graph traversal.
822+
// Default: Math.min(CPU cores, 8) to balance parallelism without excessive lock contention.
823+
// Override via -Dfelix.resolver.parallelism=N
824+
int parallelism = Math.min(Math.max(1, Runtime.getRuntime().availableProcessors()), 8);
825+
extend(config, "felix.resolver.parallelism", "" + parallelism, false);
826+
extend(config, "felix.resolver.parallel", "true", false);
825827

826828
// Skip waiting for service events to be delivered
827829
extend(config, "felix.service.timeout", null, false);

0 commit comments

Comments
 (0)