in jdtls.ext/com.microsoft.java.maven.plugin/src/main/java/com/microsoft/java/maven/ArtifactSearcher.java [460:518]
public Map<String, ArtifactResult> searchByClassName(String className) {
final String exactSearchUrl;
final String prefixSearchUrl;
if (className.indexOf('.') != -1) {
exactSearchUrl = urlPrefix + "fc:" + className + urlSuffix;
prefixSearchUrl = urlPrefix + "fc:" + className + "*" + urlSuffix;
} else {
exactSearchUrl = urlPrefix + "c:" + className + urlSuffix;
prefixSearchUrl = urlPrefix + "c:" + className + "*" + urlSuffix;
}
final Request exactRequest = new Request.Builder().url(exactSearchUrl).build();
final Request prefixRequest = new Request.Builder().url(prefixSearchUrl).build();
final CountDownLatch latch = new CountDownLatch(2);
final String[] exactResponse = new String[] { "" };
final String[] prefixResponse = new String[] { "" };
client.newCall(exactRequest).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
latch.countDown();
}
@Override
public void onResponse(Call call, Response response) {
try {
exactResponse[0] = response.body().string();
} catch (IOException e) {
}
latch.countDown();
}
});
client.newCall(prefixRequest).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
latch.countDown();
}
@Override
public void onResponse(Call call, Response response) {
try {
prefixResponse[0] = response.body().string();
} catch (IOException e) {
}
latch.countDown();
}
});
try {
latch.await();
} catch (InterruptedException e) {
return new HashMap<>();
}
return processResponse(exactResponse[0], prefixResponse[0], className);
}