This is an automated email from the ASF dual-hosted git repository. simonetripodi pushed a commit to branch optimized_writer in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-inventoryprinter.git
commit 8ad41209c7cdeabe20b7d6bd772acaa2a42c46a9 Author: Simo Tripodi <[email protected]> AuthorDate: Tue Jun 18 16:00:59 2019 +0200 @trivial do not store the whole 'sling.feature' file in memory, before to transfer it to the PrintWriter --- .../impl/FeaturesInventoryPrinter.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java index ac9710c..5512433 100644 --- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java +++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java @@ -18,18 +18,20 @@ */ package org.apache.sling.feature.inventoryservice.impl; -import org.apache.felix.inventory.Format; -import org.apache.felix.inventory.InventoryPrinter; -import org.osgi.framework.BundleContext; -import org.osgi.service.component.annotations.Activate; -import org.osgi.service.component.annotations.Component; - +import java.io.BufferedReader; import java.io.PrintWriter; import java.net.URI; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import org.apache.felix.inventory.Format; +import org.apache.felix.inventory.InventoryPrinter; +import org.osgi.framework.BundleContext; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; + @Component( property = {InventoryPrinter.NAME + "=launch_feature", InventoryPrinter.TITLE + "=Launch Feature", @@ -43,8 +45,12 @@ public class FeaturesInventoryPrinter implements InventoryPrinter public void print(PrintWriter printWriter, Format format, boolean isZip) { try { Path path = Paths.get(new URI(bc.getProperty("sling.feature"))); - byte[] bytes = Files.readAllBytes(path); - printWriter.print(new String(bytes)); + try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) { + String line = null; + while ((line = reader.readLine()) != null) { + printWriter.println(line); + } + } } catch (Exception e) { e.printStackTrace(printWriter); }
