[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