public Rule getRule(UserCredentials userCredentials, String ruleKey) {
try{
return new RuleSearchClient(serverUrl).getRule(userCredentials, ruleKey);
}catch(HttpException ex){
if(ex.getMessage().contains("Error 404")){
RuleQuery ruleQuery=new RuleQuery("java");
String[] tokens=ruleKey.split(":");
ruleQuery.setSearchText(tokens.length == 2? tokens[1]: ruleKey);
Sonar sonar;
if(userCredentials == null) {
sonar=Sonar.create(serverUrl);
}else {
sonar=Sonar.create(serverUrl, userCredentials.getUsername(), PassEncoder.decodeAsString(userCredentials.getPassword()));