File tree Expand file tree Collapse file tree 4 files changed +48
-3
lines changed
main/java/com/synopsys/integration/blackduck/imageinspector/containerfilesystem
test/java/com/synopsys/integration/blackduck/imageinspector/containerfilesystem Expand file tree Collapse file tree 4 files changed +48
-3
lines changed Original file line number Diff line number Diff line change
1
+ package com .synopsys .integration .blackduck .imageinspector .containerfilesystem ;
2
+
3
+ public class DataStripper {
4
+
5
+ public static String stripEpochFromVersion (String version ) {
6
+ return version != null && version .startsWith ("0:" ) ? version .substring (2 ) : version ;
7
+ }
8
+
9
+ public static String stripEpochFromExternalId (String externalId ) {
10
+ int pos ;
11
+ if (externalId != null && (pos = externalId .indexOf ("/0:" )) > -1 ) {
12
+ return externalId .substring (0 , pos + 1 ).concat (externalId .substring (pos + 3 ));
13
+ }
14
+ return externalId ;
15
+ }
16
+
17
+ }
Original file line number Diff line number Diff line change 27
27
import org .springframework .stereotype .Component ;
28
28
29
29
import com .synopsys .integration .blackduck .imageinspector .api .PackageManagerEnum ;
30
+ import com .synopsys .integration .blackduck .imageinspector .containerfilesystem .DataStripper ;
30
31
import com .synopsys .integration .blackduck .imageinspector .containerfilesystem .components .ComponentDetails ;
31
32
import com .synopsys .integration .blackduck .imageinspector .containerfilesystem .pkgmgr .ComponentRelationshipPopulater ;
32
33
import com .synopsys .integration .blackduck .imageinspector .containerfilesystem .pkgmgr .pkgmgrdb .CommonRelationshipPopulater ;
@@ -146,7 +147,7 @@ private Optional<ComponentDetails> createComponentForPackage(final String linuxD
146
147
logger .warn (String .format ("apk output contains an invalid line: %s" , packageLine ));
147
148
return Optional .empty ();
148
149
}
149
- final String version = extractVersion (parts );
150
+ final String version = DataStripper . stripEpochFromVersion ( extractVersion (parts ) );
150
151
final String component = extractComponent (parts );
151
152
// if a package starts with a period, ignore it. It's a virtual meta package and the version information is missing
152
153
if (component .startsWith ("." )) {
Original file line number Diff line number Diff line change @@ -97,8 +97,8 @@ public List<ComponentDetails> extractComponentsFromPkgMgrOutput(File imageFileSy
97
97
final RpmPackage rpmPackage = gson .fromJson (packageLine , RpmPackage .class );
98
98
final String packageName = rpmPackage .getName ();
99
99
String packageVersion = rpmPackage .getVersion ();
100
- if (!NO_VALUE .equals (rpmPackage .getEpoch ())) {
101
- packageVersion = String .format ("%s:%s" , rpmPackage .getEpoch (), rpmPackage . getVersion () );
100
+ if (!NO_VALUE .equals (rpmPackage .getEpoch ()) && rpmPackage . getEpoch () != null && ! rpmPackage . getEpoch (). equals ( "0" ) ) {
101
+ packageVersion = String .format ("%s:%s" , rpmPackage .getEpoch (), packageVersion );
102
102
}
103
103
String arch = "" ;
104
104
if (!NO_VALUE .equals (rpmPackage .getArch ())) {
Original file line number Diff line number Diff line change
1
+ package com .synopsys .integration .blackduck .imageinspector .containerfilesystem ;
2
+
3
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
4
+ import org .junit .jupiter .api .Test ;
5
+
6
+ public class DataStripperTest {
7
+
8
+ @ Test
9
+ void stripEpocFromVersionTest () {
10
+ assertEquals (null , DataStripper .stripEpocFromVersion (null ));
11
+ assertEquals ("" , DataStripper .stripEpocFromVersion ("" ));
12
+ assertEquals ("1:0:" , DataStripper .stripEpocFromVersion ("1:0:" ));
13
+ assertEquals ("0:" , DataStripper .stripEpocFromVersion ("0:0:" ));
14
+ assertEquals (" " , DataStripper .stripEpocFromVersion (" " ));
15
+ assertEquals ("1.62.0-r5" , DataStripper .stripEpocFromVersion ("1.62.0-r5" ));
16
+ assertEquals ("1.62.0-r5" , DataStripper .stripEpocFromVersion ("0:1.62.0-r5" ));
17
+ }
18
+
19
+ @ Test
20
+ void stripEpochFromExternalIdTest () {
21
+ assertEquals ("name/:7.0.0" , DataStripper .stripEpochFromExternalId ("name/:7.0.0" ));
22
+ assertEquals ("/7.0.0" , DataStripper .stripEpochFromExternalId ("/7.0.0" ));
23
+ assertEquals ("name/7.0.0" , DataStripper .stripEpochFromExternalId ("name/0:7.0.0" ));
24
+ assertEquals ("name/1:7.0.0" , DataStripper .stripEpochFromExternalId ("name/1:7.0.0" ));
25
+ }
26
+
27
+ }
You can’t perform that action at this time.
0 commit comments