[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