/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.hello.velocity.web.internal.portlet; import com.liferay.hello.velocity.web.internal.constants.HelloVelocityPortletKeys; import com.liferay.petra.content.ContentUtil; import com.liferay.portal.kernel.model.Release; import com.liferay.portal.kernel.template.StringTemplateResource; import com.liferay.portal.kernel.template.Template; import com.liferay.portal.kernel.template.TemplateConstants; import com.liferay.portal.kernel.template.TemplateManagerUtil; import com.liferay.portal.kernel.template.TemplateResource; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portlet.VelocityPortlet; import javax.portlet.Portlet; import javax.portlet.PortletRequest; import javax.portlet.PortletResponse; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; /** * @author Peter Fellwock */ @Component( immediate = true, property = { "com.liferay.portlet.css-class-wrapper=portlet-hello-velocity", "com.liferay.portlet.display-category=category.sample", "com.liferay.portlet.private-request-attributes=false", "com.liferay.portlet.private-session-attributes=false", "com.liferay.portlet.remoteable=true", "com.liferay.portlet.render-weight=50", "com.liferay.portlet.use-default-template=true", "javax.portlet.display-name=Hello Velocity", "javax.portlet.expiration-cache=0", "javax.portlet.init-param.template-path=/", "javax.portlet.init-param.view-template=/view.vm", "javax.portlet.name=" + HelloVelocityPortletKeys.HELLO_VELOCITY, "javax.portlet.portlet.info.keywords=Hello Velocity", "javax.portlet.portlet.info.short-title=Hello Velocity", "javax.portlet.portlet.info.title=Hello Velocity", "javax.portlet.resource-bundle=content.Language", "javax.portlet.security-role-ref=power-user,user" }, service = Portlet.class ) public class HelloVelocityPortlet extends VelocityPortlet { @Override protected String getTemplateId(String name) { return name; } protected TemplateResource getTemplateResource(String templateId) { if (templateId.indexOf(StringPool.SLASH) != 0) { templateId = StringPool.SLASH.concat(templateId); } String content = ContentUtil.get( HelloVelocityPortlet.class.getClassLoader(), "META-INF/resources" + templateId); return new StringTemplateResource(templateId, content); } @Override protected void mergeTemplate( String templateId, PortletRequest portletRequest, PortletResponse portletResponse) throws Exception { TemplateResource templateResource = getTemplateResource(templateId); Template template = TemplateManagerUtil.getTemplate( TemplateConstants.LANG_TYPE_VM, templateResource, false); prepareTemplate(template, portletRequest, portletResponse); mergeTemplate(templateId, template, portletRequest, portletResponse); } @Reference( target = "(&(release.bundle.symbolic.name=com.liferay.hello.velocity.web)(release.schema.version=1.0.0))", unbind = "-" ) protected void setRelease(Release release) { } }