You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by cz...@apache.org on 2009/04/09 21:13:22 UTC
svn commit: r763773 - in /portals/pluto/trunk:
pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java
pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java
Author: cziegeler
Date: Thu Apr 9 19:13:21 2009
New Revision: 763773
URL: http://svn.apache.org/viewvc?rev=763773&view=rev
Log:
PLUTO-550 : Use a separate method for each lifecycle for the FilterManager.
Modified:
portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java
portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java
Modified: portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java?rev=763773&r1=763772&r2=763773&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java (original)
+++ portals/pluto/trunk/pluto-container-api/src/main/java/org/apache/pluto/container/FilterManager.java Thu Apr 9 19:13:21 2009
@@ -18,12 +18,18 @@
import java.io.IOException;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
import javax.portlet.EventPortlet;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
import javax.portlet.Portlet;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
import javax.portlet.ResourceServingPortlet;
/**
@@ -34,7 +40,8 @@
*/
public interface FilterManager {
- void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, Portlet portlet, PortletContext portletContext) throws PortletException, IOException;
- void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, ResourceServingPortlet resourceServingPortlet, PortletContext portletContext)throws PortletException, IOException;
- void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, EventPortlet eventPortlet, PortletContext portletContext)throws PortletException, IOException;
+ void processFilter(ActionRequest req, ActionResponse res, ClassLoader loader, Portlet portlet, PortletContext portletContext) throws PortletException, IOException;
+ void processFilter(RenderRequest req, RenderResponse res, ClassLoader loader, Portlet portlet, PortletContext portletContext) throws PortletException, IOException;
+ void processFilter(ResourceRequest req, ResourceResponse res, ClassLoader loader, ResourceServingPortlet resourceServingPortlet, PortletContext portletContext)throws PortletException, IOException;
+ void processFilter(EventRequest req, EventResponse res, ClassLoader loader, EventPortlet eventPortlet, PortletContext portletContext)throws PortletException, IOException;
}
Modified: portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java
URL: http://svn.apache.org/viewvc/portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java?rev=763773&r1=763772&r2=763773&view=diff
==============================================================================
--- portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java (original)
+++ portals/pluto/trunk/pluto-portal-driver-impl/src/main/java/org/apache/pluto/driver/services/container/FilterManagerImpl.java Thu Apr 9 19:13:21 2009
@@ -19,12 +19,18 @@
import java.io.IOException;
import java.util.List;
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
import javax.portlet.EventPortlet;
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
import javax.portlet.Portlet;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
import javax.portlet.ResourceServingPortlet;
import org.apache.pluto.container.FilterManager;
@@ -32,6 +38,7 @@
import org.apache.pluto.container.om.portlet.FilterMapping;
import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
+
/**
* Manage the initialization and doFilter {@link FilterChainImpl} for the filter which are
* declareted in the deployment descriptor.
@@ -39,82 +46,98 @@
* @version 2.0
*/
public class FilterManagerImpl implements FilterManager{
- private FilterChainImpl filterchain;
- private PortletApplicationDefinition portletApp;
- private String portletName;
- private String lifeCycle;
-
- public FilterManagerImpl(PortletApplicationDefinition portletApp, String portletName, String lifeCycle){
- this.portletApp = portletApp;
- this.portletName = portletName;
- this.lifeCycle = lifeCycle;
- filterchain = new FilterChainImpl(lifeCycle);
- initFilterChain();
- }
-
- private void initFilterChain(){
- List<? extends FilterMapping> filterMappingList = portletApp.getFilterMappings();
- if (filterMappingList!= null){
- for (FilterMapping filterMapping : filterMappingList) {
- if (isFilter(filterMapping, portletName)){
- //the filter is specified for the portlet, check the filter for the lifecycle
- List<? extends Filter> filterList = portletApp.getFilters();
- for (Filter filter : filterList) {
- //search for the filter in the filter
- if (filter.getFilterName().equals(filterMapping.getFilterName())){
- //check the lifecycle
- if (isLifeCycle(filter, lifeCycle)){
- //the filter match to the portlet and has the specified lifecycle -> add to chain
- filterchain.addFilter(filter);
- }
- }
- }
- }
- }
- }
- }
-
- public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, EventPortlet eventPortlet,PortletContext portletContext)throws PortletException, IOException{
- filterchain.processFilter(req, res, loader, eventPortlet, portletContext);
- }
-
- public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, ResourceServingPortlet resourceServingPortlet,PortletContext portletContext)throws PortletException, IOException{
- filterchain.processFilter(req, res, loader, resourceServingPortlet, portletContext);
- }
-
- public void processFilter(PortletRequest req, PortletResponse res, ClassLoader loader, Portlet portlet,PortletContext portletContext) throws PortletException, IOException{
- filterchain.processFilter(req, res, loader, portlet, portletContext);
- }
-
- private boolean isLifeCycle(Filter filter, String lifeCycle){
- List <String> lifeCyclesList = filter.getLifecycles();
- for (String string : lifeCyclesList) {
- if (string.equals(lifeCycle))
- return true;
- }
- return false;
- }
-
- private boolean isFilter(FilterMapping filterMapping,String portletName){
- List <String> portletNamesList = filterMapping.getPortletNames();
- for (String portletNameFromFilterList : portletNamesList) {
- if (portletNameFromFilterList.endsWith("*")){
- if (portletNameFromFilterList.length()==1){
- //if name contains only *
- return true;
- }
- portletNameFromFilterList = portletNameFromFilterList.substring(0, portletNameFromFilterList.length()-1);
- if (portletName.length()>= portletNameFromFilterList.length()){
- if (portletName.substring(0, portletNameFromFilterList.length()).equals(portletNameFromFilterList)){
- return true;
- }
- }
- }
- else if (portletNameFromFilterList.equals(portletName))
- return true;
- }
- return false;
- }
-
+ private FilterChainImpl filterchain;
+ private PortletApplicationDefinition portletApp;
+ private String portletName;
+ private String lifeCycle;
+
+ public FilterManagerImpl(PortletApplicationDefinition portletApp, String portletName, String lifeCycle){
+ this.portletApp = portletApp;
+ this.portletName = portletName;
+ this.lifeCycle = lifeCycle;
+ filterchain = new FilterChainImpl(lifeCycle);
+ initFilterChain();
+ }
+
+ private void initFilterChain(){
+ List<? extends FilterMapping> filterMappingList = portletApp.getFilterMappings();
+ if (filterMappingList!= null){
+ for (FilterMapping filterMapping : filterMappingList) {
+ if (isFilter(filterMapping, portletName)){
+ //the filter is specified for the portlet, check the filter for the lifecycle
+ List<? extends Filter> filterList = portletApp.getFilters();
+ for (Filter filter : filterList) {
+ //search for the filter in the filter
+ if (filter.getFilterName().equals(filterMapping.getFilterName())){
+ //check the lifecycle
+ if (isLifeCycle(filter, lifeCycle)){
+ //the filter match to the portlet and has the specified lifecycle -> add to chain
+ filterchain.addFilter(filter);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @see org.apache.pluto.container.FilterManager#processFilter(javax.portlet.EventRequest, javax.portlet.EventResponse, java.lang.ClassLoader, javax.portlet.EventPortlet, javax.portlet.PortletContext)
+ */
+ public void processFilter(EventRequest req, EventResponse res, ClassLoader loader, EventPortlet eventPortlet,PortletContext portletContext)throws PortletException, IOException{
+ filterchain.processFilter(req, res, loader, eventPortlet, portletContext);
+ }
+
+ /**
+ * @see org.apache.pluto.container.FilterManager#processFilter(javax.portlet.ResourceRequest, javax.portlet.ResourceResponse, java.lang.ClassLoader, javax.portlet.ResourceServingPortlet, javax.portlet.PortletContext)
+ */
+ public void processFilter(ResourceRequest req, ResourceResponse res, ClassLoader loader, ResourceServingPortlet resourceServingPortlet,PortletContext portletContext)throws PortletException, IOException{
+ filterchain.processFilter(req, res, loader, resourceServingPortlet, portletContext);
+ }
+
+ /**
+ * @see org.apache.pluto.container.FilterManager#processFilter(javax.portlet.RenderRequest, javax.portlet.RenderResponse, java.lang.ClassLoader, javax.portlet.Portlet, javax.portlet.PortletContext)
+ */
+ public void processFilter(RenderRequest req, RenderResponse res, ClassLoader loader, Portlet portlet,PortletContext portletContext) throws PortletException, IOException{
+ filterchain.processFilter(req, res, loader, portlet, portletContext);
+ }
+
+ /**
+ * @see org.apache.pluto.container.FilterManager#processFilter(javax.portlet.ActionRequest, javax.portlet.ActionResponse, java.lang.ClassLoader, javax.portlet.Portlet, javax.portlet.PortletContext)
+ */
+ public void processFilter(ActionRequest req, ActionResponse res, ClassLoader loader, Portlet portlet,PortletContext portletContext) throws PortletException, IOException{
+ filterchain.processFilter(req, res, loader, portlet, portletContext);
+ }
+
+ private boolean isLifeCycle(Filter filter, String lifeCycle){
+ List <String> lifeCyclesList = filter.getLifecycles();
+ for (String string : lifeCyclesList) {
+ if (string.equals(lifeCycle))
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isFilter(FilterMapping filterMapping,String portletName){
+ List <String> portletNamesList = filterMapping.getPortletNames();
+ for (String portletNameFromFilterList : portletNamesList) {
+ if (portletNameFromFilterList.endsWith("*")){
+ if (portletNameFromFilterList.length()==1){
+ //if name contains only *
+ return true;
+ }
+ portletNameFromFilterList = portletNameFromFilterList.substring(0, portletNameFromFilterList.length()-1);
+ if (portletName.length()>= portletNameFromFilterList.length()){
+ if (portletName.substring(0, portletNameFromFilterList.length()).equals(portletNameFromFilterList)){
+ return true;
+ }
+ }
+ }
+ else if (portletNameFromFilterList.equals(portletName))
+ return true;
+ }
+ return false;
+ }
+
}