/** * Creates new metadata manager, automatically registers itself for notifications from metadata changes and calls * reload upon a change. Also registers timer which verifies whether metadata needs to be reloaded in a specified * time interval. * <p> * It is mandatory that method afterPropertiesSet is called after the construction. * * @param providers providers to include, mustn't be null or empty * @throws MetadataProviderException error during initialization */ public MetadataManager(List<MetadataProvider> providers) throws MetadataProviderException { super(); this.idpName = new HashSet<String>(); this.spName = new HashSet<String>(); this.defaultExtendedMetadata = new ExtendedMetadata(); availableProviders = new LinkedList<ExtendedMetadataDelegate>(); setProviders(providers); getObservers().add(new MetadataProviderObserver()); }