@Override
public String locateContainer(String alias, List<? extends KieContainerInstance> containerInstances) {
if (containerInstances.isEmpty()) {
return alias;
}
logger.debug("Searching for latest container for alias {} within available containers {}", alias, containerInstances);
List<ComparableVersion> comparableVersions = new ArrayList<ComparableVersion>();
Map<String, String> versionToIdentifier = new HashMap<String, String>();
containerInstances.forEach(c ->
{
if (c.getStatus().equals(KieContainerStatus.STARTED)) {
comparableVersions.add(new ComparableVersion(c.getKieContainer().getReleaseId().getVersion()));
versionToIdentifier.put(c.getKieContainer().getReleaseId().getVersion(), c.getContainerId());
}
}
);
ComparableVersion latest = Collections.max(comparableVersions);
logger.debug("Latest version for alias {} is {}", alias, comparableVersions);
return versionToIdentifier.get(latest.toString());
}