[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...

Gavin King gavin.king at jboss.com
Tue Oct 17 09:00:42 EDT 2006


  User: gavin   
  Date: 06/10/17 09:00:42

  Modified:    src/main/org/jboss/seam/core    ManagedHibernateSession.java
                        ManagedPersistenceContext.java
  Added:       src/main/org/jboss/seam/core    Filter.java
  Log:
  declarative filters JBSEAM-410
  
  Revision  Changes    Path
  1.23      +31 -1     jboss-seam/src/main/org/jboss/seam/core/ManagedHibernateSession.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ManagedHibernateSession.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/ManagedHibernateSession.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -b -r1.22 -r1.23
  --- ManagedHibernateSession.java	14 Oct 2006 18:27:34 -0000	1.22
  +++ ManagedHibernateSession.java	17 Oct 2006 13:00:42 -0000	1.23
  @@ -1,9 +1,11 @@
  -//$Id: ManagedHibernateSession.java,v 1.22 2006/10/14 18:27:34 gavin Exp $
  +//$Id: ManagedHibernateSession.java,v 1.23 2006/10/17 13:00:42 gavin Exp $
   package org.jboss.seam.core;
   
   import static org.jboss.seam.InterceptionType.NEVER;
   
   import java.io.Serializable;
  +import java.util.List;
  +import java.util.Map;
   
   import javax.naming.NamingException;
   import javax.servlet.http.HttpSessionActivationListener;
  @@ -47,6 +49,7 @@
      private String sessionFactoryJndiName;
      private String componentName;
      private ValueBinding<SessionFactory> sessionFactory;
  +   private List<Filter> filters;
      
      public boolean clearDirty()
      {
  @@ -75,6 +78,20 @@
      {
         session = getSessionFactoryFromJndiOrValueBinding().openSession();
         setFlushMode( PersistenceContexts.instance().getFlushMode() );
  +      for (Filter f: filters)
  +      {
  +         enableFilter(f);
  +      }
  +   }
  +
  +   private void enableFilter(Filter f)
  +   {
  +      org.hibernate.Filter filter = session.enableFilter( f.getName() );
  +      for ( Map.Entry<String, ValueBinding> me: f.getParameters().entrySet() )
  +      {
  +         filter.setParameter( me.getKey(), me.getValue().getValue() );
  +      }
  +      filter.validate();
      }
      
      @Unwrap
  @@ -185,6 +202,19 @@
         return sessionFactory;
      }
   
  +   /**
  +    * Hibernate filters to enable automatically
  +    */
  +   public List<Filter> getFilters()
  +   {
  +      return filters;
  +   }
  +
  +   public void setFilters(List<Filter> filters)
  +   {
  +      this.filters = filters;
  +   }
  +
      public String toString()
      {
         return "ManagedHibernateSession(" + sessionFactoryJndiName + ")";
  
  
  
  1.24      +21 -2     jboss-seam/src/main/org/jboss/seam/core/ManagedPersistenceContext.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ManagedPersistenceContext.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/ManagedPersistenceContext.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -b -r1.23 -r1.24
  --- ManagedPersistenceContext.java	14 Oct 2006 18:27:34 -0000	1.23
  +++ ManagedPersistenceContext.java	17 Oct 2006 13:00:42 -0000	1.24
  @@ -1,9 +1,10 @@
  -//$Id: ManagedPersistenceContext.java,v 1.23 2006/10/14 18:27:34 gavin Exp $
  +//$Id: ManagedPersistenceContext.java,v 1.24 2006/10/17 13:00:42 gavin Exp $
   package org.jboss.seam.core;
   
   import static org.jboss.seam.InterceptionType.NEVER;
   
   import java.io.Serializable;
  +import java.util.List;
   
   import javax.naming.NamingException;
   import javax.persistence.EntityManager;
  @@ -45,6 +46,7 @@
      private String persistenceUnitJndiName;
      private String componentName;
      private ValueBinding<EntityManagerFactory> entityManagerFactory;
  +   private List<Filter> filters;
      
      public boolean clearDirty()
      {
  @@ -81,6 +83,10 @@
      {
         entityManager = getEntityManagerFactoryFromJndiOrValueBinding().createEntityManager();      
         setFlushMode( PersistenceContexts.instance().getFlushMode() );
  +      for (Filter f: filters)
  +      {
  +         PersistenceProvider.instance().enableFilter(f, entityManager);
  +      }
      }
   
      @Unwrap
  @@ -173,6 +179,19 @@
         return componentName;
      }
   
  +   /**
  +    * Hibernate filters to enable automatically
  +    */
  +   protected List<Filter> getFilters()
  +   {
  +      return filters;
  +   }
  +
  +   protected void setFilters(List<Filter> filters)
  +   {
  +      this.filters = filters;
  +   }
  +
      public void setFlushMode(org.jboss.seam.annotations.FlushModeType flushMode)
      {
         switch (flushMode)
  
  
  
  1.1      date: 2006/10/17 13:00:42;  author: gavin;  state: Exp;jboss-seam/src/main/org/jboss/seam/core/Filter.java
  
  Index: Filter.java
  ===================================================================
  package org.jboss.seam.core;
  
  import java.util.Map;
  
  import org.jboss.seam.InterceptionType;
  import org.jboss.seam.ScopeType;
  import org.jboss.seam.annotations.Intercept;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.core.Expressions.ValueBinding;
  
  /**
   * Support for declarative application of
   * Hibernate filters to persistence contexts.
   * 
   * @see org.hibernate.Filter
   * @see ManagedHibernateSession
   * @see ManagedPersistenceContext
   * @author Gavin King
   */
  @Intercept(InterceptionType.NEVER)
  @Scope(ScopeType.APPLICATION)
  public class Filter
  {
     private String name;
     private Map<String, ValueBinding> parameters;
     
     /**
      * The filter parameters.
      * 
      * @see org.hibernate.Filter#setParameter(String, Object)
      */
     public Map<String, ValueBinding> getParameters()
     {
        return parameters;
     }
     public void setParameters(Map<String, ValueBinding> parameters)
     {
        this.parameters = parameters;
     }
     
     /**
      * The Hibernate filter name.
      * 
      * @see org.hibernate.Session#enableFilter(String)
      */
     public String getName()
     {
        return name;
     }
     public void setName(String name)
     {
        this.name = name;
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list