/** * Process a distribution root. * * @param parent the misc root * @param distributionRoot the distribution root * @param distribution the distribution * @throws IOException */ static void process( final DistributionContentItem parent, final File distributionRoot, Distribution distribution) throws IOException { final DistributionProcessor processor = new DistributionProcessor(); final File[] children = distributionRoot.listFiles(); if (children != null && children.length != 0) { for (final File child : children) { processor.processMisc(parent, child, distribution); } } final List<File> mp = new ArrayList<File>(); final Set<DistributionContentItem> moduleRoots = processor.moduleRoots; for (final DistributionContentItem item : moduleRoots) { final File file = item.getFile(distributionRoot); mp.add(file); } // Update name and version final ModuleLoader loader = new LocalModuleLoader(mp.toArray(new File[mp.size()])); final ProductConfig config = new ProductConfig(loader, distributionRoot.getAbsolutePath(), Collections.emptyMap()); distribution.setName(config.resolveName()); distribution.setVersion(config.resolveVersion()); }