From: <fc...@us...> - 2007-10-22 16:57:41
|
Revision: 476 http://openutils.svn.sourceforge.net/openutils/?rev=476&view=rev Author: fcarone Date: 2007-10-22 09:57:38 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Lazy loading enhancements Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2007-10-17 17:06:38 UTC (rev 475) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2007-10-22 16:57:38 UTC (rev 476) @@ -17,6 +17,11 @@ public class HibernateLazyLoaderAspect implements LazyLoader, Serializable { + /** + * UID + */ + private static final long serialVersionUID = -365731708075101363L; + private static ThreadLocal<Paginator> paginator = new ThreadLocal<Paginator>(); private String className; @@ -25,17 +30,20 @@ private Serializable id; + private HibernateLazyService hibernateLazyService; + /** * Constructor * @param className parent class name * @param fieldName field to be lazy loaded * @param id id of current entity */ - public HibernateLazyLoaderAspect(String className, String fieldName, Serializable id) + public HibernateLazyLoaderAspect(String className, String fieldName, Serializable id, HibernateLazyService hibernateLazyService) { this.className = className; this.fieldName = fieldName; this.id = id; + this.hibernateLazyService = hibernateLazyService; } /** @@ -62,14 +70,12 @@ public Object loadObject() throws Exception { // Load from remote - HibernateLazyService hls = HibernateRmiProxyFactoryBean.hibernateLazyServiceTL.get(); - if (paginator.get() != null) { - return hls.invoke(className, fieldName, id, paginator.get().getFrom(), paginator.get().getSize()); + return hibernateLazyService.invoke(className, fieldName, id, paginator.get().getFrom(), paginator.get().getSize()); } - return hls.invoke(className, fieldName, id); + return hibernateLazyService.invoke(className, fieldName, id); } } Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2007-10-17 17:06:38 UTC (rev 475) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2007-10-22 16:57:38 UTC (rev 476) @@ -1,5 +1,7 @@ package it.openutils.spring.rmibernate.server.aspects; +import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; + import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.hibernate.SessionFactory; @@ -36,13 +38,16 @@ */ public Object invoke(MethodInvocation invocation) throws Throwable { + logger.debug("Catched invocation: {}", invocation); try { Object retVal = invocation.proceed(); SerializationInterceptor.clean(); // Proxy class for serialization work - return SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); + Object result = SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); + logger.debug("Returning enhanced object {}", result); + return result; } catch (Throwable ex) { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2007-10-17 17:06:38 UTC (rev 475) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2007-10-22 16:57:38 UTC (rev 476) @@ -2,6 +2,7 @@ import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; import it.openutils.spring.rmibernate.shared.LazyReference; +import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -46,6 +47,8 @@ private static ThreadLocal<List<Object>> processed = new ThreadLocal<List<Object>>(); + private static ThreadLocal<HibernateLazyService> hibernateLazyService = new ThreadLocal<HibernateLazyService>(); + private static Map<Class, Object> proxies = Collections.synchronizedMap(new HashMap<Class, Object>()); /** @@ -74,6 +77,9 @@ this.sessionFactory = sessionFactory; } + /** + * Cleans the processed beans cache + */ public static void clean() { processed.set(null); @@ -112,6 +118,13 @@ return o; } + if (o.getClass().getName().startsWith("java.") && + !((o instanceof Collection) || (o instanceof Map))) + { + return o; + } + + // check if there is an empty constructor try { @@ -162,7 +175,7 @@ { if (proxies.containsKey(clazz)) { - Factory proxy = (Factory)proxies.get(clazz); + Factory proxy = (Factory) proxies.get(clazz); return proxy.newInstance(new Callback[]{callback, NoOp.INSTANCE }); } } @@ -185,7 +198,9 @@ }, new Callback[]{callback, NoOp.INSTANCE }); // store proxy - proxies.put(clazz, ((Factory)proxy).newInstance(new Callback[]{EmptyMethodInterceptor.INSTANCE, NoOp.INSTANCE })); + proxies.put(clazz, ((Factory) proxy).newInstance(new Callback[]{ + EmptyMethodInterceptor.INSTANCE, + NoOp.INSTANCE })); return proxy; } catch (Throwable t) @@ -201,7 +216,6 @@ @SuppressWarnings("unchecked") public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { - try { if (original == null) @@ -209,6 +223,12 @@ return null; } + if (original.getClass().getName().startsWith("java.") && + !(original instanceof Collection) || (original instanceof Map)) + { + return original; + } + if (processed.get() == null) { processed.set(new ArrayList<Object>()); @@ -219,6 +239,7 @@ if (original.getClass().isPrimitive()) { + log.debug("Non enhancing primitive type: {}", original.getClass().getName()); return original; } else if (original.getClass().isArray()) @@ -258,6 +279,8 @@ ReflectionUtils.doWithFields(original.getClass(), new ReflectionUtils.FieldCallback() { + + /** * {@inheritDoc} */ @@ -331,4 +354,23 @@ }; } + + /** + * Sets the hibernateLazyService. + * @param hibernateLazyService the hibernateLazyService to set + */ + public static void setHibernateLazyService(HibernateLazyService hibernateLazyService) + { + SerializationInterceptor.hibernateLazyService.set(hibernateLazyService); + } + + + /** + * Returns the hibernateLazyService. + * @return the hibernateLazyService + */ + public static HibernateLazyService getHibernateLazyService() + { + return hibernateLazyService.get(); + } } Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-17 17:06:38 UTC (rev 475) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-22 16:57:38 UTC (rev 476) @@ -1,5 +1,6 @@ package it.openutils.spring.rmibernate.shared; +import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; import it.openutils.spring.rmibernate.client.aspects.HibernateLazyLoaderAspect; import java.io.ObjectStreamException; @@ -16,6 +17,11 @@ public class LazyReference implements Serializable { + /** + * UID + */ + private static final long serialVersionUID = 421364413345638150L; + private Serializable id; private String fieldName; @@ -68,7 +74,7 @@ return Enhancer.create( superclass, interfaces, - new HibernateLazyLoaderAspect(className, fieldName, id)); + new HibernateLazyLoaderAspect(className, fieldName, id, HibernateRmiProxyFactoryBean.hibernateLazyServiceTL.get())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2007-10-25 16:50:37
|
Revision: 481 http://openutils.svn.sourceforge.net/openutils/?rev=481&view=rev Author: fcarone Date: 2007-10-25 09:50:39 -0700 (Thu, 25 Oct 2007) Log Message: ----------- It's now possible to send intercepted beans back to the server Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Added Paths: ----------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java Property Changed: ---------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2007-10-25 16:50:39 UTC (rev 481) @@ -9,12 +9,17 @@ /** * ProxyFactoryBean for automatic injection of remote lazy loading proxies * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class HibernateRmiProxyFactoryBean extends RmiProxyFactoryBean { /** + * + */ + private static final long serialVersionUID = 6545259150454309616L; + + /** * Store the hibernate lazy service to be used by remote lazy loading */ public static ThreadLocal<HibernateLazyService> hibernateLazyServiceTL = new ThreadLocal<HibernateLazyService>(); Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java ___________________________________________________________________ Name: svn:keywords + Id Added: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2007-10-25 16:50:39 UTC (rev 481) @@ -0,0 +1,43 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.client.aspects; + +import java.io.Serializable; +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + + +/** + * @author fcarone + * @version $Id: $ + */ +public class ClientSerializationInterceptor implements MethodInterceptor, Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -2694751376173790718L; + + private HibernateLazyLoaderAspect hibernateLazyLoaderAspect; + + /** + * @param hlla + */ + public ClientSerializationInterceptor(HibernateLazyLoaderAspect hibernateLazyLoaderAspect) + { + this.hibernateLazyLoaderAspect = hibernateLazyLoaderAspect; + } + + /** + * {@inheritDoc} + */ + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable + { + return hibernateLazyLoaderAspect.loadObject(); + } + +} Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2007-10-25 16:50:39 UTC (rev 481) @@ -1,6 +1,5 @@ package it.openutils.spring.rmibernate.client.aspects; -import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; import it.openutils.spring.rmibernate.client.pagination.Paginator; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; @@ -12,7 +11,7 @@ /** * Aspect that does remote lazy loading on cglib proxy * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class HibernateLazyLoaderAspect implements LazyLoader, Serializable { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2007-10-25 16:50:39 UTC (rev 481) @@ -2,7 +2,7 @@ /** * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class Paginator { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2007-10-25 16:50:39 UTC (rev 481) @@ -8,7 +8,7 @@ /** * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class EmptyMethodInterceptor implements MethodInterceptor { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2007-10-25 16:50:39 UTC (rev 481) @@ -1,7 +1,5 @@ package it.openutils.spring.rmibernate.server.aspects; -import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; - import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.hibernate.SessionFactory; @@ -12,7 +10,7 @@ /** * Main server interceptor on rmi calls * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class HibernateLazyRmiInterceptor implements MethodInterceptor { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2007-10-25 16:50:39 UTC (rev 481) @@ -11,7 +11,7 @@ /** * Aspect on lazy fields to intercept writeReplace * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class LazyReferenceAspect implements MethodInterceptor { @@ -33,7 +33,6 @@ */ public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { - // TODO Auto-generated method stub return lazyReference; } Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2007-10-25 16:50:39 UTC (rev 481) @@ -40,7 +40,7 @@ /** * Proxy object with {@link EntitySerializer} and Intercept writeReplace calls * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class SerializationInterceptor implements MethodInterceptor { @@ -118,13 +118,11 @@ return o; } - if (o.getClass().getName().startsWith("java.") && - !((o instanceof Collection) || (o instanceof Map))) + if (o.getClass().getName().startsWith("java.") && !((o instanceof Collection) || (o instanceof Map))) { return o; } - // check if there is an empty constructor try { @@ -223,8 +221,9 @@ return null; } - if (original.getClass().getName().startsWith("java.") && - !(original instanceof Collection) || (original instanceof Map)) + if (original.getClass().getName().startsWith("java.") + && !(original instanceof Collection) + || (original instanceof Map)) { return original; } @@ -279,8 +278,6 @@ ReflectionUtils.doWithFields(original.getClass(), new ReflectionUtils.FieldCallback() { - - /** * {@inheritDoc} */ @@ -354,7 +351,6 @@ }; } - /** * Sets the hibernateLazyService. * @param hibernateLazyService the hibernateLazyService to set @@ -364,7 +360,6 @@ SerializationInterceptor.hibernateLazyService.set(hibernateLazyService); } - /** * Returns the hibernateLazyService. * @return the hibernateLazyService Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2007-10-25 16:50:39 UTC (rev 481) @@ -5,7 +5,7 @@ /** * Interface for intercepting writeReplace method calls * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public interface EntitySerializer { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2007-10-25 16:50:39 UTC (rev 481) @@ -12,7 +12,7 @@ /** * Rmi exporter that checks laziness of bean fields in all object graph * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class HibernateRmiServiceExporter extends RmiServiceExporter { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2007-10-25 16:50:39 UTC (rev 481) @@ -35,7 +35,7 @@ /** * Server side implementation of remote lazy loading calls * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class HibernateLazyServiceImpl implements HibernateLazyService { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java ___________________________________________________________________ Name: svn:keywords + Id Added: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java 2007-10-25 16:50:39 UTC (rev 481) @@ -0,0 +1,38 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.shared; + +import java.io.Serializable; +import java.lang.reflect.Method; + +import org.apache.commons.lang.StringUtils; + +import net.sf.cglib.proxy.CallbackFilter; + + +/** + * @author fcarone + * @version $Id: $ + */ +public class HibernateLazyLoaderCallbackFilter implements CallbackFilter, Serializable +{ + + /** + * + */ + private static final long serialVersionUID = 3409438660731356981L; + + /** + * {@inheritDoc} + */ + public int accept(Method method) + { + if (StringUtils.equals(method.getName(), "writeReplace")) + { + return 1; + } + return 0; + } + +} Added: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java 2007-10-25 16:50:39 UTC (rev 481) @@ -0,0 +1,21 @@ +/* + * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + */ +package it.openutils.spring.rmibernate.shared; + +import java.io.ObjectStreamException; + + +/** + * @author fcarone + * @version $Id: $ + * This interface is necessary to enable the callback on the CGLib Enhanced dataobject + */ +public interface IWriteReplace +{ + /** + * @return The replaced object + * @throws ObjectStreamException Unmarshalling exception + */ + Object writeReplace() throws ObjectStreamException; +} Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-25 16:50:39 UTC (rev 481) @@ -1,18 +1,20 @@ package it.openutils.spring.rmibernate.shared; import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; +import it.openutils.spring.rmibernate.client.aspects.ClientSerializationInterceptor; import it.openutils.spring.rmibernate.client.aspects.HibernateLazyLoaderAspect; import java.io.ObjectStreamException; import java.io.Serializable; +import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.Enhancer; /** * Store lazy reference * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public class LazyReference implements Serializable { @@ -64,17 +66,24 @@ { // get proxy superclass Class superclass = Class.forName(fieldClassName); - Class[] interfaces = null; + Class[] interfaces = new Class[]{Serializable.class }; + // if superclass is an interface add it to interfaces if (superclass.isInterface()) { - interfaces = new Class[]{superclass}; + interfaces = new Class[]{superclass, Serializable.class, IWriteReplace.class }; } + + HibernateLazyLoaderAspect hlla = new HibernateLazyLoaderAspect( + className, + fieldName, + id, + HibernateRmiProxyFactoryBean.hibernateLazyServiceTL.get()); + // return proxy - return Enhancer.create( - superclass, - interfaces, - new HibernateLazyLoaderAspect(className, fieldName, id, HibernateRmiProxyFactoryBean.hibernateLazyServiceTL.get())); + return Enhancer.create(superclass, interfaces, new HibernateLazyLoaderCallbackFilter(), new Callback[]{ + hlla, + new ClientSerializationInterceptor(hlla) }); } @@ -108,13 +117,11 @@ this.fieldName = fieldName; } - public String getFieldClassName() { return fieldClassName; } - public void setFieldClassName(String fieldClassName) { this.fieldClassName = fieldClassName; Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java ___________________________________________________________________ Name: svn:keywords + Id Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2007-10-24 17:09:54 UTC (rev 480) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2007-10-25 16:50:39 UTC (rev 481) @@ -7,7 +7,7 @@ /** * Interface for server-side remote lazy loading calls * @author mmolaschi - * @version $Id: $ + * @version $Id$ */ public interface HibernateLazyService { Property changes on: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java ___________________________________________________________________ Name: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2007-10-26 08:56:07
|
Revision: 482 http://openutils.svn.sourceforge.net/openutils/?rev=482&view=rev Author: fcarone Date: 2007-10-26 01:56:04 -0700 (Fri, 26 Oct 2007) Log Message: ----------- IWriteReplace interface removed, duped by EntitySerializer Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java Removed Paths: ------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2007-10-25 16:50:39 UTC (rev 481) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2007-10-26 08:56:04 UTC (rev 482) @@ -28,6 +28,8 @@ import org.hibernate.collection.PersistentSortedMap; import org.hibernate.collection.PersistentSortedSet; import org.hibernate.proxy.HibernateProxy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.HibernateTemplate; @@ -46,11 +48,17 @@ private SessionFactory sessionFactory; /** + * Logger. + */ + private static Logger log = LoggerFactory.getLogger(HibernateLazyServiceImpl.class); + + /** * {@inheritDoc} */ @SuppressWarnings("unchecked") public Object invoke(final String className, final String methodName, final Serializable id) throws RemoteException { + log.debug("Initializing lazy property."); return invoke(className, methodName, id, true); } @@ -62,11 +70,11 @@ HibernateTemplate ht = new HibernateTemplate(sessionFactory); return ht.execute(new HibernateCallback() { - public Object doInHibernate(Session session) throws HibernateException, SQLException { try { + log.debug("Loading class: {}, id {}, method {}", new Object[] {className, id, methodName}); Object entity = sessionFactory.getCurrentSession().load(Class.forName(className), id); Object retVal = PropertyUtils.getProperty(entity, methodName); if (init) @@ -77,6 +85,7 @@ } catch (Exception ex) { + log.error("{}", ex); throw new HibernateException(ex); } } Deleted: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java 2007-10-25 16:50:39 UTC (rev 481) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/IWriteReplace.java 2007-10-26 08:56:04 UTC (rev 482) @@ -1,21 +0,0 @@ -/* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it - */ -package it.openutils.spring.rmibernate.shared; - -import java.io.ObjectStreamException; - - -/** - * @author fcarone - * @version $Id: $ - * This interface is necessary to enable the callback on the CGLib Enhanced dataobject - */ -public interface IWriteReplace -{ - /** - * @return The replaced object - * @throws ObjectStreamException Unmarshalling exception - */ - Object writeReplace() throws ObjectStreamException; -} Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-25 16:50:39 UTC (rev 481) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2007-10-26 08:56:04 UTC (rev 482) @@ -3,6 +3,7 @@ import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; import it.openutils.spring.rmibernate.client.aspects.ClientSerializationInterceptor; import it.openutils.spring.rmibernate.client.aspects.HibernateLazyLoaderAspect; +import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; import java.io.ObjectStreamException; import java.io.Serializable; @@ -71,7 +72,7 @@ // if superclass is an interface add it to interfaces if (superclass.isInterface()) { - interfaces = new Class[]{superclass, Serializable.class, IWriteReplace.class }; + interfaces = new Class[]{superclass, Serializable.class, EntitySerializer.class }; } HibernateLazyLoaderAspect hlla = new HibernateLazyLoaderAspect( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fc...@us...> - 2008-03-03 12:13:17
|
Revision: 714 http://openutils.svn.sourceforge.net/openutils/?rev=714&view=rev Author: fcarone Date: 2008-03-03 04:13:15 -0800 (Mon, 03 Mar 2008) Log Message: ----------- copyright notice updated on all files. Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/HibernateRmiProxyFactoryBean.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.client; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; @@ -15,15 +31,12 @@ { /** - * - */ - private static final long serialVersionUID = 6545259150454309616L; - - /** * Store the hibernate lazy service to be used by remote lazy loading */ public static ThreadLocal<HibernateLazyService> hibernateLazyServiceTL = new ThreadLocal<HibernateLazyService>(); + private static final long serialVersionUID = 6545259150454309616L; + private HibernateLazyService hibernateLazyService; /** @@ -36,7 +49,7 @@ if (hibernateLazyService == null) { // if hibernateLazyService is null this means that this service IS hibernateLazyService - hibernateLazyServiceTL.set((HibernateLazyService)this.getObject()); + hibernateLazyServiceTL.set((HibernateLazyService) this.getObject()); } else { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/ClientSerializationInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,6 +1,19 @@ /* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package it.openutils.spring.rmibernate.client.aspects; import java.io.Serializable; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/aspects/HibernateLazyLoaderAspect.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.client.aspects; import it.openutils.spring.rmibernate.client.pagination.Paginator; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/client/pagination/Paginator.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.client.pagination; /** Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/EmptyMethodInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.aspects; import java.lang.reflect.Method; @@ -20,7 +36,6 @@ */ public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { - // TODO Auto-generated method stub return proxy.invokeSuper(obj, args); } Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/HibernateLazyRmiInterceptor.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.aspects; import org.aopalliance.intercept.MethodInterceptor; @@ -43,9 +59,7 @@ SerializationInterceptor.clean(); // Proxy class for serialization work - Object result = SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); - logger.debug("Returning enhanced object {}", result); - return result; + return SerializationInterceptor.getEnhancedObject(retVal, sessionFactory); } catch (Throwable ex) { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/LazyReferenceAspect.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.aspects; import it.openutils.spring.rmibernate.shared.LazyReference; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/util/EntitySerializer.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.aspects.util; import java.io.ObjectStreamException; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/exporter/HibernateRmiServiceExporter.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.exporter; import it.openutils.spring.rmibernate.server.aspects.HibernateLazyRmiInterceptor; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/managers/HibernateLazyServiceImpl.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.server.managers; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; @@ -165,9 +181,6 @@ return null; } - // get class - Class fClass = lazy.getClass(); - // if is a single object proxy if (lazy instanceof HibernateProxy) { Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/HibernateLazyLoaderCallbackFilter.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,6 +1,19 @@ /* - * Copyright (c) Openmind. All rights reserved. http://www.openmindonline.it + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package it.openutils.spring.rmibernate.shared; import java.io.Serializable; Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/LazyReference.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.shared; import it.openutils.spring.rmibernate.client.HibernateRmiProxyFactoryBean; @@ -85,7 +101,6 @@ return Enhancer.create(superclass, interfaces, new HibernateLazyLoaderCallbackFilter(), new Callback[]{ hlla, new ClientSerializationInterceptor(hlla) }); - } public String getClassName() Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2008-03-03 12:11:11 UTC (rev 713) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/managers/HibernateLazyService.java 2008-03-03 12:13:15 UTC (rev 714) @@ -1,3 +1,19 @@ +/* + * Copyright Openmind http://www.openmindonline.it + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package it.openutils.spring.rmibernate.shared.managers; import java.io.Serializable; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mup...@us...> - 2008-03-05 17:17:33
|
Revision: 719 http://openutils.svn.sourceforge.net/openutils/?rev=719&view=rev Author: muppet68 Date: 2008-03-05 09:17:33 -0800 (Wed, 05 Mar 2008) Log Message: ----------- NoLazy enhancement Modified Paths: -------------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java Added Paths: ----------- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java Modified: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-05 17:08:56 UTC (rev 718) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/server/aspects/SerializationInterceptor.java 2008-03-05 17:17:33 UTC (rev 719) @@ -18,6 +18,7 @@ import it.openutils.spring.rmibernate.server.aspects.util.EntitySerializer; import it.openutils.spring.rmibernate.shared.LazyReference; +import it.openutils.spring.rmibernate.shared.NoLazyEnhancement; import it.openutils.spring.rmibernate.shared.managers.HibernateLazyService; import java.lang.reflect.Field; @@ -249,6 +250,11 @@ return null; } + if (original.getClass() + .isAnnotationPresent(NoLazyEnhancement.class)) { + return original; + } + if (original.getClass().getName().startsWith("java.") && !((original instanceof Collection) || (original instanceof Map))) { Added: trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java =================================================================== --- trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java (rev 0) +++ trunk/openutils-spring-rmibernate/src/main/java/it/openutils/spring/rmibernate/shared/NoLazyEnhancement.java 2008-03-05 17:17:33 UTC (rev 719) @@ -0,0 +1,5 @@ +package it.openutils.spring.rmibernate.shared; + +public @interface NoLazyEnhancement { + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |