public Iterator<DataStoreFactorySpi> getAvailableDataSources() {
   Set<DataStoreFactorySpi> availableDS = new HashSet<>();
   Iterator<DataStoreFactorySpi> it =
       getServiceRegistry().getServiceProviders(DataStoreFactorySpi.class, null, null);
   ElasticDataStoreFactory dsFactory;
   while (it.hasNext()) {
     Object ds = it.next();
     if (ds instanceof ElasticDataStoreFactory) {
       dsFactory = (ElasticDataStoreFactory) ds;
       if (dsFactory.isAvailable()) {
         availableDS.add(dsFactory);
       }
     }
   }
   return availableDS.iterator();
 }