[jboss-cvs] jboss-seam/src/main/org/jboss/seam/web ...
Gavin King
gavin.king at jboss.com
Fri Jun 22 11:41:30 EDT 2007
User: gavin
Date: 07/06/22 11:41:30
Modified: src/main/org/jboss/seam/web AbstractFilter.java
SeamFilter.java
Added: src/main/org/jboss/seam/web AbstractResource.java
Log:
much saner packaging
Revision Changes Path
1.3 +1 -1 jboss-seam/src/main/org/jboss/seam/web/AbstractFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AbstractFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/AbstractFilter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- AbstractFilter.java 22 Jun 2007 09:18:45 -0000 1.2
+++ AbstractFilter.java 22 Jun 2007 15:41:30 -0000 1.3
@@ -54,7 +54,7 @@
* @param request ServletRequest The request containing the path
* @return boolean True if the path matches the pattern, false otherwise
*/
- boolean matchesRequestPath(ServletRequest request)
+ public boolean isMappedToCurrentRequestPath(ServletRequest request)
{
if (!(request instanceof HttpServletRequest))
return true;
1.10 +2 -158 jboss-seam/src/main/org/jboss/seam/web/SeamFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/SeamFilter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- SeamFilter.java 22 Jun 2007 09:18:45 -0000 1.9
+++ SeamFilter.java 22 Jun 2007 15:41:30 -0000 1.10
@@ -1,166 +1,10 @@
package org.jboss.seam.web;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-import org.jboss.seam.Component;
-import org.jboss.seam.contexts.ApplicationContext;
-import org.jboss.seam.contexts.Context;
-import org.jboss.seam.core.Init;
-import org.jboss.seam.log.LogProvider;
-import org.jboss.seam.log.Logging;
-import org.jboss.seam.servlet.ServletApplicationMap;
-import org.jboss.seam.util.SortItem;
-import org.jboss.seam.util.Sorter;
-
/**
- * A servlet filter that orchestrates the stack of Seam
- * component filters, and controls ordering. Filter
- * ordering is specified via the @Filter annotation.
- * Filters may optionally extend AbstractFilter.
*
- * @see org.jboss.seam.annotations.Filter
- * @see AbstractFilter
+ * @deprecated use org.jboss.seam.servlet.SeamFilter
*
* @author Shane Bryzak
*
*/
-public class SeamFilter implements Filter
-{
- private static final LogProvider log = Logging.getLogProvider(SeamFilter.class);
-
- private List<Filter> filters = new ArrayList<Filter>();
-
- private class FilterChainImpl implements FilterChain
- {
- private FilterChain chain;
- private int index;
-
- private FilterChainImpl(FilterChain chain)
- {
- this.chain = chain;
- index = -1;
- }
-
- public void doFilter(ServletRequest request, ServletResponse response)
- throws IOException, ServletException
- {
- if ( ++index < filters.size() )
- {
- Filter filter = filters.get(index);
-
- if (filter instanceof AbstractFilter)
- {
- AbstractFilter bf = (AbstractFilter) filter;
- if ( bf.matchesRequestPath(request) )
- {
- filter.doFilter(request, response, this);
- }
- else
- {
- this.doFilter(request, response);
- }
- }
- else
- {
- filter.doFilter(request, response, this);
- }
- }
- else
- {
- chain.doFilter(request, response);
- }
- }
- }
-
- public void init(FilterConfig filterConfig) throws ServletException
- {
- Context tempApplicationContext = new ApplicationContext( new ServletApplicationMap( filterConfig.getServletContext() ) );
- Init init = (Init) tempApplicationContext.get(Init.class);
-
- // Setup ready for sorting
- Map<String, SortItem<Filter>> sortItemsMap = new HashMap<String, SortItem<Filter>>();
- List<SortItem<Filter>> sortItems = new ArrayList<SortItem<Filter>>();
-
- for (String filterName : init.getInstalledFilters())
- {
- Filter filter = (Filter) tempApplicationContext.get(filterName);
- SortItem<Filter> si = new SortItem<Filter>(filter);
- sortItemsMap.put(filterName, si);
- sortItems.add(si);
- }
-
- for (SortItem<Filter> sortItem : sortItems)
- {
- org.jboss.seam.annotations.Filter filterAnn = getFilterAnnotation(sortItem.getObj().getClass());
- if ( filterAnn != null )
- {
- for (String s : Arrays.asList( filterAnn.around() ) )
- {
- SortItem<Filter> aroundSortItem = sortItemsMap.get(s);
- if (sortItem!=null && aroundSortItem != null) sortItem.getAround().add( aroundSortItem );
- }
- for (String s : Arrays.asList( filterAnn.within() ) )
- {
- SortItem<Filter> withinSortItem = sortItemsMap.get(s);
- if (sortItem!=null && withinSortItem != null) sortItem.getWithin().add( withinSortItem );
- }
- }
- }
-
- // Do the sort
- Sorter<Filter> sList = new Sorter<Filter>();
- sortItems = sList.sort(sortItems);
-
- // Set the sorted filters, initialize them
- for (SortItem<Filter> sortItem : sortItems)
- {
- Filter filter = sortItem.getObj();
- filters.add(filter);
- log.info( "Initializing filter: " + Component.getComponentName(filter.getClass()));
- filter.init(filterConfig);
- }
- }
-
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException
- {
- new FilterChainImpl(chain).doFilter(request, response);
- }
-
- public void destroy()
- {
- for (Filter filter: filters)
- {
- filter.destroy();
- }
- }
-
- private org.jboss.seam.annotations.Filter getFilterAnnotation(Class<?> clazz)
- {
- while (!Object.class.equals(clazz))
- {
- if (clazz.isAnnotationPresent(org.jboss.seam.annotations.Filter.class))
- {
- return clazz.getAnnotation(org.jboss.seam.annotations.Filter.class);
- }
- else
- {
- clazz = clazz.getSuperclass();
- }
- }
- return null;
- }
-
-}
+public class SeamFilter extends org.jboss.seam.servlet.SeamFilter {}
1.1 date: 2007/06/22 15:41:30; author: gavin; state: Exp;jboss-seam/src/main/org/jboss/seam/web/AbstractResource.java
Index: AbstractResource.java
===================================================================
package org.jboss.seam.web;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Superclass of Seam components that serve up
* "resources" to the client via the Seam
* resource servlet. Note that since a filter is
* potentially called outside of a set of Seam
* contexts, it is not a true Seam component.
* However, we are able to reuse the functionality
* for component scanning, installation and
* configuration for filters. All resources
* must extend this class.
*
* @author Shane Bryzak
*
*/
public abstract class AbstractResource
{
private ServletContext context;
protected ServletContext getServletContext()
{
return context;
}
public void setServletContext(ServletContext context)
{
this.context = context;
}
public abstract void getResource(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException;
public abstract String getResourcePath();
}
More information about the jboss-cvs-commits
mailing list