[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