}
List<IService> candidates = new LinkedList<IService>();
if( !available.isEmpty()){
for( Map.Entry<ServiceExtension, Map<String, Serializable>> candidateEntry : available.entrySet() ) {
String extentionIdentifier = candidateEntry.getKey().getClass().getName();
ServiceExtension serviceExtension = candidateEntry.getKey();
Map<String, Serializable> connectionParameters = candidateEntry.getValue();
try {
IService sevice = serviceExtension.createService(null, connectionParameters);
CatalogImpl.runInterceptor(sevice, ServiceInterceptor.CREATED_ID);
candidates.add(sevice);
// List<IService> service = createService(connectionParameters);
// if (service != null && !service.isEmpty()) {
// for( IService created : service ){
// CatalogImpl.runInterceptor(created, ServiceInterceptor.CREATED_ID);
// candidates.add(created);
// }
// }
} catch (Throwable deadService) {
CatalogPlugin.log(extentionIdentifier + " could not create service", deadService); //$NON-NLS-1$
}
}
}
if( candidates.isEmpty() && !generic.isEmpty()){
// add generic entries if needed
for(ServiceExtension serviceExtension : generic) {
try {
Map<String, Serializable> connectionParameters = serviceExtension.createParams(targetUrl);
if (connectionParameters != null) {
IService service = serviceExtension.createService(null, connectionParameters);
CatalogImpl.runInterceptor(service, ServiceInterceptor.CREATED_ID);
candidates.add(service);
// List<IService> service = createService(connectionParameters);
// if (service != null && !service.isEmpty()) {
// for( IService created : service ){
// CatalogImpl.runInterceptor(created, ServiceInterceptor.CREATED_ID);
// candidates.add(created);
// }
// }
}
} catch (Throwable deadService) {
CatalogPlugin.log(serviceExtension.getClass().getName() + " could not create service", deadService); //$NON-NLS-1$
}
}
}
return candidates;
}