[rules-users] ShadowProxy & PersistentSet

vdelbart delbart.v at mipih.fr
Mon Apr 28 11:46:14 EDT 2008


I post a test case in the JIRA


Mark Proctor wrote:
> 
> 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
>>>
>>>
>>>     
>>
>>   
> 
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/ShadowProxy---PersistentSet-tp16824934p16941799.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list