@Override public String getBaseUrl(UrlMode urlMode) { return webResourceIntegration.getBaseUrl(urlMode); } }
@Override public String getBaseUrl() { return webResourceIntegration.getBaseUrl(); }
@Override public Jsonable get() { return new JsonableString(webResourceIntegration.getBaseUrl(UrlMode.RELATIVE)); } }
@Override public String getStaticResourcePrefix(UrlMode urlMode) { // "{base url}/s/{lang?}/{build num}/{system counter}/_" // {lang} is optional return joinWithSlashWithoutEmpty( webResourceIntegration.getBaseUrl(urlMode), STATIC_RESOURCE_PREFIX, webResourceIntegration.getI18nStateHash(), webResourceIntegration.getSystemBuildNumber(), webResourceIntegration.getSystemCounter(), STATIC_RESOURCE_SUFFIX ); }
@Override public String getStaticResourcePrefix(String resourceCounter, UrlMode urlMode) { // "{base url}/s/{lang?}/{build num}/{system counter}/{resource counter}/_" // {lang} is optional return joinWithSlashWithoutEmpty( webResourceIntegration.getBaseUrl(urlMode), STATIC_RESOURCE_PREFIX, webResourceIntegration.getI18nStateHash(), webResourceIntegration.getSystemBuildNumber(), webResourceIntegration.getSystemCounter(), resourceCounter, STATIC_RESOURCE_SUFFIX ); }
@Override protected WebResourceMapper create() throws Exception { if (integration.isCtCdnMappingEnabled()) { final Optional<PrebakeConfig> prebakeConfig = integration.getCDNStrategy() != null ? integration.getCDNStrategy().getPrebakeConfig() : Optional.empty(); if (prebakeConfig.isPresent()) { try { log.info("Creating DefaultWebResourceMapper"); return new DefaultWebResourceMapper(integration, new MappingParser(), prebakeConfig.get(), computeGlobalStateHash(), getCtCdnBaseUrl(), integration.getBaseUrl(UrlMode.RELATIVE)); } catch (FileNotFoundException e) { //no additional logging, it isn't an error return new NoOpWebResourceMapper(e); } catch (Exception e) { log.info("DefaultWebResourceMapper was not created properly. Pre-baked CT-CDN is disabled but will fall back to product's CDN Strategy, if any.", e); return new NoOpWebResourceMapper(e); } } else { log.info("Creating NoOpWebResourceMapper since PrebakeConfig is not present. Pre-baked CT-CDN is disabled but will fall back to product's CDN Strategy, if any."); return new NoOpWebResourceMapper(new Exception("PrebakeConfig not present")); } } else { log.info("Creating NoOpWebResourceMapper since WebResourceIntegration#isCtCdnMappingEnabled flag is disabled. Pre-baked CT-CDN is disabled but will fall back to product's CDN Strategy, if any."); return new NoOpWebResourceMapper(new Exception("CT-CDN is explicitly disabled by the product.")); } } };
private void doStart(List<WebResourceCrawler> crawlers) { targets = new ArrayList<>(); for (WebResourceCrawler wrc : crawlers) { targets.addAll(wrc.getTargets()); } bundler = createBundler(); DiscoveryTask discoveryTask = new DiscoveryTask( config.ignorePrebakeWarnings(), config.isCSSPrebakingEnabled(), webResourceIntegration.getBaseUrl(UrlMode.RELATIVE), webResourceIntegration.getBaseUrl(UrlMode.ABSOLUTE), crawlers, resourceCollector, bundler ); pool.execute(() -> { try { StopWatch stopwatch = new StopWatch(); discoveryTask.doRun(); bundler.createBundleZip(); setState(DONE); log.info("Total prebaking time: {}s", stopwatch.getElapsedSecondsAndReset()); } catch (Exception e) { log.error("Cancelling pre-bake due to ", e); setState(CANCELLED); } }); }
@Override public String getStaticResourcePrefix(String contributedHash, String resourceCounter, UrlMode urlMode) { // "{base url}/s/{contributedHash}/{lang?}/{build num}/{system counter}/{resource counter}/_" // {lang} is optional return joinWithSlashWithoutEmpty( webResourceIntegration.getBaseUrl(urlMode), STATIC_RESOURCE_PREFIX, contributedHash, webResourceIntegration.getI18nStateHash(), webResourceIntegration.getSystemBuildNumber(), webResourceIntegration.getSystemCounter(), resourceCounter, STATIC_RESOURCE_SUFFIX ); }