X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.factory%2Fsrc%2Forg%2Fargeo%2Fslc%2Frpmfactory%2Fcore%2FYumListParser.java;h=ee89aa311cabdcab34e6e7fee4e74470443517ac;hb=e07ded4632e53f8b8869763bc1f1f4091361e76e;hp=1b44dd494f9bca8227a120dd6292d7d36922c1be;hpb=d154e9f68017e8c5a8edac15475b2d79aea3e9d4;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java b/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java index 1b44dd494..ee89aa311 100644 --- a/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java +++ b/org.argeo.slc.factory/src/org/argeo/slc/rpmfactory/core/YumListParser.java @@ -2,6 +2,8 @@ package org.argeo.slc.rpmfactory.core; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Set; import java.util.StringTokenizer; import java.util.TreeSet; @@ -12,7 +14,6 @@ import org.apache.commons.io.LineIterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.SlcException; -import org.springframework.core.io.Resource; /** * Reads the output of a 'yum list all' command and interpret the list of @@ -25,19 +26,18 @@ public class YumListParser implements RpmPackageSet { /** Not installed but available */ private Set installable = new TreeSet(); - private Resource yumListOutput; + private Path yumListOutput; public void init() { - try { - if (yumListOutput != null) { - load(yumListOutput.getInputStream()); + if (yumListOutput != null) { + try (InputStream in = Files.newInputStream(yumListOutput)) { + load(in); if (log.isDebugEnabled()) - log.debug(installed.size() + " installed, " - + installable.size() + " installable, from " + log.debug(installed.size() + " installed, " + installable.size() + " installable, from " + yumListOutput); + } catch (IOException e) { + throw new SlcException("Cannot initialize yum list parser", e); } - } catch (IOException e) { - throw new SlcException("Cannot initialize yum list parser", e); } } @@ -48,32 +48,26 @@ public class YumListParser implements RpmPackageSet { return installable.contains(packageName); } - protected void load(InputStream in) { - try { - Boolean readingInstalled = false; - Boolean readingAvailable = false; - LineIterator it = IOUtils.lineIterator(in, "UTF-8"); - while (it.hasNext()) { - String line = it.nextLine(); - if (line.trim().equals("Installed Packages")) { - readingInstalled = true; - } else if (line.trim().equals("Available Packages")) { - readingAvailable = true; - readingInstalled = false; - } else if (readingAvailable) { - if (Character.isLetterOrDigit(line.charAt(0))) { - installable.add(extractRpmName(line)); - } - } else if (readingInstalled) { - if (Character.isLetterOrDigit(line.charAt(0))) { - installed.add(extractRpmName(line)); - } + protected void load(InputStream in) throws IOException { + Boolean readingInstalled = false; + Boolean readingAvailable = false; + LineIterator it = IOUtils.lineIterator(in, "UTF-8"); + while (it.hasNext()) { + String line = it.nextLine(); + if (line.trim().equals("Installed Packages")) { + readingInstalled = true; + } else if (line.trim().equals("Available Packages")) { + readingAvailable = true; + readingInstalled = false; + } else if (readingAvailable) { + if (Character.isLetterOrDigit(line.charAt(0))) { + installable.add(extractRpmName(line)); + } + } else if (readingInstalled) { + if (Character.isLetterOrDigit(line.charAt(0))) { + installed.add(extractRpmName(line)); } } - } catch (IOException e) { - throw new SlcException("Cannot load yum list output", e); - } finally { - IOUtils.closeQuietly(in); } } @@ -82,7 +76,7 @@ public class YumListParser implements RpmPackageSet { String packageName = st.nextToken(); // consider the arch as an extension return FilenameUtils.getBaseName(packageName); - //return packageName.split("\\.")[0]; + // return packageName.split("\\.")[0]; } public Set getInstalled() { @@ -93,7 +87,7 @@ public class YumListParser implements RpmPackageSet { return installable; } - public void setYumListOutput(Resource yumListOutput) { + public void setYumListOutput(Path yumListOutput) { this.yumListOutput = yumListOutput; }