Fixed infinite loop caused by cloning MagicGathererDataDownloader. Fixed language handling and logging.Added System Rules dependency for command line testing. Replaced System.console() with Scanner for easier testing. Updated some logging levels.
Updated configuration code to support Java Spring configuration.Minor thread safety updates. For some reason, the Observers need to implement Comparable. Not sure why. Changed default logging level to WARN.
Separated Spring configuration files so that DB configuration isn't always included in the base file.Updated tests so that unit tests don't spawn the embedded SQL database. This should result in much faster builds.
Improved split() handling (I think): String.split for regex and blank separators
For the latter, a blank element is returned in the array: Manually remove.
For single character splits, use Apache StringUtils.split()
For multi character splits, use Apache StringUtils.splitByWholeSeparator()
Updated SNAPSHOT version to 0.0.2-SNAPSHOT.Removed unnecessary RelativePath tag. The Parent POM must be either installed in the local Maven repository, or the local settings.xml must include a Nexus repository that contains it.
Added description to POM to override inherited description from Parent POM.Replaced tab characters in favor of spaces.
Extracted code into private methods to better encapsulate functionality.
Added local variables to avoid reassigning method parameter.
Removed finally block in favor of Java 7 try-with-resources.
Working on Sonar issues.Pulled out parsing code into separate private methods.
Added code to avoid re-assigning method parameters.
All unit tests pass.
Added package level Javadoc comments.Added and expanded Javadoc comments.
Refactored code so package names make more sense and reflect current design.
Removed vestigial code from previous design (Singleton) no longer needed in current design.
Added Observer class to watch for Downloader completion.
TODO: Update UpdateMagicDatabase to use new Observer class rather than watching currently running threads.
TODO: Finish updating Javad...
Converted all tests to no longer require external dependencies, where possible.Annotated all existing unit tests with UnitTest category.
Annotated remaining integration tests with IntegrationTest category.
PROTIP: Integration test is defined as any test that requires an external resource to run. That is, web site/service, database, etc.
Fixed bug where cloning a Downloader with a null Observer caused a NullPointerException.
Created setter methods in inner Thread class for...
MagicCardDatabaseUpdaterTest now running as independent tests. They're still technically integration tests, but no longer require an Internet connection to run.PROTIP: "-noverify" JVM argument must be present when running PowerMock
unit tests. This is set in the POM, but must be added manually to
IDE-run test configurations.
Added PowerMock support for unit testing.Added unit test to test PowerMock configuration.
PROTIP: "-noverify" JVM argument must be present when running PowerMock unit tests. This is set in the parent POM, but must be added manually to IDE-run test configurations.
Minor change to MagicGathererDataDownloader and MagicGathererDataObserver to support unit testing.
Added mocking so that testUpdateOfSingleCard() in MagicCardDatabaseUpdaterT...
Added code to avoid unnecessary database queries when a user has chosen not to proceed with an update.Added a new test for cards with Variable Colorless mana.
Fixed issue where HttpClient was left open.Fixed issue where error messages were logged for colorless mana.
Fixed(?) issue where stack traces weren't printed for errors thrown within a thread.
Added support for parsing Colorless/Colored hybrid cards with Colorless values up to 10.Converted unit tests from assertTrue to assertEquals for more helpful JUnit messages.