001
014
015 package com.liferay.portal.template;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.spring.osgi.OSGiBeanProperties;
020 import com.liferay.portal.kernel.template.TemplateConstants;
021
022 import java.net.URL;
023
024
027 @OSGiBeanProperties(
028 property = {
029 "lang.type=" + TemplateConstants.LANG_TYPE_FTL,
030 "lang.type=" + TemplateConstants.LANG_TYPE_SOY,
031 "lang.type=" + TemplateConstants.LANG_TYPE_VM
032 },
033 service = TemplateResourceParser.class
034 )
035 public class ClassLoaderResourceParser extends URLResourceParser {
036
037 public ClassLoaderResourceParser() {
038 Class<?> clazz = getClass();
039
040 _classLoader = clazz.getClassLoader();
041 }
042
043 public ClassLoaderResourceParser(ClassLoader classLoader) {
044 _classLoader = classLoader;
045 }
046
047 @Override
048 @SuppressWarnings("deprecation")
049 public URL getURL(String templateId) {
050 if (templateId.contains(TemplateConstants.JOURNAL_SEPARATOR) ||
051 templateId.contains(TemplateConstants.SERVLET_SEPARATOR) ||
052 templateId.contains(TemplateConstants.TEMPLATE_SEPARATOR) ||
053 templateId.contains(TemplateConstants.THEME_LOADER_SEPARATOR)) {
054
055 return null;
056 }
057
058 if (_log.isDebugEnabled()) {
059 _log.debug("Loading " + templateId);
060 }
061
062 return _classLoader.getResource(templateId);
063 }
064
065 private static final Log _log = LogFactoryUtil.getLog(
066 ClassLoaderResourceParser.class);
067
068 private final ClassLoader _classLoader;
069
070 }