13c - Replace HTMLExtrator with more powerful HTMLRegexExtractor
14 - Show the power of inheritance to implement a PlaintextExtractor
based on HTMLRegexExtractor
15 - Recursively go into the list of links extracted from a page and
check them too
16 - Guard against cycles in the graph by using a set of visited
vertices/nodes
17 - Do not follow out-going links leading to non-authoritative domains
and do not extract links from non-authoritative domain either
18a - Refactor URL type with model type Link (in preparation of mocking
exercise and due to URL being final rendering mocking unusable)
18b - Use HashSet instead of TreeSet to get rid of Link implementing
Comparable (Comparable is yet another logical implementation for
equality and thus might interfer with equals)
19 - Test Checker#check(..) with a mocked IExtractor
20 - Progress reporting during detection and introduction to
Thread/Runnable and preliminary concurrency
21 - Better unknown content type and dead link reporting (Repetition of
different Collection characteristics (Set,List,TreeSet) and order)
22 - Report link currently extracted (logging repetition)
23 - Use system property to allow external configuration of threshold
level
24 - Java 1.7 multi catch statement (to handle https exceptions when no
network connection)
25a - Use pool of threads to concurrently recurse into link checking to
max out system resource (Synchronization done via
AtomicInteger)(MockedCheckerTest broken)