private void createSummaryMetainfoFile(Path srcFile, Path destFile, boolean overwrite) throws IOException { FileSystem srcFs = srcFile.getFileSystem(getConfig()); try (InputStream inputStreamJson = SliderUtils .getApplicationResourceInputStream(srcFs, srcFile, "metainfo.json"); InputStream inputStreamXml = SliderUtils .getApplicationResourceInputStream(srcFs, srcFile, "metainfo.xml");) { InputStream inputStream = null; Path summaryFileInFs = null; if (inputStreamJson != null) { inputStream = inputStreamJson; summaryFileInFs = new Path(destFile.getParent(), destFile.getName() + ".metainfo.json"); log.info("Found JSON metainfo file in package"); } else if (inputStreamXml != null) { inputStream = inputStreamXml; summaryFileInFs = new Path(destFile.getParent(), destFile.getName() + ".metainfo.xml"); log.info("Found XML metainfo file in package"); } if (inputStream != null) { try (FSDataOutputStream dataOutputStream = sliderFileSystem .getFileSystem().create(summaryFileInFs, overwrite)) { log.info("Creating summary metainfo file"); IOUtils.copy(inputStream, dataOutputStream); } } } }
static DefaultConfig getDefaultConfig(SliderFileSystem fileSystem, String appDef, String configFileName) throws IOException { // this is the path inside the zip file String fileToRead = "configuration/" + configFileName; log.info("Reading default config file {} at {}", fileToRead, appDef); InputStream configStream = SliderUtils.getApplicationResourceInputStream( fileSystem.getFileSystem(), new Path(appDef), fileToRead); if (configStream == null) { log.error("{} is unavailable at {}.", fileToRead, appDef); throw new IOException("Expected config file " + fileToRead + " is not available."); } return new DefaultConfigParser().parse(configStream); }
private void createSummaryMetainfoFile(Path srcFile, Path destFile, boolean overwrite) throws IOException { FileSystem srcFs = srcFile.getFileSystem(getConfig()); try (InputStream inputStreamJson = SliderUtils .getApplicationResourceInputStream(srcFs, srcFile, "metainfo.json"); InputStream inputStreamXml = SliderUtils .getApplicationResourceInputStream(srcFs, srcFile, "metainfo.xml");) { InputStream inputStream = null; Path summaryFileInFs = null; if (inputStreamJson != null) { inputStream = inputStreamJson; summaryFileInFs = new Path(destFile.getParent(), destFile.getName() + ".metainfo.json"); log.info("Found JSON metainfo file in package"); } else if (inputStreamXml != null) { inputStream = inputStreamXml; summaryFileInFs = new Path(destFile.getParent(), destFile.getName() + ".metainfo.xml"); log.info("Found XML metainfo file in package"); } if (inputStream != null) { try (FSDataOutputStream dataOutputStream = sliderFileSystem .getFileSystem().create(summaryFileInFs, overwrite)) { log.info("Creating summary metainfo file"); IOUtils.copy(inputStream, dataOutputStream); } } } }
static DefaultConfig getDefaultConfig(SliderFileSystem fileSystem, String appDef, String configFileName) throws IOException { // this is the path inside the zip file String fileToRead = "configuration/" + configFileName; log.info("Reading default config file {} at {}", fileToRead, appDef); InputStream configStream = SliderUtils.getApplicationResourceInputStream( fileSystem.getFileSystem(), new Path(appDef), fileToRead); if (configStream == null) { log.error("{} is unavailable at {}.", fileToRead, appDef); throw new IOException("Expected config file " + fileToRead + " is not available."); } return new DefaultConfigParser().parse(configStream); }
public static Metainfo getApplicationMetainfo(SliderFileSystem fileSystem, String metainfoPath, boolean metainfoForAddon) throws IOException, BadConfigException { log.info("Reading metainfo at {}", metainfoPath); Metainfo metainfo = getApplicationMetainfoFromSummaryFile(fileSystem, metainfoPath, metainfoForAddon); if (metainfo != null) { log.info("Got metainfo from summary file"); return metainfo; } FileSystem fs = fileSystem.getFileSystem(); Path appPath = new Path(metainfoPath); InputStream metainfoJsonStream = SliderUtils.getApplicationResourceInputStream( fs, appPath, "metainfo.json"); if (metainfoJsonStream == null) { InputStream metainfoXMLStream = SliderUtils.getApplicationResourceInputStream( fs, appPath, "metainfo.xml"); if (metainfoXMLStream != null) { metainfo = parseMetainfo(metainfoXMLStream, metainfoForAddon, "xml"); } } else { metainfo = parseMetainfo(metainfoJsonStream, metainfoForAddon, "json"); } if (metainfo == null) { log.error("metainfo is unavailable at {}.", metainfoPath); throw new FileNotFoundException("metainfo.xml/json is required in app package. " + appPath); } return metainfo; }
public static Metainfo getApplicationMetainfo(SliderFileSystem fileSystem, String metainfoPath, boolean metainfoForAddon) throws IOException, BadConfigException { log.info("Reading metainfo at {}", metainfoPath); Metainfo metainfo = getApplicationMetainfoFromSummaryFile(fileSystem, metainfoPath, metainfoForAddon); if (metainfo != null) { log.info("Got metainfo from summary file"); return metainfo; } FileSystem fs = fileSystem.getFileSystem(); Path appPath = new Path(metainfoPath); InputStream metainfoJsonStream = SliderUtils.getApplicationResourceInputStream( fs, appPath, "metainfo.json"); if (metainfoJsonStream == null) { InputStream metainfoXMLStream = SliderUtils.getApplicationResourceInputStream( fs, appPath, "metainfo.xml"); if (metainfoXMLStream != null) { metainfo = parseMetainfo(metainfoXMLStream, metainfoForAddon, "xml"); } } else { metainfo = parseMetainfo(metainfoJsonStream, metainfoForAddon, "json"); } if (metainfo == null) { log.error("metainfo is unavailable at {}.", metainfoPath); throw new FileNotFoundException("metainfo.xml/json is required in app package. " + appPath); } return metainfo; }
@Test public void testGetMetaInfoStreamFromZip() throws Exception { String zipFileName = TestUtility.createAppPackage( folder, "testpkg", "test.zip", "target/test-classes/org/apache/slider/common/tools/test"); Configuration configuration = new Configuration(); FileSystem fs = FileSystem.getLocal(configuration); log.info("fs working dir is {}", fs.getWorkingDirectory().toString()); SliderFileSystem sliderFileSystem = new SliderFileSystem(fs, configuration); InputStream stream = SliderUtils.getApplicationResourceInputStream( sliderFileSystem.getFileSystem(), new Path(zipFileName), "metainfo.xml"); Assert.assertTrue(stream != null); Assert.assertTrue(stream.available() > 0); }
@Test public void testGetMetaInfoStreamFromZip() throws Exception { String zipFileName = TestUtility.createAppPackage( folder, "testpkg", "test.zip", "target/test-classes/org/apache/slider/common/tools/test"); Configuration configuration = new Configuration(); FileSystem fs = FileSystem.getLocal(configuration); log.info("fs working dir is {}", fs.getWorkingDirectory().toString()); SliderFileSystem sliderFileSystem = new SliderFileSystem(fs, configuration); InputStream stream = SliderUtils.getApplicationResourceInputStream( sliderFileSystem.getFileSystem(), new Path(zipFileName), "metainfo.xml"); Assert.assertTrue(stream != null); Assert.assertTrue(stream.available() > 0); }