Add HadoopFileSystemTestSupport Rule

- Update: Add getter for configuration

Use retries = 1
XD-1251 Allow config of Access-Control-Allow-Origin

Use can set the value xd.ui.allow_origin to override the
default (http://localhost:9889).
XD-1223 Fix testdata cleanup

- Fixed ShellIntegration tests
 - Added support to use random stream/job name inside tests to make them unique
 - Refactored some of the tests
- Fixed RabbitSingleNodeStreamDeploymentIntegrationTests, RabbitMessageBusTests,
   RabbitSingleNodeInitializationTests and RabbitJobPluginTests
 - Added cleanup logic to add the queues/exchanges used by tests and delete them
   during teardown

XD-1223 Refactor cleanup logic

- Created TestMessageBus that acts as proxy for the actual MessageBus
and provide test support such as cleanup etc.,
  - Fixed the corresponding tests
- Fixed the issue on NPE in SingleNodeStreamDeploymentIntegrationTests
where the ordering of @AfterClass methods sometimes causes this.

XD-1223 Fix review comments

- Added null check for getMessageBus() method in MessageBus/JobPluginTests.
- Used AlternativeJdkIdGenerator to generate ID for the stream/jobName
  - Also, instead of generating random stream/job name it would be the test method
    name with the generated ID being the suffix to it. One assumption here though
    is that the getStreamName() or getJobName() needs to be called from the actual
    @Test method

Fix typo

XD-1223 Inject TestMessageBus into StreamPlugin

For integration tests, inject the TestMessageBus bean into Module Deployer's
common context by TestStreamPlugin(which is wrapper for StreamPlugin) after removing the StreamPlugin from
the container context.

XD-1223 Fix review comments

- Changed the getTestMethodName() to read generateUniqueName()
- Also added a overloaded version of getStreamName(String), getJobName(String)
- Removed the setAttribute() call in TestMessageBusInjection
- Fixed method names suffix to have "Message" instead of "Msg" in AbstractJobIntegrationTest
Add RandomConfigurationSupport for tests

Add RandomConfigurationSupport for JobPluginTests and JobRepoTests
XD-1050: Allow plugins to provide Options Metadata

Use custom converter for MediaTypes

Apply to Job Plugins options

Fix JobPluginTests

Update per review + rename DefaultMOM

Disable default value handling
XD-1266: Assume use of HttpClient for twitterstream

The existing DirectFieldAccessor workaround for setting connection
properties assumed the use of a SimpleClientHttpRequestFactory. If
Apache HttpClient is on the classpath, a different instance is
dynamically chosen. This commit adds httpclient explicitly and fixes
TwitterStreamChannelAdapter to work with the different request factory.
Cleanup explicit Redis queues in Test

- Cleanup redis queues after ModuleDeploymentTests methods
Add transport check in TestMessageBus injection

It looks like the static variable testMessageBus in
AbstractSingleNodeStreamDeploymentIntegrationTests(AbstractSNSDIT) gets
a value from previously loaded test class (ex: RabbitSNSDIT) and
thereby non-null check on TestMessageBus injection fails if the class
LocalSNSDIT is loaded after RabbitSNSDIT. Hence, added an additional
check to verify if the transport is local as it is LocalSNSDIT that
doesn't set the testMessageBus.
Fix basic_stream_tests.

Add database initialization which is no longer enabled by default.
XD-1271: Remove job options from the shell
XD-630: Uncomment all tests that actually work
Refactor unique name generation logic

- Changed the method name getStreamName()/getJobName() to read generateStreamName()/generateJobName()
- Refactored the methods
XD-1250 RabbitMessageBus Shutdown

Several issues resolved:

1. The message bus was using unnamed auto-delete queues for pub/sub.
      A connection glitch would cause such queues to be deleted and
      the container could not recover.
   - changed to use AnonymousQueue and configure the admin to redeclare
     the queue and binding when necessary.

2. The module-common context was never closed so the RabbitMessageBus
      containers would go into recovery mode; currently this is a hard-
      wired 15 second delay (3x5 seconds).
   - the ModuleDeployer is now a `DisposableBean` and destroys all
     deployed modules and the common module context.

3. Changed `RabbitSingleNodeStreamDeploymentIntegrationTests` to delete
      the deployment queues after all contexts are closed.
Upgrade Spring Data Redis to 1.1.1
Update Redis host/port placeholer keys

- Updated Redis host/port placeholder keys to use VCAP redis service
for CF deployments
Fix AbstractSingleNodeStreamDeployment Tests

- Reset testMessageBus to null in @AfterClass
Thanks to @DavidTuranski for the suggestion
- Also removed the explicit check on local transport
  as it is not needed now
- Added back forkEvery flag to test configuration in spring-xd-dirt
XD-1173 Include index in source channel names

(fixed parser bug)

restored log4j.properties

restored StreamConfigParser
Configure Boot's EndpointMBeanExporter

- Enable JMX on boot endpoints if XD_JMX_ENABLED set to true
- Set 'endpoints.jmx.uniqueNames' to true to work around the current
  issue with Boot to uniquely generate the objectName for the MBean
  that exists in both parent/child contexts.
Upgrade to Spring 4.0.1
Add Redis ConnectionPool config

- Updated application.yml with connection pool configs that
  is used in Boot's RedisAutoConfiguration$RedisProperties$Pool