code: protected List<ISource> locate(ConfigurationWrapper configuration) {
  				
  		if(configuration == null) {
  			throw new IllegalArgumentException("A non-null Configuration annotation must be provided");
  		}
  		
  		// create resolver from configuration annotation's resolver element
  		ResolverWrapper resolverWrapper = configuration.resolver();
  		PropertyResolver resolver = this.resolverFactory.createPropertyResolver(resolverWrapper);
  		Map<Object,Object> bootstrapMap = this.resolverFactory.getBootstrapProperties(resolverWrapper);
  		Map<Object,Object> defaultMap = this.resolverFactory.getDefaultProperties(resolverWrapper);
  		
  		// found sources
  		List<ISource> foundSources = new ArrayList<ISource>(0);
  		
  		// create sources
  		List<Source> sources = new ArrayList<Source>(Arrays.asList(configuration.sources()));
  		
  		// resolve sources as normal
  		for(Source source : sources) {
  			ISource found = this.resloveSource(source, resolver, bootstrapMap, defaultMap);
  			if(found != null) {
  				foundSources.add(found);
  			}
  		}
  		
  		// fix no sources found, a source SHOULD always be returned
  		if(foundSources.isEmpty()) {
  			foundSources.add(new UnfoundSource());
  		}
  		
  		return foundSources;
  	}
docs: Breaks down the {@link Configuration} annotation into
  the segments to look for configuration files
  
  @param configuration annotation to use to find configuration files
  
  @return List of InputStreams representing the configuration found