[rules-users] ShadowProxy & PersistentSet

Mark Proctor mproctor at codehaus.org
Mon Apr 28 10:13:32 EDT 2008


Mock classes?

vdelbart wrote:
> I create a JIRA : http://jira.jboss.com/jira/browse/JBRULES-1590
>
> it's to complicate to me to create an unit test with a hibernate session.
>
> thanks,
>
> V.
>
>
> Mark Proctor wrote:
>   
>> Can you open a JIRA for this? If you provide a unit test with it, we'll 
>> see if we can include this in 4.0.7. 5.0 will now have shadow proxies 
>> any more, as default.
>>
>> Mark
>> vdelbart wrote:
>>     
>>> I think the method cloneObject 'ShadowProxyUtils' could be improve like
>>> follow :
>>>
>>>    public static Object cloneObject(Object original) {
>>>         Object clone = null;
>>>         if ( original instanceof Cloneable ) {
>>>             try {
>>>                 Method cloneMethod = original.getClass().getMethod(
>>> "clone",
>>>                                                                     new
>>> Class[0] );
>>>                 clone = cloneMethod.invoke( original,
>>>                                             new Object[0] );
>>>             } catch ( Exception e ) {
>>>                 /* Failed to clone.  Don't worry about it, and just
>>> return
>>>                  * the original object. */
>>>                 clone = null;
>>>             }
>>>         }
>>>
>>>         if ( clone == null ) {
>>>             try {
>>>                 if ( original instanceof Map && 
>>>                      original != Collections.EMPTY_MAP && 
>>>                      !UNMODIFIABLE_MAP.isAssignableFrom(
>>> original.getClass()
>>> ) ) {
>>>                     
>>>                     /* empty and unmodifiable maps can't (and don't need
>>> to)
>>> be shadowed */
>>>                     clone = original.getClass().newInstance();
>>>                     ((Map) clone).putAll( (Map) original );
>>>                     
>>>                 } else if ( original instanceof Collection && 
>>>                             original != Collections.EMPTY_LIST && 
>>>                             original != Collections.EMPTY_SET && 
>>>                             !UNMODIFIABLE_COLLECTION.isAssignableFrom(
>>> original.getClass() ) ) {
>>>                     
>>>                     /* empty and unmodifiable collections can't (and
>>> don't
>>> need to) be shadowed */
>>>                     clone = original.getClass().newInstance();
>>>                     ((Collection) clone).addAll( (Collection) original );
>>>                     
>>>                 } else if ( original.getClass().isArray() ) {
>>>                     clone = cloneArray( original );
>>>                 }
>>>                 
>>>             } catch ( Exception e ) {
>>>                 /* Failed to clone.  Don't worry about it, and just
>>> return
>>>                  * the original object. */
>>>                 clone = null;
>>>             }
>>>         }
>>>
>>>         if ( clone == null ) {
>>>             clone = original;
>>>         }
>>>
>>>         return clone;
>>>     }
>>>
>>>
>>> In this way my PersistentSet will be not clone and I will be able to
>>> continue to use shadow fact
>>>
>>> What do you think about ?
>>>
>>> V.
>>>
>>>   
>>>       
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>     
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080428/9f66683f/attachment.html 


More information about the rules-users mailing list