+
+ private static final class MyLookup implements Lookup {
+
+ @Override
+ public Object lookup() throws Exception {
+ return new MyInterface() {
+
+ @Override
+ public int execute() {
+ return 10;
+ }
+ };
+ }
+ }
+
+ @Test
+ public void testProxyMustBerializable() throws Exception {
+ lookup = new MyLookup();
+ LookupProxyFactory<MyInterface> factory = new LookupProxyFactory<MyInterface>(
+ MyInterface.class, lookup);
+ proxy = factory.getProxy();
+
+ assertEquals(10, proxy.execute());
+
+ assertTrue(proxy instanceof Serializable);
+
+ proxy = ObjectSerializationUtils.deserialize(ObjectSerializationUtils.serialize(proxy),
+ MyInterface.class);
+
+ // and it should still work
+ assertEquals(10, proxy.execute());
+ }
+