Search in sources :

Example 6 with DefaultObjectFactory

use of org.apache.ibatis.reflection.factory.DefaultObjectFactory in project mybatis-3 by mybatis.

the class SerializableProxyTest method shouldKeepGenericTypes.

@Test
public void shouldKeepGenericTypes() throws Exception {
    for (int i = 0; i < 10000; i++) {
        Author pc = new Author();
        Author proxy = (Author) proxyFactory.createProxy(pc, new ResultLoaderMap(), new Configuration(), new DefaultObjectFactory(), new ArrayList<Class<?>>(), new ArrayList<Object>());
        proxy.getBio();
    }
}
Also used : Configuration(org.apache.ibatis.session.Configuration) DefaultObjectFactory(org.apache.ibatis.reflection.factory.DefaultObjectFactory) ArrayList(java.util.ArrayList) Author(org.apache.ibatis.domain.blog.Author) Test(org.junit.Test)

Example 7 with DefaultObjectFactory

use of org.apache.ibatis.reflection.factory.DefaultObjectFactory in project mybatis-3 by mybatis.

the class SerializableProxyTest method shouldGenerateWriteReplace.

@Test
public void shouldGenerateWriteReplace() throws Exception {
    try {
        author.getClass().getDeclaredMethod("writeReplace");
        fail("Author should not have a writeReplace method");
    } catch (NoSuchMethodException e) {
    // ok
    }
    Object proxy = proxyFactory.createProxy(author, new ResultLoaderMap(), new Configuration(), new DefaultObjectFactory(), new ArrayList<Class<?>>(), new ArrayList<Object>());
    Method m = proxy.getClass().getDeclaredMethod("writeReplace");
}
Also used : Configuration(org.apache.ibatis.session.Configuration) DefaultObjectFactory(org.apache.ibatis.reflection.factory.DefaultObjectFactory) Method(java.lang.reflect.Method) Test(org.junit.Test)

Example 8 with DefaultObjectFactory

use of org.apache.ibatis.reflection.factory.DefaultObjectFactory in project mybatis-3 by mybatis.

the class SerializableProxyTest method shouldNotCreateAProxyForAFullyLoadedBean.

@Test
public void shouldNotCreateAProxyForAFullyLoadedBean() throws Exception {
    Object proxy = proxyFactory.createProxy(author, new ResultLoaderMap(), new Configuration(), new DefaultObjectFactory(), new ArrayList<Class<?>>(), new ArrayList<Object>());
    Author author2 = (Author) deserialize(serialize((Serializable) proxy));
    assertEquals(author.getClass(), author2.getClass());
}
Also used : Configuration(org.apache.ibatis.session.Configuration) DefaultObjectFactory(org.apache.ibatis.reflection.factory.DefaultObjectFactory) Author(org.apache.ibatis.domain.blog.Author) Test(org.junit.Test)

Example 9 with DefaultObjectFactory

use of org.apache.ibatis.reflection.factory.DefaultObjectFactory in project mybatis-3 by mybatis.

the class SerializableProxyTest method shouldNotLetReadUnloadedPropertyAfterSerialization.

@Test(expected = ExecutorException.class)
public void shouldNotLetReadUnloadedPropertyAfterSerialization() throws Exception {
    ResultLoaderMap loader = new ResultLoaderMap();
    loader.addLoader("id", null, null);
    Object proxy = proxyFactory.createProxy(author, loader, new Configuration(), new DefaultObjectFactory(), new ArrayList<Class<?>>(), new ArrayList<Object>());
    Author author2 = (Author) deserialize(serialize((Serializable) proxy));
    author2.getId();
}
Also used : Configuration(org.apache.ibatis.session.Configuration) DefaultObjectFactory(org.apache.ibatis.reflection.factory.DefaultObjectFactory) Author(org.apache.ibatis.domain.blog.Author) Test(org.junit.Test)

Example 10 with DefaultObjectFactory

use of org.apache.ibatis.reflection.factory.DefaultObjectFactory in project mybatis-3 by mybatis.

the class CglibProxyTest method shouldSerizalizeADeserlizaliedProxy.

@Test
public void shouldSerizalizeADeserlizaliedProxy() throws Exception {
    Object proxy = ((CglibProxyFactory) proxyFactory).createDeserializationProxy(author, new HashMap<String, ResultLoaderMap.LoadPair>(), new DefaultObjectFactory(), new ArrayList<Class<?>>(), new ArrayList<Object>());
    Author author2 = (Author) deserialize(serialize((Serializable) proxy));
    assertEquals(author, author2);
    assertFalse(author.getClass().equals(author2.getClass()));
}
Also used : CglibProxyFactory(org.apache.ibatis.executor.loader.cglib.CglibProxyFactory) DefaultObjectFactory(org.apache.ibatis.reflection.factory.DefaultObjectFactory) Author(org.apache.ibatis.domain.blog.Author) Test(org.junit.Test)

Aggregations

DefaultObjectFactory (org.apache.ibatis.reflection.factory.DefaultObjectFactory)19 Test (org.junit.Test)19 Author (org.apache.ibatis.domain.blog.Author)13 Configuration (org.apache.ibatis.session.Configuration)13 ArrayList (java.util.ArrayList)7 Serializable (java.io.Serializable)4 HashMap (java.util.HashMap)4 CglibProxyFactory (org.apache.ibatis.executor.loader.cglib.CglibProxyFactory)2 Method (java.lang.reflect.Method)1 Proxy (javassist.util.proxy.Proxy)1 Factory (net.sf.cglib.proxy.Factory)1 JavassistProxyFactory (org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory)1