- fileEntries: for (Object key : fileProps.keySet()) {
- if (ARGEO_ORIGIN_M2.toString().equals(key))
- continue fileEntries;
- String value = fileProps.getProperty(key.toString());
- Object previousValue = mergedProps.put(key.toString(), value);
- if (previousValue != null) {
- logger.log(WARNING,
- commonBnd + ": " + key + " was " + previousValue + ", overridden with " + value);
+ // prepare manifest entries
+ Properties mergedProps = new Properties();
+ mergedProps.putAll(commonProps);
+
+ fileEntries: for (Object key : fileProps.keySet()) {
+ if (ARGEO_ORIGIN_M2.toString().equals(key))
+ continue fileEntries;
+ String value = fileProps.getProperty(key.toString());
+ Object previousValue = mergedProps.put(key.toString(), value);
+ if (previousValue != null) {
+ logger.log(WARNING,
+ commonBnd + ": " + key + " was " + previousValue + ", overridden with " + value);
+ }
+ }
+ mergedProps.put(ARGEO_ORIGIN_M2.toString(), artifact.toM2Coordinates());
+ if (!mergedProps.containsKey(BUNDLE_SYMBOLICNAME.toString())) {
+ // use file name as symbolic name
+ String symbolicName = p.getFileName().toString();
+ symbolicName = symbolicName.substring(0, symbolicName.length() - ".bnd".length());
+ mergedProps.put(BUNDLE_SYMBOLICNAME.toString(), symbolicName);