private void generateResourcesFile(final File resfile) { final Framework framework = projectResourceMgr.getFramework(); final NodeEntryImpl node = framework.createFrameworkNode(); node.setFrameworkProject(getName()); final NodesFileGenerator generator; if (resfile.getName().endsWith(".xml")) { generator = new ResourceXMLGenerator(resfile); } else if (resfile.getName().endsWith(".yaml")) { generator = new NodesYamlGenerator(resfile); } else { getLogger() .error( "Unable to generate resources file. Unrecognized extension for dest file: " + resfile.getAbsolutePath()); return; } generator.addNode(node); try { generator.generate(); } catch (IOException e) { getLogger().error("Unable to generate resources file: " + e.getMessage(), e); } catch (NodesGeneratorException e) { getLogger().error("Unable to generate resources file: " + e.getMessage(), e); } getLogger().debug("generated resources file: " + resfile.getAbsolutePath()); }
private void generateResourcesFile(final File resfile, final String format) throws ResourceModelSourceException { final NodeEntryImpl node = framework.createFrameworkNode(); node.setFrameworkProject(configuration.project); final ResourceFormatGenerator generator; if (null != format) { try { generator = framework.getResourceFormatGeneratorService().getGeneratorForFormat(format); } catch (UnsupportedFormatException e) { throw new ResourceModelSourceException(e); } } else { try { generator = framework.getResourceFormatGeneratorService().getGeneratorForFileExtension(resfile); } catch (UnsupportedFormatException e) { throw new ResourceModelSourceException(e); } } if (configuration.includeServerNode) { NodeSetImpl nodes = new NodeSetImpl(); nodes.putNode(node); if (!resfile.getParentFile().exists()) { if (!resfile.getParentFile().mkdirs()) { throw new ResourceModelSourceException( "Parent dir for resource file does not exists, and could not be created: " + resfile); } } try { final FileOutputStream stream = new FileOutputStream(resfile); try { generator.generateDocument(nodes, stream); } finally { stream.close(); } } catch (IOException e) { throw new ResourceModelSourceException(e); } catch (ResourceFormatGeneratorException e) { throw new ResourceModelSourceException(e); } } }
private void loadNodes(final File nodesFile, final String format) throws ResourceModelSourceException { if (!nodesFile.isFile() && configuration.generateFileAutomatically) { generateResourcesFile(nodesFile, format); } else if (configuration.includeServerNode) { final NodeEntryImpl node = framework.createFrameworkNode(); nodeSet.putNode(node); } if (nodesFile.isFile()) { final ResourceFormatParser parser = createParser(nodesFile, format); try { final INodeSet set = parser.parseDocument(nodesFile); if (null != set) { nodeSet.putNodes(set); } } catch (ResourceFormatParserException e) { throw new ResourceModelSourceException(e); } } else if (configuration.requireFileExists) { throw new ResourceModelSourceException("File does not exist: " + nodesFile); } }