As mentioned in the task: 4213037
Related to the Task: https://our.intern.facebook.com/intern/tasks/?s=754080093&t=4213037
Changed the MessageStoreFactory interface and added a new method "initialize(service, config)" in order to do the setting up of message store factory. In order to invoke the class (as per the configuration) on run time, reflection is used for the class invocation and then initialize() method is called on the instance.
There were few classes which had private factory implementation, for these classes there is no need to implement the initialize() method as the class is never exposed and can't be passed as a configuration.
Also, in order to make the DiskBackedMessageStore.class value to be passed from the configuration, I moved the implementation to the new file and made this class as a public class.
Modified a test case for testing this configuration(DiskBased/InMemory Backed Message Stores).
Review Link: https://reviews.apache.org/r/20915/