private ObjectLog createWriteAheadObjectLogIfAvailableOnClasspath(ObjectLog normalObjectLog)
throws ClassNotFoundException, InstantiationException,
IllegalAccessException, NoSuchMethodException,
InvocationTargetException {
Class<ObjectLog> theClass = ClassLoadingHelper.loadClass(WRITE_AHEAD_OBJECT_LOG_CLASSNAME);
ObjectLog objectLog = theClass.newInstance();
Method delegateMethod = theClass.getMethod("setDelegate", AbstractObjectLog.class);
delegateMethod.invoke(objectLog, normalObjectLog);
LOGGER.logInfo("Instantiated write-ahead logging - this constitutes a license violation if you are not a paying customer!");
return objectLog;
}