diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index 669a4ae9721e..85f9be6af472 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -627,6 +627,28 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("java-binary-openjdk", "java"), }, }, + { + logicalFixture: "java-jre-openjdk-eclipse/11.0.22/linux-amd64", + expected: pkg.Package{ + Name: "java/jre", + Version: "11.0.22+7", + Type: "binary", + PURL: "pkg:generic/java/jre@11.0.22%2B7", + Locations: locations("java"), + Metadata: metadata("java-binary-oracle", "java"), + }, + }, + { + logicalFixture: "java-jre-openjdk-arm64-eclipse/11.0.22/linux-arm64", + expected: pkg.Package{ + Name: "java/jre", + Version: "11.0.22+7", + Type: "binary", + PURL: "pkg:generic/java/jre@11.0.22%2B7", + Locations: locations("java"), + Metadata: metadata("java-binary-oracle", "java"), + }, + }, { logicalFixture: "java-graal-openjdk/17.0.3+7-jvmci-22.1-b06/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index d99e16bdf57a..0163659aac93 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -93,7 +93,7 @@ func DefaultClassifiers() []Classifier { // [NUL]openjdk[NUL]java[NUL]1.8[NUL]1.8.0_352-b08[NUL] // Equivalent to the following regexp with lookahead support: // (?m)\x00openjdk\x00java\x00(?P[0-9]+[.0-9]*)\x00(?P[0-9]+[.0-9]*) (?P[0-9]+[^-\x00]+(-(?!jvmci)[^-\x00]+)+) - `(?m)\x00openjdk\x00java\x00(?P[0-9]+[.0-9]*)\x00(?P[0-9]+[^-\s]+(-([^-j\x00][^-\x00]?|[^-\x00][^-v\x00][^-\x00]?|[^-\x00][^-\x00][^-m\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-c\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-\x00][^-i\s].?|[^-\x00]{6,}))+)\x00`, + `(?m)\x00openjdk\x00java\x00(?P[0-9]+[.0-9]*)\x00(?P[0-9]+[^-\s\x00]+(-([^-j\x00][^-\x00]?|[^-\x00][^-v\x00][^-\x00]?|[^-\x00][^-\x00][^-m\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-c\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-\x00][^-i\s].?|[^-\x00]{6,}))+)\x00`, ), FileContentsVersionMatcher( `(?m)\x00(?P[0-9]+[.0-9]*)\x00+(?P[0-9]+[^-\s]+(-([^-j\x00][^-\x00]?|[^-\x00][^-v\x00][^-\x00]?|[^-\x00][^-\x00][^-m\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-c\x00][^-\x00]?|[^-\x00][^-\x00][^-\x00][^-\x00][^-i\s].?|[^-\x00]{6,}))+)\x00+openjdk\x00java`, diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-arm64-eclipse/11.0.22/linux-arm64/java b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-arm64-eclipse/11.0.22/linux-arm64/java new file mode 100644 index 000000000000..411aa4706efb Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-arm64-eclipse/11.0.22/linux-arm64/java differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-eclipse/11.0.22/linux-amd64/java b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-eclipse/11.0.22/linux-amd64/java new file mode 100644 index 000000000000..292799f0d5b0 Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/java-jre-openjdk-eclipse/11.0.22/linux-amd64/java differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/config.yaml b/syft/pkg/cataloger/binary/test-fixtures/config.yaml index 07f17882d9f4..ec0f658081b9 100644 --- a/syft/pkg/cataloger/binary/test-fixtures/config.yaml +++ b/syft/pkg/cataloger/binary/test-fixtures/config.yaml @@ -203,6 +203,22 @@ from-images: paths: - /usr/lib/jvm/java-11-amazon-corretto/bin/java + - name: java-jre-openjdk-eclipse + version: 11.0.22 + images: + - ref: eclipse-temurin:11.0.22_7-jre@sha256:137960b9ec016cddeb366b7137546d37207d0f284f9492c23abf16a9c171dd51 + platform: linux/amd64 + paths: + - /opt/java/openjdk/bin/java + + - name: java-jre-openjdk-arm64-eclipse + version: 11.0.22 + images: + - ref: eclipse-temurin:11.0.22_7-jre@sha256:9bb82e8801e12e5377222fde83b5c91d87dc16f76c89e9f8affa678208f56797 + platform: linux/arm64 + paths: + - /opt/java/openjdk/bin/java + - name: java-graal-openjdk version: 17.0.3+7-jvmci-22.1-b06 images: