From df063f17f3903a1a265fb089db9cc18b9d821c84 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Wed, 29 Apr 2026 16:45:14 -0700 Subject: [PATCH] Added `pkg` module key factory and resource reader to project loading (#1547) This change allows `PklProject` files, usually loaded via the `Project` static methods, to have references to external packages via `package://` URIs. This is helpful for centralizing and sharing common package configuration via packages. --- pkl-core/src/main/java/org/pkl/core/project/Project.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkl-core/src/main/java/org/pkl/core/project/Project.java b/pkl-core/src/main/java/org/pkl/core/project/Project.java index 7653e914..4c7d652f 100644 --- a/pkl-core/src/main/java/org/pkl/core/project/Project.java +++ b/pkl-core/src/main/java/org/pkl/core/project/Project.java @@ -89,8 +89,10 @@ public final class Project { .setStackFrameTransformer(stackFrameTransformer) .addModuleKeyFactory(ModuleKeyFactories.standardLibrary) .addModuleKeyFactory(ModuleKeyFactories.file) + .addModuleKeyFactory(ModuleKeyFactories.pkg) .addResourceReader(ResourceReaders.environmentVariable()) .addResourceReader(ResourceReaders.file()) + .addResourceReader(ResourceReaders.pkg()) .addEnvironmentVariables(envVars) .setTimeout(timeout) .setPowerAssertionsEnabled(powerAssertionsEnabled) @@ -238,9 +240,11 @@ public final class Project { .setStackFrameTransformer(StackFrameTransformers.defaultTransformer) .addModuleKeyFactory(ModuleKeyFactories.standardLibrary) .addModuleKeyFactory(ModuleKeyFactories.file) + .addModuleKeyFactory(ModuleKeyFactories.pkg) .addModuleKeyFactory(ModuleKeyFactories.classPath(Project.class.getClassLoader())) .addResourceReader(ResourceReaders.environmentVariable()) - .addResourceReader(ResourceReaders.file()); + .addResourceReader(ResourceReaders.file()) + .addResourceReader(ResourceReaders.pkg()); } private static DeclaredDependencies parseDependencies(