@Override protected void doBeforeStart() { ScannerProperties scannerProps = new ScannerProperties(scannerProperties); GlobalAnalysisMode globalMode = new GlobalAnalysisMode(scannerProps); add(scannerProps); add(globalMode); addBootstrapComponents(); }
public static GlobalContainer create(Map<String, String> scannerProperties, List<?> extensions) { GlobalContainer container = new GlobalContainer(scannerProperties); container.add(extensions); return container; }
@Override public boolean isPublish() { return analysisMode.isPublish(); } }
private Loaded loadPlugins(Map<String, ScannerPlugin> result) { for (InstalledPlugin plugin : listInstalledPlugins()) { if (pluginPredicate.apply(plugin.key)) { Optional<File> jarFile = pluginFiles.get(plugin); if (!jarFile.isPresent()) { return new Loaded(false, plugin.key); } PluginInfo info = PluginInfo.create(jarFile.get()); result.put(info.getKey(), new ScannerPlugin(plugin.key, plugin.updatedAt, info)); } } return new Loaded(true, null); }
public GlobalConfiguration provide(GlobalServerSettings globalServerSettings, ScannerProperties scannerProps, PropertyDefinitions propertyDefinitions) { if (globalConfig == null) { Map<String, String> mergedSettings = new LinkedHashMap<>(); mergedSettings.putAll(globalServerSettings.properties()); mergedSettings.putAll(scannerProps.properties()); globalConfig = new GlobalConfiguration(propertyDefinitions, scannerProps.getEncryption(), mergedSettings); } return globalConfig; } }
private void addExtensions() { ExtensionInstaller pluginInstaller = getComponentByType(ExtensionInstaller.class); pluginInstaller.install(this, e -> isDeprecatedScannerSide(e) && isInstantiationStrategy(e, PER_PROJECT)); }
@Test public void fail_if_integrity_of_download_is_not_valid() throws IOException { FileAndMd5 tempJar = new FileAndMd5(); enqueueDownload(tempJar.file, "invalid_hash"); InstalledPlugin plugin = newInstalledPlugin("foo", "abc"); expectISE("foo", "was expected to have checksum invalid_hash but had " + tempJar.md5); underTest.get(plugin); }
@Test public void shouldBeBatchInstantiationStrategy() { assertThat(ExtensionUtils.isInstantiationStrategy(ProjectService.class, InstantiationStrategy.PER_BATCH)).isFalse(); assertThat(ExtensionUtils.isInstantiationStrategy(new ProjectService(), InstantiationStrategy.PER_BATCH)).isFalse(); assertThat(ExtensionUtils.isInstantiationStrategy(DefaultService.class, InstantiationStrategy.PER_BATCH)).isFalse(); assertThat(ExtensionUtils.isInstantiationStrategy(new DefaultService(), InstantiationStrategy.PER_BATCH)).isFalse(); assertThat(ExtensionUtils.isInstantiationStrategy(DefaultScannerService.class, InstantiationStrategy.PER_BATCH)).isFalse(); assertThat(ExtensionUtils.isInstantiationStrategy(new DefaultScannerService(), InstantiationStrategy.PER_BATCH)).isFalse(); }
@Test public void fail_if_integrity_of_compressed_download_is_not_valid() throws Exception { FileAndMd5 jar = new FileAndMd5(); enqueueCompressedDownload(jar, false); expectISE("foo", "was expected to have checksum invalid_hash but had "); InstalledPlugin plugin = newInstalledPlugin("foo", jar.md5); underTest.get(plugin).get(); }
@Test public void testIsScannerSide() { assertThat(ExtensionUtils.isDeprecatedScannerSide(ScannerService.class)).isTrue(); assertThat(ExtensionUtils.isDeprecatedScannerSide(ServerService.class)).isFalse(); assertThat(ExtensionUtils.isDeprecatedScannerSide(new ServerService())).isFalse(); assertThat(ExtensionUtils.isDeprecatedScannerSide(new WebServerService())).isFalse(); assertThat(ExtensionUtils.isDeprecatedScannerSide(new ComputeEngineService())).isFalse(); }
@Override public boolean isIssues() { return analysisMode.isIssues(); }
@Override public String get() { return getKeyWithBranch(); }
private FileAndMd5 createFileInCache(String pluginKey) throws IOException { FileAndMd5 tempFile = new FileAndMd5(); return moveToCache(pluginKey, tempFile); }
/** * Enqueue download of file with valid MD5 */ private void enqueueDownload(FileAndMd5 file) throws IOException { enqueueDownload(file.file, file.md5); }
private static InstalledPlugin newInstalledPlugin(String pluginKey, String fileChecksum) { InstalledPlugin plugin = new InstalledPlugin(); plugin.key = pluginKey; plugin.hash = fileChecksum; return plugin; }
@Override public Object provide() { return new Foo(); } }
@Override public Object provide() { return new Bar(); } }
@Test public void fail_if_cached_file_is_outside_cache_dir() throws IOException { FileAndMd5 tempJar = new FileAndMd5(); enqueueDownload(tempJar); InstalledPlugin plugin = newInstalledPlugin("foo/bar", "abc"); expectedException.expect(IllegalStateException.class); expectedException.expectMessage("Fail to download plugin [foo/bar]. Key is not valid."); underTest.get(plugin); }
@Test public void shouldBeProjectInstantiationStrategy() { assertThat(ExtensionUtils.isInstantiationStrategy(ProjectService.class, InstantiationStrategy.PER_PROJECT)).isTrue(); assertThat(ExtensionUtils.isInstantiationStrategy(new ProjectService(), InstantiationStrategy.PER_PROJECT)).isTrue(); assertThat(ExtensionUtils.isInstantiationStrategy(DefaultService.class, InstantiationStrategy.PER_PROJECT)).isTrue(); assertThat(ExtensionUtils.isInstantiationStrategy(new DefaultService(), InstantiationStrategy.PER_PROJECT)).isTrue(); assertThat(ExtensionUtils.isInstantiationStrategy(DefaultScannerService.class, InstantiationStrategy.PER_PROJECT)).isTrue(); assertThat(ExtensionUtils.isInstantiationStrategy(new DefaultScannerService(), InstantiationStrategy.PER_PROJECT)).isTrue(); }