Change Shark and Spark so they assume localhost is the master when running in Azure emulator. This works around some quirks with Azure emulator role discovery
New web role, SharkFrontEnd, which offers a basic querying ability from IIS to query Shark (using DarkNotes to interop with the JDBC driver). I only got it working on local emulator and it still doesn't work on Azure, but seems like a good point to check-in the initial code
Add the setting to skip Azure metrics for WASB in SharkNodeBase. Which solves the exception I always got when closing the connection.
Make it possible to attach a debugger to the Shark server started from the unit test. This was one of my attempts to debug something, and it seems useful enough to keep.
Add a method to run SharkServer in addition to SharkServer2. It works as in the server is up, but I couldn't get queries against to really work. Anyway figure it's worth keeping.
Add the WASB keys to the Hive metastore service in the test services just in case.
Make the queries in SharkFrontEnd asynchronous in a primitive way by keeping the executing tasks in memory and just being able to query their status in a dedicated page (yes yes I know it's not exactly a scalable and fault-tolerant solution, just a test service here).
Finally do the right thing and factor out the oft-copy-pasted code to read the WASB and SQL test configuration into a common library
Fix Shark to respect the FileSystem of the given path
Put the scratch and warehouse directories up on WASB in the Shark test service. This gets CTAS to work.
Create a new Derby-backed HiveMetastore role for the ElectricBlobs test service,
instead of stealing the SQL Azure-backed one from BlobbySpeed.
Needed to do that because HiveMetastore backed by SQL Azure (the Shark edition) has bugs that prevents CREATE TABLE from working correctly.
Fix the very frustrating bug of not getting any results from Shark when running on a cluster. Turns out that Shark/Hive thought we were running locally always so they would put the results on the local file system - fix the magic config knob for that.
Create a new log4j file so that we can see logs from the Hive side of the world in Shark
In SharkFrontEnd's HiveDataSource, use the driver object directly instead of going through DriverManager.
I need to do this because DriverManager does checks based on the ClassLoader used to get the class, and I couldn't get that check to give me what I need with Dark Notes which would mess with my driver instantion in multi-threaded scenarios.
Minor cosmetic changes to SharkFrontEnd to make it a tiny bit less obvious that it's just a stock ASP application.
Version bump