Skip to content

Commit 0878a19

Browse files
committed
Propagate Runtime properties in JBang Dev mode
1 parent 7a6b0ee commit 0878a19

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

core/deployment/src/main/java/io/quarkus/runner/bootstrap/AugmentActionImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ private BuildResult runAugment(boolean firstRun, Set<String> changedResources,
305305
.setTargetDir(quarkusBootstrap.getTargetDirectory())
306306
.setDeploymentClassLoader(deploymentClassLoader)
307307
.setBuildSystemProperties(quarkusBootstrap.getBuildSystemProperties())
308+
.setRuntimeProperties(quarkusBootstrap.getRuntimeProperties())
308309
.setEffectiveModel(curatedApplication.getApplicationModel())
309310
.setDependencyInfoProvider(quarkusBootstrap.getDependencyInfoProvider());
310311
if (quarkusBootstrap.getBaseName() != null) {

independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/jbang/JBangDevModeLauncherImpl.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Enumeration;
1616
import java.util.HashMap;
1717
import java.util.Map;
18+
import java.util.Properties;
1819
import java.util.stream.Collectors;
1920
import java.util.zip.ZipEntry;
2021
import java.util.zip.ZipFile;
@@ -85,14 +86,16 @@ public static Closeable main(String... args) {
8586

8687
Path srcDir = projectRoot.resolve("src/main/java");
8788
Files.createDirectories(srcDir);
88-
Files.createSymbolicLink(srcDir.resolve(sourceFile.getFileName().toString()), sourceFile);
89+
Path source = Files.createSymbolicLink(srcDir.resolve(sourceFile.getFileName().toString()), sourceFile);
8990
final LocalProject currentProject = LocalProject.loadWorkspace(projectRoot);
9091
final ResolvedDependency appArtifact = ResolvedDependencyBuilder.newInstance()
9192
.setCoords(currentProject.getAppArtifact(ArtifactCoords.TYPE_JAR))
9293
.setResolvedPath(targetClasses)
9394
.setWorkspaceModule(currentProject.toWorkspaceModule())
9495
.build();
9596

97+
Properties configurationProperties = getConfigurationProperties(source);
98+
9699
//todo : proper support for everything
97100
final QuarkusBootstrap.Builder builder = QuarkusBootstrap.builder()
98101
.setBaseClassLoader(JBangDevModeLauncherImpl.class.getClassLoader())
@@ -117,7 +120,9 @@ public static Closeable main(String... args) {
117120
return artifact;
118121
}).collect(Collectors.toList()))
119122
.setApplicationRoot(targetClasses)
120-
.setProjectRoot(projectRoot);
123+
.setProjectRoot(projectRoot)
124+
.setBuildSystemProperties(configurationProperties)
125+
.setRuntimeProperties(configurationProperties);
121126

122127
Map<String, Object> context = new HashMap<>();
123128
context.put("app-project", currentProject);
@@ -174,4 +179,19 @@ private static String getQuarkusVersion() {
174179
throw new RuntimeException(e);
175180
}
176181
}
182+
183+
private static Properties getConfigurationProperties(final Path source) throws IOException {
184+
Properties properties = new Properties();
185+
for (String line : Files.readAllLines(source)) {
186+
if (line.startsWith("//Q:CONFIG")) {
187+
String conf = line.substring(10).trim();
188+
int equals = conf.indexOf("=");
189+
if (equals == -1) {
190+
throw new RuntimeException("invalid config " + line);
191+
}
192+
properties.setProperty(conf.substring(0, equals), conf.substring(equals + 1));
193+
}
194+
}
195+
return properties;
196+
}
177197
}

0 commit comments

Comments
 (0)