Author: epbernard
Date: 2007-03-28 14:20:54 -0400 (Wed, 28 Mar 2007)
New Revision: 11355
Added:
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java
Log:
Mote test on Session wrappers
Added:
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java
===================================================================
---
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java
(rev 0)
+++
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/DelegationWrapper.java 2007-03-28
18:20:54 UTC (rev 11355)
@@ -0,0 +1,34 @@
+//$Id: $
+package org.hibernate.search.test.session;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationHandler;
+import java.io.Serializable;
+
+import org.hibernate.Session;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class DelegationWrapper implements InvocationHandler, Serializable {
+ Object realSession;
+
+ public DelegationWrapper(Session session) {
+ this.realSession = session;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ try {
+ return method.invoke( realSession, args );
+ }
+ catch (InvocationTargetException e) {
+ if ( e.getTargetException() instanceof RuntimeException ) {
+ throw (RuntimeException) e.getTargetException();
+ }
+ else {
+ throw e;
+ }
+ }
+ }
+}
Added:
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java
===================================================================
--- trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java
(rev 0)
+++
trunk/HibernateExt/search/src/test/org/hibernate/search/test/session/SessionTest.java 2007-03-28
18:20:54 UTC (rev 11355)
@@ -0,0 +1,46 @@
+//$Id: $
+package org.hibernate.search.test.session;
+
+import java.lang.reflect.Proxy;
+
+import org.hibernate.search.test.SearchTestCase;
+import org.hibernate.search.Search;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.Session;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class SessionTest extends SearchTestCase {
+
+ private static final Class[] SESS_PROXY_INTERFACES = new Class[] {
+ org.hibernate.classic.Session.class,
+ org.hibernate.engine.SessionImplementor.class,
+ org.hibernate.jdbc.JDBCContext.Context.class,
+ org.hibernate.event.EventSource.class
+ };
+
+ public void testSessionWrapper() throws Exception {
+ Session s = openSession( );
+ DelegationWrapper wrapper = new DelegationWrapper( s );
+ Session wrapped = (Session) Proxy.newProxyInstance(
+ org.hibernate.classic.Session.class.getClassLoader(),
+ SESS_PROXY_INTERFACES,
+ wrapper
+ );
+ try {
+ FullTextSession fts = Search.createFullTextSession( wrapped );
+ }
+ catch( ClassCastException e ) {
+ e.printStackTrace( );
+ fail(e.toString());
+ }
+ wrapped.close();
+ }
+
+ protected Class[] getMappings() {
+ return new Class[] {
+ Email.class
+ };
+ }
+}
Show replies by date