private MessageStore initialiseMessageStore(VirtualHostConfiguration hostConfig, VirtualHost virtualHost) throws Exception
{
final Object storeTypeAttr = virtualHost.getAttribute(VirtualHost.STORE_TYPE);
String storeType = storeTypeAttr == null ? null : String.valueOf(storeTypeAttr);
MessageStore messageStore = null;
if (storeType == null)
{
final Class<?> clazz = Class.forName(hostConfig.getMessageStoreClass());
final Object o = clazz.newInstance();
if (!(o instanceof MessageStore))
{
throw new ClassCastException(clazz + " does not implement " + MessageStore.class);
}
messageStore = (MessageStore) o;
}
else
{
messageStore = new MessageStoreCreator().createMessageStore(storeType);
}
final
MessageStoreLogSubject
storeLogSubject = new MessageStoreLogSubject(getName(), messageStore.getClass().getSimpleName());
OperationalLoggingListener.listen(messageStore, storeLogSubject);
return messageStore;
}