/** * Crawls the contents of an {@link AssembledResources} object and adds its content to the {@link Collection} * passed as a parameter. * * @param source {@link AssembledResources} object to crawl. * @param destination destination {@link Collection} for the resources discovered by the crawler. */ default void crawlAssembledResource( AssembledResources source, BlockingQueue<Resource> destination) throws InterruptedException { WebResourceSet webResourceSet; do { webResourceSet = source.pollIncludedResources(); for (WebResource resource : webResourceSet.getResources()) { if (!(resource instanceof PluginJsResource) && !(resource instanceof PluginCssResource)) { continue; } PluginResource pr = new PluginResource((PluginUrlResource<?>) resource); destination.put(pr); } } while (!webResourceSet.isComplete()); }
private WebResourceSet resolveWebResourceSet(Set<String> webResources, Set<String> contexts, Set<String> excludeResources, Set<String> excludeContexts) { if (logger.isDebugEnabled()) { logger.debug("Requiring webresources {}", webResources); logger.debug("Requiring contexts {}", contexts); logger.debug("Excluding webresource {}", excludeResources); logger.debug("Excluding contexts {}", excludeContexts); } // Async requests should not include the super batch by default - unless explicitly required WebResourceAssembler assembler = webResourceAssemblerFactory.create().includeSuperbatchResources(false).build(); assembler.resources().exclude(excludeResources, excludeContexts); for (String webResource : webResources) { if (Config.isWebResourceKey(webResource)) { assembler.resources().requireWebResource(webResource); } else { assembler.resources().requireModule(webResource); } } for (String context : contexts) assembler.resources().requireContext(context); return assembler.assembled().pollIncludedResources(); } }