public void afterImageWrite()

in sdk/enclave/src/main/java/org/apache/teaclave/javasdk/enclave/EnclaveFeature.java [143:165]


    public void afterImageWrite(AfterImageWriteAccess access) {
        FeatureImpl.AfterImageWriteAccessImpl a = (FeatureImpl.AfterImageWriteAccessImpl) access;
        Path outputDirectory = NativeImageGenerator.generatedFiles(a.getUniverse().getBigBang().getOptions());
        Path tempDirectory = ImageSingletons.lookup(TemporaryBuildDirectoryProvider.class).getTemporaryBuildDirectory();
        try {
            if (Files.notExists(outputDirectory)) {
                Files.createDirectory(outputDirectory);
            }
            Files.walkFileTree(tempDirectory, new SimpleFileVisitor<>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    String fileName = file.getFileName().toString();
                    if (fileName.endsWith(".o") || fileName.endsWith(".h")) {
                        Path target = outputDirectory.resolve(fileName).toAbsolutePath();
                        Files.copy(file, target, StandardCopyOption.REPLACE_EXISTING);
                    }
                    return FileVisitResult.CONTINUE;
                }
            });
        } catch (IOException e) {
            VMError.shouldNotReachHere("Fail to copy file from temporary", e);
        }
    }