- Path tempJar = null;
- if (module.getLocator() instanceof Path && Files.isDirectory((Path) module.getLocator()))
- tempJar = toTempJar((Path) module.getLocator());
- Bundle bundle;
- try (InputStream in = newInputStream(tempJar != null ? tempJar : module.getLocator())) {
- bundle = bc.installBundle(module.getBranch().getCoordinates(), in);
+ Object locator = module.getLocator();
+ if (useReference && locator instanceof Path locatorPath) {
+ String referenceUrl = "reference:file:" + locatorPath.toString();
+ Bundle bundle = bc.installBundle(referenceUrl);
+ return bundle;
+ } else {
+
+ Path tempJar = null;
+ if (locator instanceof Path && Files.isDirectory((Path) locator))
+ tempJar = toTempJar((Path) locator);
+ Bundle bundle;
+ try (InputStream in = newInputStream(tempJar != null ? tempJar : locator)) {
+ bundle = bc.installBundle(module.getBranch().getCoordinates(), in);
+ }
+
+ if (tempJar != null)
+ Files.deleteIfExists(tempJar);
+ return bundle;