001
014
015 package com.liferay.mail.util;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.ClassUtil;
020 import com.liferay.portal.kernel.util.InstanceFactory;
021 import com.liferay.portal.util.ClassLoaderUtil;
022 import com.liferay.portal.util.PropsValues;
023
024
028 public class HookFactory {
029
030 public static Hook getInstance() {
031 return _hook;
032 }
033
034 public static void setInstance(Hook hook) {
035 if (_log.isDebugEnabled()) {
036 _log.debug("Set " + ClassUtil.getClassName(hook));
037 }
038
039 if (hook == null) {
040 _hook = _originalHook;
041 }
042 else {
043 _hook = hook;
044 }
045 }
046
047 public void afterPropertiesSet() throws Exception {
048 if (_log.isDebugEnabled()) {
049 _log.debug("Instantiate " + PropsValues.MAIL_HOOK_IMPL);
050 }
051
052 ClassLoader classLoader = ClassLoaderUtil.getPortalClassLoader();
053
054 _originalHook = (Hook)InstanceFactory.newInstance(
055 classLoader, PropsValues.MAIL_HOOK_IMPL);
056
057 _hook = _originalHook;
058 }
059
060 private static Log _log = LogFactoryUtil.getLog(HookFactory.class);
061
062 private static volatile Hook _hook;
063 private static Hook _originalHook;
064
065 }