90 | | || 60 || || SMTP || enable configuration of smtp servers that require authentication. i.e. configure autherticate/secure y/n, username, password. || heikki: 1 || || |
91 | | || 61 || || !CatalogSearcher is not an extension of !MetaSearcher || !LuceneSearcher, !UnusedSearcher and Z3950Searcher are all extensions of !MetaSearcher but !CatalogSearcher for CSW is not. This is ok until !CatalogSearcher is put into the session as Geonet.Session.SEARCH_RESULT where up until now only the extensions of !MetaSearcher were expected. Because !CatalogSearcher is not a !MetaSearcher the nice polymorphism/dynamic binding used for example when closing the searcher (get a !MetaSearcher and do searcher.close()) is broken and we need to do ugly if (object instanceof !LuceneSearcher) then .... else etc etc etc. Action: make !CatalogSearcher an extension of !MetaSearcher or put it somewhere else in the session. || || || |
| 90 | || 60 || || SMTP || enable configuration of smtp servers that require authentication. i.e. configure autherticate/secure y/n, username, password. || heikki: 1 || #239 || |
| 91 | || 61 || || !CatalogSearcher is not an extension of !MetaSearcher || !LuceneSearcher, !UnusedSearcher and Z3950Searcher are all extensions of !MetaSearcher but !CatalogSearcher for CSW is not. This is ok until !CatalogSearcher is put into the session as Geonet.Session.SEARCH_RESULT where up until now only the extensions of !MetaSearcher were expected. Because !CatalogSearcher is not a !MetaSearcher the nice polymorphism/dynamic binding used for example when closing the searcher (get a !MetaSearcher and do searcher.close()) is broken and we need to do ugly if (object instanceof !LuceneSearcher) then .... else etc etc etc. Action: make !CatalogSearcher an extension of !MetaSearcher or put it somewhere else in the session. || || #238 || |