@Test public void return_rules_in_protobuf() { dbTester.rules().insert(RuleTesting.newRule(RuleKey.of("java", "S001")).setConfigKey(null).setName(null)); dbTester.rules().insert(RuleTesting.newRule(RuleKey.of("java", "S002")).setConfigKey("I002").setName("Rule Two")); dbTester.getSession().commit(); Rules.ListResponse listResponse = tester.newRequest() .executeProtobuf(Rules.ListResponse.class); assertThat(listResponse.getRulesCount()).isEqualTo(2); assertThat(listResponse.getRules(0).getKey()).isEqualTo("S001"); assertThat(listResponse.getRules(0).getInternalKey()).isEqualTo(""); assertThat(listResponse.getRules(0).getName()).isEqualTo(""); assertThat(listResponse.getRules(1).getKey()).isEqualTo("S002"); assertThat(listResponse.getRules(1).getInternalKey()).isEqualTo("I002"); assertThat(listResponse.getRules(1).getName()).isEqualTo("Rule Two"); } }
private static void assertRule(org.sonar.api.batch.rule.Rule r) { Rule testRule = getTestRule(); assertThat(r.name()).isEqualTo(testRule.getName()); assertThat(r.internalKey()).isEqualTo(testRule.getInternalKey()); assertThat(r.key().rule()).isEqualTo(testRule.getKey()); assertThat(r.key().repository()).isEqualTo(testRule.getRepository()); }
@Override public void handle(Request wsRequest, Response wsResponse) throws Exception { final ListResponse.Builder listResponseBuilder = ListResponse.newBuilder(); final ListResponse.Rule.Builder ruleBuilder = ListResponse.Rule.newBuilder(); try (DbSession dbSession = dbClient.openSession(false)) { dbClient.ruleDao().selectEnabled(dbSession, resultContext -> { RuleDefinitionDto dto = resultContext.getResultObject(); ruleBuilder .clear() .setRepository(dto.getRepositoryKey()) .setKey(dto.getRuleKey()) .setName(nullToEmpty(dto.getName())) .setInternalKey(nullToEmpty(dto.getConfigKey())); listResponseBuilder.addRules(ruleBuilder.build()); }); } // JSON response is voluntarily not supported. This WS is for internal use. wsResponse.stream().setMediaType(MediaTypes.PROTOBUF); listResponseBuilder.build().writeTo(wsResponse.stream().output()); }
@Override public void handle(Request wsRequest, Response wsResponse) throws Exception { final ListResponse.Builder listResponseBuilder = ListResponse.newBuilder(); final ListResponse.Rule.Builder ruleBuilder = ListResponse.Rule.newBuilder(); try (DbSession dbSession = dbClient.openSession(false)) { dbClient.ruleDao().selectEnabled(dbSession, resultContext -> { RuleDefinitionDto dto = resultContext.getResultObject(); ruleBuilder .clear() .setRepository(dto.getRepositoryKey()) .setKey(dto.getRuleKey()) .setName(nullToEmpty(dto.getName())) .setInternalKey(nullToEmpty(dto.getConfigKey())); listResponseBuilder.addRules(ruleBuilder.build()); }); } // JSON response is voluntarily not supported. This WS is for internal use. wsResponse.stream().setMediaType(MediaTypes.PROTOBUF); listResponseBuilder.build().writeTo(wsResponse.stream().output()); }
private static Rules load(RulesLoader ref) { Profiler profiler = Profiler.create(LOG).startInfo(LOG_MSG); MutableBoolean fromCache = new MutableBoolean(); List<Rule> loadedRules = ref.load(fromCache); RulesBuilder builder = new RulesBuilder(); for (Rule r : loadedRules) { NewRule newRule = builder.add(RuleKey.of(r.getRepository(), r.getKey())); newRule.setName(r.getName()); newRule.setInternalKey(r.getInternalKey()); } profiler.stopInfo(fromCache.booleanValue()); return builder.build(); } }
private static Rules load(RulesLoader ref) { Profiler profiler = Profiler.create(LOG).startInfo(LOG_MSG); List<Rule> loadedRules = ref.load(); RulesBuilder builder = new RulesBuilder(); for (Rule r : loadedRules) { NewRule newRule = builder.add(RuleKey.of(r.getRepository(), r.getKey())); newRule.setName(r.getName()); newRule.setInternalKey(r.getInternalKey()); } profiler.stopInfo(); return builder.build(); } }
private static Rule getTestRule() { Rule.Builder ruleBuilder = Rule.newBuilder(); ruleBuilder.setKey("key1"); ruleBuilder.setRepository("repo1"); ruleBuilder.setName("name"); ruleBuilder.setInternalKey("key1"); return ruleBuilder.build(); } }
private static Rules load(RulesLoader ref) { Profiler profiler = Profiler.create(LOG).startInfo(LOG_MSG); List<Rule> loadedRules = ref.load(); RulesBuilder builder = new RulesBuilder(); for (Rule r : loadedRules) { NewRule newRule = builder.add(RuleKey.of(r.getRepository(), r.getKey())); newRule.setName(r.getName()); newRule.setInternalKey(r.getInternalKey()); } profiler.stopInfo(); return builder.build(); } }
public ScannerMediumTester addRule(String key, String repoKey, String internalKey, String name) { Rule.Builder builder = Rule.newBuilder(); builder.setKey(key); builder.setRepository(repoKey); if (internalKey != null) { builder.setInternalKey(internalKey); } builder.setName(name); rulesLoader.addRule(builder.build()); return this; }