From c5c14548485dc2a656c60a4805433f3345621772 Mon Sep 17 00:00:00 2001 From: kyounghoonJang Date: Thu, 30 Oct 2025 00:41:27 +0900 Subject: [PATCH] feat(java): Add support for .far (Feature Archive) files (#4193) * feat(java): add support for .far archivesEnables the Java cataloger to recognize and catalog dependencies within .far files, which are used in Apache Sling applications. Signed-off-by: Kyounghoon Jang * feat(java): Add tests for .far (Feature Archive) file support Signed-off-by: Kyounghoon Jang --------- Signed-off-by: Kyounghoon Jang Signed-off-by: Alex Goodman Co-authored-by: Alex Goodman --- syft/pkg/cataloger/java/archive_parser.go | 1 + syft/pkg/cataloger/java/cataloger_test.go | 1 + .../java/test-fixtures/glob-paths/java-archives/example.far | 1 + 3 files changed, 3 insertions(+) create mode 100644 syft/pkg/cataloger/java/test-fixtures/glob-paths/java-archives/example.far diff --git a/syft/pkg/cataloger/java/archive_parser.go b/syft/pkg/cataloger/java/archive_parser.go index 5e3d188a1..af09bb616 100644 --- a/syft/pkg/cataloger/java/archive_parser.go +++ b/syft/pkg/cataloger/java/archive_parser.go @@ -37,6 +37,7 @@ var archiveFormatGlobs = []string{ "**/*.jpi", "**/*.hpi", "**/*.kar", + "**/*.far", "**/*.lpkg", // Zip-compressed package used to deploy applications // (aka plugins) to Liferay Portal server. Those files contains .JAR(s) and a .PROPERTIES file, the latter // has information about the application and installation requirements. diff --git a/syft/pkg/cataloger/java/cataloger_test.go b/syft/pkg/cataloger/java/cataloger_test.go index b5acbe4a9..f24a2744a 100644 --- a/syft/pkg/cataloger/java/cataloger_test.go +++ b/syft/pkg/cataloger/java/cataloger_test.go @@ -29,6 +29,7 @@ func Test_ArchiveCataloger_Globs(t *testing.T) { "java-archives/example.kar", "java-archives/example.jpi", "java-archives/example.hpi", + "java-archives/example.far", "java-archives/example.lpkg", "java-archives/example.rar", "archives/example.zip", diff --git a/syft/pkg/cataloger/java/test-fixtures/glob-paths/java-archives/example.far b/syft/pkg/cataloger/java/test-fixtures/glob-paths/java-archives/example.far new file mode 100644 index 000000000..8944cbcc0 --- /dev/null +++ b/syft/pkg/cataloger/java/test-fixtures/glob-paths/java-archives/example.far @@ -0,0 +1 @@ +example archive