for (Service s : services) {
if (aggService == null) {
aggService = s;
for (Iterator i = s.getServiceBindings().iterator(); i.hasNext();) {
ServiceBinding sb = (ServiceBinding) i.next();
eprHash.put(sb.getAccessURI(), sb);
logger.log(Level.DEBUG, "Found initial binding " + sb.getAccessURI());
}
} else {
// Transfer unique EPRs over
Collection bindings = s.getServiceBindings();
Collection bindingsToRemove = new ArrayList();
for (Iterator i = bindings.iterator(); i.hasNext();) {
ServiceBinding sb = (ServiceBinding) i.next();
try {
if (eprHash.containsKey(sb.getAccessURI())) {
logger.log(Level.DEBUG, "Removed binding " + sb.getAccessURI());
i.remove();
bindingsToRemove.add(sb.getKey());
} else {
logger.log(Level.DEBUG, "Transferring epr " + sb.getAccessURI());
i.remove();
transferEPR(aggService, s, sb, connection);
eprHash.put(sb.getAccessURI(), sb);
}
} catch (JAXRException e) {
throw e;
} finally {
removeBindings(bindingsToRemove, connection);