import org.argeo.osgi.boot.OsgiBootUtils;
import org.osgi.framework.Version;
+/** A file system {@link ProvisioningSource} in A2 format. */
public class FsA2Source extends ProvisioningSource {
private final Path base;
if (!"jar".equals(ext))
continue modules;
String moduleName = moduleFileName.substring(0, lastDot);
- int firstDash = moduleName.indexOf('-');
- String versionStr = moduleName.substring(firstDash + 1);
- String componentName = moduleName.substring(0, firstDash);
+ if (moduleName.endsWith("-SNAPSHOT"))
+ moduleName = moduleName.substring(0, moduleName.length() - "-SNAPSHOT".length());
+ int lastDash = moduleName.lastIndexOf('-');
+ String versionStr = moduleName.substring(lastDash + 1);
+ String componentName = moduleName.substring(0, lastDash);
// if(versionStr.endsWith("-SNAPSHOT")) {
// versionStr = readVersionFromModule(modulePath);
// }
version = new Version(versionStr);
} catch (Exception e) {
versionStr = readVersionFromModule(modulePath);
- version = new Version(versionStr);
- // OsgiBootUtils.debug("Ignore " + modulePath + " (" + e.getMessage() + ")");
- // continue modules;
+ if (versionStr != null) {
+ version = new Version(versionStr);
+ } else {
+ OsgiBootUtils.debug("Ignore " + modulePath + " (" + e.getMessage() + ")");
+ continue modules;
+ }
}
A2Component component = contribution.getOrAddComponent(componentName);
A2Module module = component.getOrAddModule(version, modulePath);