From e1928ff9c82b9aa903e285194f0fb518078e560b Mon Sep 17 00:00:00 2001 From: Sergej Dechand Date: Sat, 20 Dec 2025 10:48:44 +0100 Subject: [PATCH 1/3] Don't treat forName (and similar) as arbitrary execution as in Go's reflect.Value.Call --- .gitignore | 3 +- .idea/encodings.xml | 6 - .../serj/jcapslock/agent/PolicyChecker.java | 11 +- .../PolicyEnforcementTest.java | 4 +- .../jcapslock/snapshot/CapabilityDiffer.java | 29 +- .../interesting/openjdk-sec-manager.cm | 15 +- .../snapshot/CapabilityDifferTest.java | 2 +- .../compress-test/.capslock/snapshot.json | 2062 ++++------------- .../compresstest}/CompressExample.java | 2 +- .../examples/compresstest}/ProcessRunner.java | 36 +- examples/quick-test/.capslock/snapshot.json | 13 - 11 files changed, 551 insertions(+), 1632 deletions(-) delete mode 100644 .idea/encodings.xml rename agent/src/test/java/com/github/serj/jcapslock/{agent => policy}/PolicyEnforcementTest.java (90%) rename examples/compress-test/src/main/java/com/{example => github/serj/jcapslock/examples/compresstest}/CompressExample.java (99%) rename examples/compress-test/src/main/java/com/{example => github/serj/jcapslock/examples/compresstest}/ProcessRunner.java (87%) diff --git a/.gitignore b/.gitignore index 5f27e7e..b924356 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ target/ .idea/compiler.xml .idea/libraries/ .idea/artifacts/ +.idea/encodings.xml # Sensitive or high-churn files .idea/dataSources/ @@ -101,4 +102,4 @@ examples/**/invoker.properties ### Internal development files ### CLAUDE.md QILIN_PROGRESS.md -.claude/ \ No newline at end of file +.claude/ diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 97626ba..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/agent/src/main/java/com/github/serj/jcapslock/agent/PolicyChecker.java b/agent/src/main/java/com/github/serj/jcapslock/agent/PolicyChecker.java index ce72d56..5493df0 100644 --- a/agent/src/main/java/com/github/serj/jcapslock/agent/PolicyChecker.java +++ b/agent/src/main/java/com/github/serj/jcapslock/agent/PolicyChecker.java @@ -16,10 +16,8 @@ public class PolicyChecker { /** * Reentrancy guard to prevent infinite recursion when instrumented methods * (like System.getProperty, Thread.getStackTrace) are called from within check(). - * NOTE: Cannot use ThreadLocal.withInitial(() -> false) because lambda creation - * triggers instrumented methods before IN_CHECK is initialized. */ - private static final ThreadLocal IN_CHECK = new ThreadLocal() { + private static final ThreadLocal IN_CHECK = new ThreadLocal<>() { @Override protected Boolean initialValue() { return Boolean.FALSE; @@ -68,15 +66,16 @@ private static void doCheck(String capability) { } } - private static final String POLICY_CHECKER_CLASS = PolicyChecker.class.getName(); + /** Prefix for excluding all agent package classes from capability checks */ + private static final String AGENT_PACKAGE_PREFIX = PolicyChecker.class.getPackageName() + "."; private static List collectAppFrames() { StackTraceElement[] stack = Thread.currentThread().getStackTrace(); List appFrames = new ArrayList<>(); for (int i = 2; i < stack.length; i++) { String className = stack[i].getClassName(); - // Filter out JDK packages and PolicyChecker itself (to avoid self-reference in logs) - if (!JavaUtils.isJdkPackage(className) && !className.equals(POLICY_CHECKER_CLASS)) { + // Filter out JDK packages and agent classes (to avoid self-reference and recursion) + if (!JavaUtils.isJdkPackage(className) && !className.startsWith(AGENT_PACKAGE_PREFIX)) { appFrames.add(stack[i]); } } diff --git a/agent/src/test/java/com/github/serj/jcapslock/agent/PolicyEnforcementTest.java b/agent/src/test/java/com/github/serj/jcapslock/policy/PolicyEnforcementTest.java similarity index 90% rename from agent/src/test/java/com/github/serj/jcapslock/agent/PolicyEnforcementTest.java rename to agent/src/test/java/com/github/serj/jcapslock/policy/PolicyEnforcementTest.java index ac47ff4..0389b76 100644 --- a/agent/src/test/java/com/github/serj/jcapslock/agent/PolicyEnforcementTest.java +++ b/agent/src/test/java/com/github/serj/jcapslock/policy/PolicyEnforcementTest.java @@ -1,6 +1,7 @@ -package com.github.serj.jcapslock.agent; +package com.github.serj.jcapslock.policy; import capslock.proto.CapabilityOuterClass.Capability; +import com.github.serj.jcapslock.agent.PolicyChecker; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -9,6 +10,7 @@ /** * Tests for PolicyChecker enforcement. + * This test is outside the agent package so it's not excluded from capability checks. */ class PolicyEnforcementTest { diff --git a/core/src/main/java/com/github/serj/jcapslock/snapshot/CapabilityDiffer.java b/core/src/main/java/com/github/serj/jcapslock/snapshot/CapabilityDiffer.java index 819edf2..46089ca 100644 --- a/core/src/main/java/com/github/serj/jcapslock/snapshot/CapabilityDiffer.java +++ b/core/src/main/java/com/github/serj/jcapslock/snapshot/CapabilityDiffer.java @@ -153,25 +153,22 @@ public String formatDiff(DiffResult diff) { } } - if (!diff.addedCapabilities().isEmpty()) { - sb.append("\nNew capabilities:\n"); - for (Map.Entry> entry : diff.addedCapabilities().entrySet()) { - String pkg = entry.getKey(); - for (Capability cap : entry.getValue()) { - sb.append(" + ").append(cap.name()) - .append(" in ").append(pkg).append("\n"); - } + // Use same wording as Go CapsLock (compare.go) + for (Map.Entry> entry : diff.addedCapabilities().entrySet()) { + String pkg = entry.getKey(); + for (Capability cap : entry.getValue()) { + sb.append("Package ").append(pkg) + .append(" has new capability ").append(cap.name()) + .append(" compared to the baseline.\n"); } } - if (!diff.removedCapabilities().isEmpty()) { - sb.append("\nRemoved capabilities:\n"); - for (Map.Entry> entry : diff.removedCapabilities().entrySet()) { - String pkg = entry.getKey(); - for (Capability cap : entry.getValue()) { - sb.append(" - ").append(cap.name()) - .append(" in ").append(pkg).append("\n"); - } + for (Map.Entry> entry : diff.removedCapabilities().entrySet()) { + String pkg = entry.getKey(); + for (Capability cap : entry.getValue()) { + sb.append("Package ").append(pkg) + .append(" no longer has capability ").append(cap.name()) + .append(" which was in the baseline.\n"); } } diff --git a/core/src/main/resources/interesting/openjdk-sec-manager.cm b/core/src/main/resources/interesting/openjdk-sec-manager.cm index a2844e4..0d12e82 100644 --- a/core/src/main/resources/interesting/openjdk-sec-manager.cm +++ b/core/src/main/resources/interesting/openjdk-sec-manager.cm @@ -302,20 +302,17 @@ method java.awt.Desktop.print CAPABILITY_EXEC # ===== CAPABILITY_ARBITRARY_EXECUTION ===== # From: java.lang.ClassLoader (checkCreateClassLoader) +# Note: Only methods that load/define new code are ARBITRARY_EXECUTION. +# Accessors (getParent, get*ClassLoader) and Class.forName are REFLECT, +# similar to Go CapsLock treating reflect.Value.Call as REFLECT, not ARBITRARY. method java.lang.ClassLoader. CAPABILITY_ARBITRARY_EXECUTION method java.lang.ClassLoader.defineClass CAPABILITY_ARBITRARY_EXECUTION -method java.lang.ClassLoader.getParent CAPABILITY_ARBITRARY_EXECUTION -method java.lang.ClassLoader.getPlatformClassLoader CAPABILITY_ARBITRARY_EXECUTION -method java.lang.ClassLoader.getSystemClassLoader CAPABILITY_ARBITRARY_EXECUTION # From: java.net.URLClassLoader method java.net.URLClassLoader. CAPABILITY_ARBITRARY_EXECUTION method java.net.URLClassLoader.newInstance CAPABILITY_ARBITRARY_EXECUTION method java.net.URLClassLoader.addURL CAPABILITY_ARBITRARY_EXECUTION -# From: java.lang.Class.forName (with custom classloader) -method java.lang.Class.forName CAPABILITY_ARBITRARY_EXECUTION - # From: java.lang.invoke.MethodHandles.Lookup (RuntimePermission defineClass) method java.lang.invoke.MethodHandles$Lookup.defineClass CAPABILITY_ARBITRARY_EXECUTION method java.lang.invoke.MethodHandles$Lookup.defineHiddenClass CAPABILITY_ARBITRARY_EXECUTION @@ -399,6 +396,12 @@ method java.lang.Class.newInstance CAPABILITY_REFLECT method java.lang.Class.getClassLoader CAPABILITY_REFLECT method java.lang.Class.forName CAPABILITY_REFLECT +# From: java.lang.ClassLoader (accessors only - not code loading) +# Similar to Go's reflect.Value.Call - works with existing classpath, not arbitrary code +method java.lang.ClassLoader.getParent CAPABILITY_REFLECT +method java.lang.ClassLoader.getPlatformClassLoader CAPABILITY_REFLECT +method java.lang.ClassLoader.getSystemClassLoader CAPABILITY_REFLECT + # From: java.lang.reflect.AccessibleObject (checkPermission ReflectPermission) method java.lang.reflect.AccessibleObject.setAccessible CAPABILITY_REFLECT method java.lang.reflect.AccessibleObject.trySetAccessible CAPABILITY_REFLECT diff --git a/core/src/test/java/com/github/serj/jcapslock/snapshot/CapabilityDifferTest.java b/core/src/test/java/com/github/serj/jcapslock/snapshot/CapabilityDifferTest.java index 389786b..72681d1 100644 --- a/core/src/test/java/com/github/serj/jcapslock/snapshot/CapabilityDifferTest.java +++ b/core/src/test/java/com/github/serj/jcapslock/snapshot/CapabilityDifferTest.java @@ -135,7 +135,7 @@ void testFormatDiff() { String formatted = differ.formatDiff(diff); assertNotNull(formatted); - assertTrue(formatted.contains("New capabilities")); + assertTrue(formatted.contains("has new capability")); assertTrue(formatted.contains("CAPABILITY_NETWORK")); assertTrue(formatted.contains("com.example:lib:1.0")); } diff --git a/examples/compress-test/.capslock/snapshot.json b/examples/compress-test/.capslock/snapshot.json index 75f41bb..3cb5fd7 100644 --- a/examples/compress-test/.capslock/snapshot.json +++ b/examples/compress-test/.capslock/snapshot.json @@ -1,262 +1,178 @@ { "capability_info": [{ - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte org.apache.commons.io.input.TeeInputStream.read org.apache.commons.compress.archivers.zip.ZipSplitOutputStream.write org.apache.commons.compress.archivers.zip.ZipSplitOutputStream.openNewSplitSegment java.nio.file.Files.move", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.input.TeeInputStream.read", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipSplitOutputStream.write", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipSplitOutputStream.openNewSplitSegment", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "java.nio.file.Files.move", - "package": "java.nio.file" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.compressFileGzip java.nio.file.Files.newInputStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip java.nio.file.Files.newInputStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.newInputStream", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.compressFileZstd java.nio.file.Files.newInputStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd java.nio.file.Files.newInputStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.newInputStream", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.createTarArchive java.nio.file.Files.newOutputStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive java.nio.file.Files.copy", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "java.nio.file.Files.newOutputStream", + "name": "java.nio.file.Files.copy", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.createZipArchive java.nio.file.Files.newOutputStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive java.nio.file.Files.copy", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "java.nio.file.Files.newOutputStream", + "name": "java.nio.file.Files.copy", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.extractArchive java.nio.file.Files.createDirectories", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive java.nio.file.Files.createDirectories", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.createDirectories", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$0 java.nio.file.Files.isRegularFile", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.lambda$createTarArchive$0 java.nio.file.Files.isRegularFile", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$0", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.lambda$createTarArchive$0", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.isRegularFile", "package": "java.nio.file" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 java.nio.file.Files.copy", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "java.nio.file.Files.copy", - "package": "java.nio.file" - }] - }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$0 java.nio.file.Files.isRegularFile", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.lambda$createZipArchive$0 java.nio.file.Files.isRegularFile", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$0", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.lambda$createZipArchive$0", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.isRegularFile", "package": "java.nio.file" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 java.nio.file.Files.copy", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "java.nio.file.Files.copy", - "package": "java.nio.file" - }] - }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.listArchiveContents java.nio.file.Files.newInputStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents java.nio.file.Files.newInputStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.newInputStream", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.CompressExample.main java.nio.file.Files.createDirectories", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main java.nio.file.Files.createDirectories", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.nio.file.Files.createDirectories", "package": "java.nio.file" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_FILES", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte org.apache.commons.io.input.QueueInputStream.read org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", - "package": "org.apache.commons.compress.utils" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.input.QueueInputStream.read", - "package": "org.apache.commons.io.input" + "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", + "package": "org.apache.commons.compress.archivers.tar" }, { "name": "org.apache.commons.io.function.UncheckedIOIterator.next", "package": "org.apache.commons.io.function" @@ -277,14 +193,14 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.compressFileGzip org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", "package": "org.apache.commons.compress.archivers.tar" @@ -308,17 +224,14 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.compressFileZstd org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.io.function.UncheckedIOIterator.next", "package": "org.apache.commons.io.function" @@ -339,32 +252,14 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.io.function.UncheckedIOIterator.next", "package": "org.apache.commons.io.function" @@ -385,31 +280,22 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeCentralDirectoryInChunks org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.input.ChecksumInputStream$Builder.get org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeCentralDirectoryInChunks", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.function.UncheckedIOIterator.next", - "package": "org.apache.commons.io.function" + "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", + "package": "org.apache.commons.compress.archivers.arj" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" + "name": "org.apache.commons.io.input.ChecksumInputStream$Builder.get", + "package": "org.apache.commons.io.input" }, { - "name": "org.apache.commons.io.input.XmlStreamReader$Builder.get", + "name": "org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e", "package": "org.apache.commons.io.input" }, { "name": "org.apache.commons.io.build.AbstractStreamBuilder.getInputStream", @@ -422,14 +308,14 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.extractArchive org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.input.ChecksumInputStream$Builder.get org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.input.ChecksumInputStream$Builder.get org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", "package": "org.apache.commons.compress.archivers.arj" @@ -450,32 +336,17 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.closeArchiveEntry org.apache.commons.compress.utils.FixedLengthBlockOutputStream.flushBlock org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel.write org.apache.commons.io.IOUtils.closeQuietly org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.closeArchiveEntry", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.utils.FixedLengthBlockOutputStream.flushBlock", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.FixedLengthBlockOutputStream.writeBlock", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.FixedLengthBlockOutputStream$BufferAtATimeOutputChannel.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.IOUtils.closeQuietly", - "package": "org.apache.commons.io" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.io.function.UncheckedIOIterator.next", "package": "org.apache.commons.io.function" @@ -496,35 +367,17 @@ "package": "java.net" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.jar.JarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.JarMarker.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte org.apache.commons.io.input.QueueInputStream.read org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.jar.JarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.jar" - }, { - "name": "org.apache.commons.compress.archivers.zip.JarMarker.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.input.QueueInputStream.read", - "package": "org.apache.commons.io.input" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.io.function.UncheckedIOIterator.next", "package": "org.apache.commons.io.function" @@ -545,79 +398,26 @@ "package": "java.net" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.input.ChecksumInputStream$Builder.get org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" - }, { - "name": "org.apache.commons.io.input.ChecksumInputStream$Builder.get", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.build.AbstractStreamBuilder.getInputStream", - "package": "org.apache.commons.io.build" - }, { - "name": "org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream", - "package": "org.apache.commons.io.build" - }, { - "name": "java.net.URL.openStream", - "package": "java.net" - }] - }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.CompressExample.main com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.input.ChecksumInputStream$Builder.get org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main org.apache.commons.lang3.exception.ContextedException.getMessage org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage org.apache.commons.io.function.UncheckedIOIterator.next org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" - }, { - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" - }, { - "name": "org.apache.commons.io.input.ChecksumInputStream$Builder.get", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.input.ChecksumInputStream.\u003cinit\u003e", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.build.AbstractStreamBuilder.getInputStream", - "package": "org.apache.commons.io.build" - }, { - "name": "org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream", - "package": "org.apache.commons.io.build" + "name": "org.apache.commons.lang3.exception.ContextedException.getMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "java.net.URL.openStream", - "package": "java.net" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" + "name": "org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" + "name": "org.apache.commons.io.function.UncheckedIOIterator.next", + "package": "org.apache.commons.io.function" }, { "name": "org.apache.commons.io.function.Uncheck.get", "package": "org.apache.commons.io.function" @@ -635,107 +435,86 @@ "package": "java.net" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_RUNTIME", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.io.input.XmlStreamReader$Builder.get", - "package": "org.apache.commons.io.input" + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", + "package": "com.github.luben.zstd" }, { - "name": "org.apache.commons.io.build.AbstractStreamBuilder.getInputStream", - "package": "org.apache.commons.io.build" + "name": "org.apache.commons.compress.utils.CountingOutputStream.write", + "package": "org.apache.commons.compress.utils" }, { - "name": "org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream", - "package": "org.apache.commons.io.build" + "name": "org.apache.commons.io.output.QueueOutputStream.write", + "package": "org.apache.commons.io.output" }, { - "name": "java.net.URL.openStream", - "package": "java.net" + "name": "java.lang.Thread.interrupt", + "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_NETWORK", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.io.input.XmlStreamReader$Builder.get org.apache.commons.io.build.AbstractStreamBuilder.getInputStream org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream java.net.URL.openStream", - "package_dir": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_RUNTIME", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd org.apache.commons.io.input.UnsynchronizedFilterInputStream.read org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" - }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", + "name": "org.apache.commons.io.input.UnsynchronizedFilterInputStream.read", "package": "org.apache.commons.io.input" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.io.input.XmlStreamReader$Builder.get", + "name": "org.apache.commons.io.input.QueueInputStream.read", "package": "org.apache.commons.io.input" }, { - "name": "org.apache.commons.io.build.AbstractStreamBuilder.getInputStream", - "package": "org.apache.commons.io.build" - }, { - "name": "org.apache.commons.io.build.AbstractOrigin$URIOrigin.getInputStream", - "package": "org.apache.commons.io.build" - }, { - "name": "java.net.URL.openStream", - "package": "java.net" + "name": "java.lang.Thread.interrupt", + "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry", + "package": "org.apache.commons.compress.archivers.tar" }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" + "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord", + "package": "org.apache.commons.compress.archivers.tar" }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", + "name": "org.apache.commons.compress.utils.CountingOutputStream.write", "package": "org.apache.commons.compress.utils" }, { - "name": "org.apache.commons.io.input.QueueInputStream.read", - "package": "org.apache.commons.io.input" + "name": "org.apache.commons.io.output.QueueOutputStream.write", + "package": "org.apache.commons.io.output" }, { "name": "java.lang.Thread.interrupt", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" + }, { + "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", + "package": "org.apache.commons.compress.archivers.zip" + }, { + "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", + "package": "org.apache.commons.compress.archivers.zip" }, { "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" @@ -750,173 +529,67 @@ "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.compressFileZstd org.apache.commons.io.input.TeeInputStream.read org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.input.TeeInputStream.read", - "package": "org.apache.commons.io.input" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry", + "package": "org.apache.commons.compress.archivers.ar" }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry", + "package": "org.apache.commons.compress.archivers.ar" + }, { + "name": "org.apache.commons.io.input.QueueInputStream.read", + "package": "org.apache.commons.io.input" }, { "name": "java.lang.Thread.interrupt", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish org.apache.commons.codec.binary.BaseNCodecOutputStream.flush org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.codec.binary.BaseNCodecOutputStream.flush", - "package": "org.apache.commons.codec.binary" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry", + "package": "org.apache.commons.compress.archivers.ar" }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry", + "package": "org.apache.commons.compress.archivers.ar" }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" + "name": "org.apache.commons.io.input.QueueInputStream.read", + "package": "org.apache.commons.io.input" }, { "name": "java.lang.Thread.interrupt", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipLong.getBytes org.apache.commons.compress.archivers.zip.ZipLong.putLong org.apache.commons.compress.utils.ByteUtils.toLittleEndian org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.getBytes", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.putLong", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.toLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.extractArchive com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader org.apache.commons.compress.archivers.zip.ZipLong.putLong org.apache.commons.compress.utils.ByteUtils.toLittleEndian org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.putLong", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.toLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.IOUtils.skip org.apache.commons.io.input.QueueInputStream.read java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextEntry", + "package": "org.apache.commons.compress.archivers.ar" }, { - "name": "org.apache.commons.io.IOUtils.skip", - "package": "org.apache.commons.io" + "name": "org.apache.commons.compress.archivers.ar.ArArchiveInputStream.getNextArEntry", + "package": "org.apache.commons.compress.archivers.ar" }, { "name": "org.apache.commons.io.input.QueueInputStream.read", "package": "org.apache.commons.io.input" @@ -925,246 +598,61 @@ "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.CompressExample.main com.example.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" - }, { - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish org.apache.commons.codec.binary.BaseNCodecOutputStream.flush org.apache.commons.compress.utils.CountingOutputStream.write org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" - }, { - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.codec.binary.BaseNCodecOutputStream.flush", - "package": "org.apache.commons.codec.binary" - }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "java.lang.Thread.interrupt", + "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream$Builder.get org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream.\u003cinit\u003e org.tukaani.xz.LZMAOutputStream.\u003cinit\u003e org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream$Builder.get", - "package": "org.apache.commons.compress.compressors.lzma" - }, { - "name": "org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream.\u003cinit\u003e", - "package": "org.apache.commons.compress.compressors.lzma" - }, { - "name": "org.tukaani.xz.LZMAOutputStream.\u003cinit\u003e", - "package": "org.tukaani.xz" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "java.lang.Thread.interrupt", + "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_RUNTIME", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream$Builder.get org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream.\u003cinit\u003e org.tukaani.xz.LZMAOutputStream.\u003cinit\u003e org.apache.commons.io.output.QueueOutputStream.write java.lang.Thread.interrupt", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" - }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream$Builder.get", - "package": "org.apache.commons.compress.compressors.lzma" - }, { - "name": "org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream.\u003cinit\u003e", - "package": "org.apache.commons.compress.compressors.lzma" - }, { - "name": "org.tukaani.xz.LZMAOutputStream.\u003cinit\u003e", - "package": "org.tukaani.xz" - }, { - "name": "org.apache.commons.io.output.QueueOutputStream.write", - "package": "org.apache.commons.io.output" - }, { - "name": "java.lang.Thread.interrupt", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte org.apache.commons.io.input.ProxyInputStream.read org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.input.ProxyInputStream.read", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.compressFileGzip org.apache.commons.io.output.DemuxOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" - }, { - "name": "org.apache.commons.io.output.DemuxOutputStream.close", - "package": "org.apache.commons.io.output" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.compressFileZstd org.apache.commons.io.input.ProxyInputStream.read org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.ProxyInputStream.read", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.System.getProperty", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.System.getProperty", + "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish org.apache.commons.io.output.DemuxOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip org.apache.commons.io.output.ProxyOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.io.output.DemuxOutputStream.close", + "name": "org.apache.commons.io.output.ProxyOutputStream.close", "package": "org.apache.commons.io.output" }, { "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", @@ -1174,618 +662,176 @@ "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.extractArchive org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveEntry.\u003cinit\u003e org.apache.commons.lang3.SystemProperties.getUserName org.apache.commons.lang3.SystemProperties.getProperty java.lang.System.getProperty", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveEntry.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.lang3.SystemProperties.getUserName", - "package": "org.apache.commons.lang3" - }, { - "name": "org.apache.commons.lang3.SystemProperties.getProperty", - "package": "org.apache.commons.lang3" - }, { - "name": "java.lang.System.getProperty", - "package": "java.lang" - }] - }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader org.apache.commons.compress.archivers.zip.ZipLong.putLong org.apache.commons.compress.utils.ByteUtils.toLittleEndian org.apache.commons.io.output.ProxyOutputStream.write org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd org.apache.commons.io.output.ProxyOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.putLong", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.utils.ByteUtils.toLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.io.output.ProxyOutputStream.write", + "name": "org.apache.commons.io.output.ProxyOutputStream.close", "package": "org.apache.commons.io.output" }, { "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", "package": "org.apache.commons.io" }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.CompressExample.main com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" - }, { - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", - "package": "org.apache.commons.compress.archivers.arj" - }, { - "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", - "package": "org.apache.commons.io" - }, { - "name": "java.lang.System.lineSeparator", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" - }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "java.lang.Runtime.getRuntime", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "java.lang.Runtime.getRuntime", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_READ_SYSTEM_STATE", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" - }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "java.lang.Runtime.getRuntime", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" - }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.compressFileZstd com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.extractArchive com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord org.apache.commons.compress.utils.CountingOutputStream.write com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader org.apache.commons.compress.archivers.zip.ZipLong.putLong org.apache.commons.compress.utils.ByteUtils.toLittleEndian com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.putLong", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils.toLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.listArchiveContents com.github.luben.zstd.ZstdInputStreamNoFinalizer.close com.github.luben.zstd.ZstdInputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", + "name": "java.lang.System.lineSeparator", "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.CompressExample.main org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable java.lang.Class.forName", - "package_dir": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" + "name": "org.apache.commons.io.LineIterator.hasNext", + "package": "org.apache.commons.io" }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" + "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", + "package": "org.apache.commons.io" }, { - "name": "java.lang.Class.forName", + "name": "java.lang.System.lineSeparator", "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable java.lang.Class.forName", - "package_dir": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" + "name": "org.apache.commons.io.LineIterator.hasNext", + "package": "org.apache.commons.io" }, { - "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable", - "package": "org.apache.commons.compress.compressors.zstandard" + "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", + "package": "org.apache.commons.io" }, { - "name": "java.lang.Class.forName", + "name": "java.lang.System.lineSeparator", "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.archivers.zip.ZipFile$Builder.get org.apache.commons.compress.archivers.zip.ZipFile.\u003cinit\u003e org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.io.output.ProxyOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" - }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.io.output.ProxyOutputStream.close", + "package": "org.apache.commons.io.output" }, { - "name": "org.apache.commons.io.IOUtils.closeQuietly", + "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", + "name": "java.lang.System.lineSeparator", "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.example.ProcessRunner.main org.apache.commons.lang3.exception.ContextedException.getMessage org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load java.lang.Class.forName", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" - }, { - "name": "org.apache.commons.lang3.exception.ContextedException.getMessage", - "package": "org.apache.commons.lang3.exception" - }, { - "name": "org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage", - "package": "org.apache.commons.lang3.exception" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage", - "package": "org.apache.commons.lang3.exception" - }, { - "name": "org.apache.commons.io.LineIterator.hasNext", - "package": "org.apache.commons.io" + "name": "org.apache.commons.compress.archivers.arj.ArjArchiveInputStream.getNextEntry", + "package": "org.apache.commons.compress.archivers.arj" }, { - "name": "org.apache.commons.io.IOUtils.closeQuietly", + "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }, { - "name": "java.lang.Class.forName", + "name": "java.lang.System.lineSeparator", "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e org.apache.commons.compress.archivers.zip.ZipShort.getValue org.apache.commons.compress.utils.ByteUtils.fromLittleEndian org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte com.github.luben.zstd.ZstdInputStreamNoFinalizer.read com.github.luben.zstd.ZstdInputStreamNoFinalizer.readInternal com.github.luben.zstd.Zstd.errCorruptionDetected", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.io.output.ProxyOutputStream.close org.apache.commons.io.IOUtils.\u003cclinit\u003e java.lang.System.lineSeparator", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList.\u003cclinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipShort.getValue", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.utils.ByteUtils.fromLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "org.apache.commons.compress.utils.ByteUtils$InputStreamByteSupplier.getAsByte", - "package": "org.apache.commons.compress.utils" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.read", - "package": "com.github.luben.zstd" + "name": "org.apache.commons.io.output.ProxyOutputStream.close", + "package": "org.apache.commons.io.output" }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.readInternal", - "package": "com.github.luben.zstd" + "name": "org.apache.commons.io.IOUtils.\u003cclinit\u003e", + "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.Zstd.errCorruptionDetected", - "package": "com.github.luben.zstd" + "name": "java.lang.System.lineSeparator", + "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.Zstd.isError", - "package": "com.github.luben.zstd" + "name": "java.lang.Runtime.getRuntime", + "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.compressFileZstd com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", - "package": "com.github.luben.zstd" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.Zstd.isError", - "package": "com.github.luben.zstd" + "name": "java.lang.Runtime.getRuntime", + "package": "java.lang" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "package_name": "com.github.serj.jcapslock.examples.compresstest", + "capability": "CAPABILITY_READ_SYSTEM_STATE", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.getRuntime", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", - "package": "com.github.luben.zstd" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.Zstd.isError", - "package": "com.github.luben.zstd" + "name": "java.lang.Runtime.getRuntime", + "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" @@ -1794,14 +840,14 @@ "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.extractArchive com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" @@ -1810,161 +856,134 @@ "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord org.apache.commons.compress.utils.CountingOutputStream.write com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord", - "package": "org.apache.commons.compress.archivers.tar" + "name": "org.apache.commons.io.LineIterator.hasNext", + "package": "org.apache.commons.io" }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", - "package": "org.apache.commons.compress.utils" + "name": "org.apache.commons.io.IOUtils.closeQuietly", + "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader org.apache.commons.compress.archivers.zip.ZipLong.putLong org.apache.commons.compress.utils.ByteUtils.toLittleEndian com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeLocalFileHeader", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.createLocalFileHeader", + "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", "package": "org.apache.commons.compress.archivers.zip" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipLong.putLong", + "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", "package": "org.apache.commons.compress.archivers.zip" }, { - "name": "org.apache.commons.compress.utils.ByteUtils.toLittleEndian", - "package": "org.apache.commons.compress.utils" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.write", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.listArchiveContents com.github.luben.zstd.ZstdInputStreamNoFinalizer.close com.github.luben.zstd.ZstdInputStreamNoFinalizer.freeDStream", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.close", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { - "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.freeDStream", + "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.CompressExample.main com.example.CompressExample.compressFileGzip com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents com.github.luben.zstd.ZstdInputStreamNoFinalizer.close com.github.luben.zstd.ZstdInputStreamNoFinalizer.freeDStream", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", + "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { - "name": "com.github.luben.zstd.Zstd.isError", + "name": "com.github.luben.zstd.ZstdInputStreamNoFinalizer.freeDStream", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" - }, { - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.archivers.zip.ZipFile$Builder.get org.apache.commons.compress.archivers.zip.ZipFile.\u003cinit\u003e org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdDirectBufferCompressingStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile.\u003cinit\u003e", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.io.LineIterator.hasNext", + "package": "org.apache.commons.io" }, { "name": "org.apache.commons.io.IOUtils.closeQuietly", "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.ZstdDirectBufferCompressingStreamNoFinalizer.close", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_CGO", - "dep_path": "com.example.ProcessRunner.main org.apache.commons.lang3.exception.ContextedException.getMessage org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdDirectBufferCompressingStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main org.apache.commons.lang3.exception.ContextedException.getMessage org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage org.apache.commons.io.LineIterator.hasNext org.apache.commons.io.IOUtils.closeQuietly com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close com.github.luben.zstd.Zstd.isError", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.lang3.exception.ContextedException.getMessage", "package": "org.apache.commons.lang3.exception" @@ -1981,34 +1000,37 @@ "name": "org.apache.commons.io.IOUtils.closeQuietly", "package": "org.apache.commons.io" }, { - "name": "com.github.luben.zstd.ZstdDirectBufferCompressingStreamNoFinalizer.close", + "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.close", "package": "com.github.luben.zstd" }, { "name": "com.github.luben.zstd.Zstd.isError", "package": "com.github.luben.zstd" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.checkAvailableFormats org.apache.commons.compress.compressors.brotli.BrotliUtils.isBrotliCompressionAvailable org.apache.commons.compress.compressors.brotli.BrotliUtils.internalIsBrotliCompressionAvailable", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.checkAvailableFormats", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.compress.compressors.brotli.BrotliUtils.isBrotliCompressionAvailable", + "package": "org.apache.commons.compress.compressors.brotli" + }, { + "name": "org.apache.commons.compress.compressors.brotli.BrotliUtils.internalIsBrotliCompressionAvailable", + "package": "org.apache.commons.compress.compressors.brotli" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.compressFileGzip org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.compressFileGzip", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileGzip", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", "package": "org.apache.commons.compress.archivers.tar" @@ -2017,14 +1039,14 @@ "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.compressFileZstd org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.compressFileZstd", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.compressFileZstd", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", "package": "org.apache.commons.compress.archivers.tar" @@ -2033,121 +1055,56 @@ "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", - "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.createTarArchive org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e com.github.luben.zstd.util.Native.load", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", - "path": [{ - "name": "com.example.CompressExample.createTarArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.tar" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.flush", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.ZstdOutputStreamNoFinalizer.\u003cclinit\u003e", - "package": "com.github.luben.zstd" - }, { - "name": "com.github.luben.zstd.util.Native.load", - "package": "com.github.luben.zstd.util" - }] - }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.createZipArchive org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeCentralDirectoryInChunks org.apache.commons.compress.utils.ServiceLoaderIterator.next", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.createZipArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.writeCentralDirectoryInChunks", - "package": "org.apache.commons.compress.archivers.zip" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.utils.ServiceLoaderIterator.next", "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.extractArchive org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.extractArchive", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createZipArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.utils.ServiceLoaderIterator.next", "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.lambda$createTarArchive$1 org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord org.apache.commons.compress.utils.CountingOutputStream.write org.tukaani.xz.SimpleOutputStream.write org.tukaani.xz.SimpleOutputStream.\u003cclinit\u003e", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE_OPTIONAL", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", + "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.lambda$createTarArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.tar" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.extractArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.tar.TarArchiveOutputStream.writeRecord", + "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", "package": "org.apache.commons.compress.archivers.tar" }, { - "name": "org.apache.commons.compress.utils.CountingOutputStream.write", + "name": "org.apache.commons.compress.utils.ServiceLoaderIterator.next", "package": "org.apache.commons.compress.utils" - }, { - "name": "org.tukaani.xz.SimpleOutputStream.write", - "package": "org.tukaani.xz" - }, { - "name": "org.tukaani.xz.SimpleOutputStream.\u003cclinit\u003e", - "package": "org.tukaani.xz" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.lambda$createZipArchive$1 org.apache.commons.compress.archivers.jar.JarArchiveOutputStream.putArchiveEntry org.apache.commons.compress.archivers.zip.ZipArchiveEntry.addAsFirstExtraField org.apache.commons.lang3.ArrayUtils.\u003cclinit\u003e", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.CompressExample.lambda$createZipArchive$1", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.jar.JarArchiveOutputStream.putArchiveEntry", - "package": "org.apache.commons.compress.archivers.jar" - }, { - "name": "org.apache.commons.compress.archivers.zip.ZipArchiveEntry.addAsFirstExtraField", - "package": "org.apache.commons.compress.archivers.zip" - }, { - "name": "org.apache.commons.lang3.ArrayUtils.\u003cclinit\u003e", - "package": "org.apache.commons.lang3" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.listArchiveContents org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.listArchiveContents", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.listArchiveContents", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "org.apache.commons.compress.archivers.tar.TarArchiveInputStream.close", "package": "org.apache.commons.compress.archivers.tar" @@ -2156,119 +1113,100 @@ "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.CompressExample.main com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.CompressExample.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" - }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package": "org.apache.commons.compress.archivers.zip" - }] - }, { - "package_name": "com.example", - "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.CompressExample.checkAvailableFormats org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package_dir": "com.example", - "capability_type": "CAPABILITY_TYPE_TRANSITIVE", - "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" - }, { - "name": "com.example.CompressExample.checkAvailableFormats", - "package": "com.example" + "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.isZstdCompressionAvailable", + "package": "org.apache.commons.compress.compressors.zstandard" }, { - "name": "org.apache.commons.compress.archivers.zip.ExtraFieldUtils.register", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.compress.compressors.zstandard.ZstdUtils.internalIsZstdCompressionAvailable", + "package": "org.apache.commons.compress.compressors.zstandard" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" - }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" + "name": "com.github.serj.jcapslock.examples.compresstest.CompressExample.createTarArchive", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_REFLECT", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand org.apache.commons.io.input.UncheckedBufferedReader.readLine org.apache.commons.io.function.Uncheck.get org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main org.apache.commons.lang3.exception.ContextedException.getMessage org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_TRANSITIVE", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "org.apache.commons.lang3.exception.ContextedException.getMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "org.apache.commons.io.input.UncheckedBufferedReader.readLine", - "package": "org.apache.commons.io.input" + "name": "org.apache.commons.lang3.exception.ContextedException.getFormattedExceptionMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "org.apache.commons.io.function.Uncheck.get", - "package": "org.apache.commons.io.function" + "name": "org.apache.commons.lang3.exception.DefaultExceptionContext.getFormattedExceptionMessage", + "package": "org.apache.commons.lang3.exception" }, { - "name": "org.apache.commons.compress.archivers.zip.ZipFile$Builder.get", - "package": "org.apache.commons.compress.archivers.zip" + "name": "org.apache.commons.compress.utils.ServiceLoaderIterator.next", + "package": "org.apache.commons.compress.utils" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_EXEC", - "dep_path": "com.example.ProcessRunner.compressAndExecute com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.compressAndExecute", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.compressAndExecute", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_EXEC", - "dep_path": "com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" }] }, { - "package_name": "com.example", + "package_name": "com.github.serj.jcapslock.examples.compresstest", "capability": "CAPABILITY_EXEC", - "dep_path": "com.example.ProcessRunner.main com.example.ProcessRunner.executeCommand java.lang.Runtime.exec", - "package_dir": "com.example", + "dep_path": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand java.lang.Runtime.exec", + "package_dir": "com.github.serj.jcapslock.examples.compresstest", "capability_type": "CAPABILITY_TYPE_DIRECT", "path": [{ - "name": "com.example.ProcessRunner.main", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.main", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { - "name": "com.example.ProcessRunner.executeCommand", - "package": "com.example" + "name": "com.github.serj.jcapslock.examples.compresstest.ProcessRunner.executeCommand", + "package": "com.github.serj.jcapslock.examples.compresstest" }, { "name": "java.lang.Runtime.exec", "package": "java.lang" diff --git a/examples/compress-test/src/main/java/com/example/CompressExample.java b/examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/CompressExample.java similarity index 99% rename from examples/compress-test/src/main/java/com/example/CompressExample.java rename to examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/CompressExample.java index fe7526c..d1a765b 100644 --- a/examples/compress-test/src/main/java/com/example/CompressExample.java +++ b/examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/CompressExample.java @@ -1,4 +1,4 @@ -package com.example; +package com.github.serj.jcapslock.examples.compresstest; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveInputStream; diff --git a/examples/compress-test/src/main/java/com/example/ProcessRunner.java b/examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/ProcessRunner.java similarity index 87% rename from examples/compress-test/src/main/java/com/example/ProcessRunner.java rename to examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/ProcessRunner.java index 4fa8db6..0307723 100644 --- a/examples/compress-test/src/main/java/com/example/ProcessRunner.java +++ b/examples/compress-test/src/main/java/com/github/serj/jcapslock/examples/compresstest/ProcessRunner.java @@ -1,44 +1,42 @@ -package com.example; +package com.github.serj.jcapslock.examples.compresstest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Path; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * Example class that executes external processes. * This should trigger CAPABILITY_EXEC detection directly in the project code. */ public class ProcessRunner { - + /** * Execute a system command and return its output. * This should trigger CAPABILITY_EXEC capability. */ public String executeCommand(String command) throws IOException, InterruptedException { Process process = Runtime.getRuntime().exec(command); - + // Read the output - StringBuilder output = new StringBuilder(); + String output; try (BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream()))) { - String line; - while ((line = reader.readLine()) != null) { - output.append(line).append("\n"); - } + output = reader.lines().map(line -> line + "\n").collect(Collectors.joining()); } - + // Wait for process to complete boolean finished = process.waitFor(30, TimeUnit.SECONDS); if (!finished) { process.destroyForcibly(); throw new IOException("Process timed out: " + command); } - - return output.toString(); + + return output; } - + /** * Example method that uses commons-compress indirectly but is never called. * This establishes a call path from project code to dependency capabilities. @@ -46,31 +44,31 @@ public String executeCommand(String command) throws IOException, InterruptedExce public void compressAndExecute(String directory) throws Exception { // First use commons-compress through CompressExample CompressExample compressor = new CompressExample(); - + // Check available formats - this triggers CAPABILITY_REFLECT in commons-compress compressor.checkAvailableFormats(); - + String archiveName = directory + ".tar.gz"; // This calls into commons-compress, making its capabilities reachable compressor.createTarArchive(Path.of(directory), Path.of(archiveName)); - + // Then execute a command on it (direct CAPABILITY_EXEC) executeCommand("ls -la " + archiveName); } - + public static void main(String[] args) { ProcessRunner runner = new ProcessRunner(); - + try { // Example: Check Java version (safe command) String javaVersion = runner.executeCommand("java -version"); System.out.println("Java version output: " + javaVersion); - + // Example: List current directory String files = runner.executeCommand("ls -la"); System.out.println("Current directory: " + files); - + } catch (Exception e) { System.err.println("Error executing command: " + e.getMessage()); e.printStackTrace(); diff --git a/examples/quick-test/.capslock/snapshot.json b/examples/quick-test/.capslock/snapshot.json index fd83022..62e678a 100644 --- a/examples/quick-test/.capslock/snapshot.json +++ b/examples/quick-test/.capslock/snapshot.json @@ -240,19 +240,6 @@ "name": "java.lang.Runtime.getRuntime", "package": "java.lang" }] - }, { - "package_name": "com.github.serj.jcapslock.examples.quicktest", - "capability": "CAPABILITY_ARBITRARY_EXECUTION", - "dep_path": "com.github.serj.jcapslock.examples.quicktest.SimpleApp.useReflection java.lang.Class.forName", - "package_dir": "com.github.serj.jcapslock.examples.quicktest", - "capability_type": "CAPABILITY_TYPE_DIRECT", - "path": [{ - "name": "com.github.serj.jcapslock.examples.quicktest.SimpleApp.useReflection", - "package": "com.github.serj.jcapslock.examples.quicktest" - }, { - "name": "java.lang.Class.forName", - "package": "java.lang" - }] }, { "package_name": "com.github.serj.jcapslock.examples.quicktest", "capability": "CAPABILITY_REFLECT", From 74506bcb422ace8f5ca07e084725cd11951eef13 Mon Sep 17 00:00:00 2001 From: Sergej Dechand Date: Sat, 20 Dec 2025 14:47:20 +0100 Subject: [PATCH 2/3] Update readme --- examples/compress-test/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/compress-test/README.md b/examples/compress-test/README.md index 2a8a90b..de242ec 100644 --- a/examples/compress-test/README.md +++ b/examples/compress-test/README.md @@ -78,7 +78,7 @@ The `CompressExample.java` demonstrates various compression operations: Run the example: ```bash -mvn compile exec:java -Dexec.mainClass="com.example.CompressExample" -Dexec.args="list myarchive.zip" +mvn compile exec:java -Dexec.mainClass="com.github.serj.jcapslock.examples.compresstest.CompressExample" -Dexec.args="list myarchive.zip" ``` ## Understanding the Output From 0eb7df2f8b151fdef3624b94f175d5e30a8ea5b9 Mon Sep 17 00:00:00 2001 From: Sergej Dechand Date: Sat, 20 Dec 2025 14:53:31 +0100 Subject: [PATCH 3/3] Add a clean to CI to reset the state if the capability maps change --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 894b91c..63a6cda 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,4 +26,4 @@ jobs: cache: maven - name: Build and Test - run: mvn verify --batch-mode \ No newline at end of file + run: mvn clean test verify --batch-mode \ No newline at end of file