/** * 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.portal.osgi.web.portlet.tracker.internal; import com.liferay.portal.kernel.model.EventDefinition; import com.liferay.portal.kernel.model.Portlet; import com.liferay.portal.kernel.model.PortletApp; import com.liferay.portal.kernel.model.PortletFilter; import com.liferay.portal.kernel.model.PortletURLListener; import com.liferay.portal.kernel.model.PublicRenderParameter; import com.liferay.portal.kernel.model.SpriteImage; import com.liferay.portal.kernel.util.ReflectionUtil; import com.liferay.portal.kernel.xml.QName; import com.liferay.portal.osgi.web.servlet.context.helper.ServletContextHelperRegistration; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; import javax.servlet.ServletContext; import org.osgi.framework.Bundle; import org.osgi.util.tracker.ServiceTracker; /** * @author Raymond Augé */ public class BundlePortletApp implements PortletApp { public BundlePortletApp( Bundle bundle, Portlet portalPortletModel, ServiceTracker<ServletContextHelperRegistration, ServletContext> serviceTracker) { _portalPortletModel = portalPortletModel; _serviceTracker = serviceTracker; _pluginPackage = new BundlePluginPackage(bundle, this); _portletApp = portalPortletModel.getPortletApp(); } @Override public void addEventDefinition(EventDefinition eventDefinition) { _portletApp.addEventDefinition(eventDefinition); } @Override public void addPortlet(Portlet portlet) { _portletApp.addPortlet(portlet); } @Override public void addPortletFilter(PortletFilter portletFilter) { _portletApp.addPortletFilter(portletFilter); } @Override public void addPortletURLListener(PortletURLListener portletURLListener) { _portletApp.addPortletURLListener(portletURLListener); } @Override public void addPublicRenderParameter( PublicRenderParameter publicRenderParameter) { _portletApp.addPublicRenderParameter(publicRenderParameter); } @Override public void addPublicRenderParameter(String identifier, QName qName) { _portletApp.addPublicRenderParameter(identifier, qName); } @Override public void addServletURLPatterns(Set<String> servletURLPatterns) { _portletApp.addServletURLPatterns(servletURLPatterns); } @Override public Map<String, String[]> getContainerRuntimeOptions() { return _portletApp.getContainerRuntimeOptions(); } @Override public String getContextPath() { ServletContext servletContext = getServletContext(); return servletContext.getContextPath(); } @Override public Map<String, String> getCustomUserAttributes() { return _portletApp.getCustomUserAttributes(); } @Override public String getDefaultNamespace() { return _portletApp.getDefaultNamespace(); } @Override public Set<EventDefinition> getEventDefinitions() { return _portletApp.getEventDefinitions(); } public BundlePluginPackage getPluginPackage() { return _pluginPackage; } @Override public PortletFilter getPortletFilter(String filterName) { return _portletApp.getPortletFilter(filterName); } @Override public Set<PortletFilter> getPortletFilters() { return _portletApp.getPortletFilters(); } @Override public List<Portlet> getPortlets() { return _portletApp.getPortlets(); } @Override public PortletURLListener getPortletURLListener(String listenerClass) { return _portletApp.getPortletURLListener(listenerClass); } @Override public Set<PortletURLListener> getPortletURLListeners() { return _portletApp.getPortletURLListeners(); } @Override public PublicRenderParameter getPublicRenderParameter(String identifier) { return _portletApp.getPublicRenderParameter(identifier); } public Map<String, String> getRoleMappers() { return _portalPortletModel.getRoleMappers(); } @Override public ServletContext getServletContext() { try { return _serviceTracker.waitForService(0); } catch (InterruptedException ie) { return ReflectionUtil.throwException(ie); } } @Override public String getServletContextName() { ServletContext servletContext = getServletContext(); return servletContext.getServletContextName(); } @Override public Set<String> getServletURLPatterns() { return _portletApp.getServletURLPatterns(); } @Override public SpriteImage getSpriteImage(String fileName) { return _portletApp.getSpriteImage(fileName); } @Override public Set<String> getUserAttributes() { return _portletApp.getUserAttributes(); } @Override public boolean isWARFile() { return true; } @Override public void removePortlet(Portlet portletModel) { _portletApp.removePortlet(portletModel); } @Override public void setDefaultNamespace(String defaultNamespace) { _portletApp.setDefaultNamespace(defaultNamespace); } @Override public void setServletContext(ServletContext servletContext) { throw new UnsupportedOperationException(); } @Override public void setSpriteImages(String spriteFileName, Properties properties) { _portletApp.setSpriteImages(spriteFileName, properties); } @Override public void setWARFile(boolean warFile) { _portletApp.setWARFile(warFile); } private final BundlePluginPackage _pluginPackage; private final Portlet _portalPortletModel; private final PortletApp _portletApp; private final ServiceTracker <ServletContextHelperRegistration, ServletContext> _serviceTracker; }