private void saveRegistryFile(Node installed) throws FileNotFoundException { FileOutputStream outStream = null; try { // TODO need to replace this with actual file-system transactionality, but should work for the common case outStream = new FileOutputStream(getRepositoryRegistryFile()); incrementVersion(); Streams.write(XMLParser.toXMLInputStream(installed), outStream); } finally { Streams.closeQuietly(outStream); } }
Streams.closeQuietly(output); Streams.closeQuietly(fos); Streams.closeQuietly(input); Streams.closeQuietly(fis);
@SuppressWarnings("resource") @Override public WebAppDescriptor getConfig() { DescriptorImporter<WebAppDescriptor> importer = Descriptors.importAs(WebAppDescriptor.class); FileResource<?> configFile = getConfigFile(); InputStream inputStream = configFile.getResourceInputStream(); try { WebAppDescriptor descriptor = importer.fromStream(inputStream); return descriptor; } finally { Streams.closeQuietly(inputStream); } }
@Override public File call() throws Exception { File descriptorFile = getAddonDescriptorFile(addon); try { if (!descriptorFile.exists()) { descriptorFile.mkdirs(); descriptorFile.delete(); descriptorFile.createNewFile(); FileOutputStream stream = null; try { stream = new FileOutputStream(descriptorFile); Streams.write(XMLParser.toXMLInputStream(XMLParser.parse("<addon/>")), stream); } finally { Streams.closeQuietly(stream); } } return descriptorFile; } catch (Exception e) { throw new RuntimeException("Error initializing addon descriptor file.", e); } } });
@Override public File call() throws Exception { File registryFile = new File(getRootDirectory(), REGISTRY_DESCRIPTOR_NAME); try { if (!registryFile.exists()) { registryFile.createNewFile(); FileOutputStream out = null; try { out = new FileOutputStream(registryFile); Streams.write(XMLParser.toXMLInputStream(XMLParser.parse("<installed></installed>")), out); } finally { Streams.closeQuietly(out); } } return registryFile; } catch (Exception e) { throw new RuntimeException("Error initializing addon registry file [" + registryFile + "]", e); } } });
Streams.write(asset.openStream(), fos); Streams.closeQuietly(fos);
Streams.write(XMLParser.toXMLInputStream(addonXml), fos); Streams.closeQuietly(fos);