[rules-dev] @metadata: status; compatibility issues

Michael Anstis michael.anstis at gmail.com
Wed May 4 17:58:08 EDT 2011


Guvnor currently (and always has AFAIK) constructed metadata as
"@name(value)" i.e. no quotation marks around the value.

Is this still valid, or do we need to make a change to support the
underlying change?

Thanks,

Mike

On 29 April 2011 23:30, Wolfgang Laun <wolfgang.laun at gmail.com> wrote:

>
>
> On 29 April 2011 19:18, Edson Tirelli <ed.tirelli at gmail.com> wrote:
>
>>
>>    Wolfgang,
>>
>>    It seems to me that what we need to to improve the solution to address
>> the problems you listed, but we are better now then we were before, as we
>> support everything that was supported in 5.1 + the new use cases.
>>
>
> Correct!
>
>
>
>>
>>    Did I miss something?
>>
>> Only if you intend to do, in a later release, s.th. with those
> expressions, such as evaluate them if they are all literal, or maybe with
> imported variables, if that can be done at all. If yes, the thing I'd
> propose is to either announce (clearly!) the future change ("expressions
> will not remain expressions returned as Strings") OR reduce the accepted
> expressions to single literals of the basic types, which could be converted
> to Integer/String/Boolean objects according to their natural syntax.
>
> Perhaps the concatenation of duplicated inner Map values should be removed
> - I'm afraid I did that, in an effort to avoid silent overwriting, which
> definitely isn't better; both is bad.
>
> Wolfgang
>
>
>>    Edson
>>
>> 2011/4/29 Wolfgang Laun <wolfgang.laun at gmail.com>
>>
>>> The current parser handles metadata annotations
>>>
>>>   '@' *Identifier* '(' *Text* ')'
>>>
>>> so that the annotations for one entity (e.g., a rule) are available as a
>>> Map<String,Object>, where the key is given by the *Identifier *and the
>>> value of the entry is available according to
>>>
>>> *if*  *Text* can be *completely* parsed as   *Identifier* '=' *
>>> Expression* (where  *Expression*  is whatever the DRL parser accepts as
>>> an expression, i.e., an extended subset of Java expressions)
>>>    *then*
>>>       the value is a Map<String,String>
>>>    *else
>>>      the *value is a String, with trimmed leading and trailing white
>>> space, but preserving all embedded white space
>>>
>>> Changes compared to 5.1.1:
>>>    - no Map was ever returned in 5.1.1,
>>>    - @m( "foo" ) in 5.1.1. returned "foo", but 5.2.0 returns "\"foo\"".
>>>    - @m( "foo", "bar" ) in 5.1.1. returned "foo\", \"bar", but 5.2.0
>>> returns "\"foo\", \"bar\""
>>>    - comments between "@...(" and ")" are now handled consistently but
>>> were not in 5.1.1
>>>
>>> Possibly considered a problem for 5.2.0 or later:
>>> - No check is made for duplicate "outer" map keys; entries are
>>> overwritten.
>>> - Repeated "inner" map keys produce concatenated entries, e.g. @m( k = 1,
>>> k = "a" ) returns "1a" as the value for key "k".
>>> - Returning (arbitrary) expressions, unchanged, as String now may cause
>>> incompatibilitie with more sophisticated processing (if this ever should be
>>> considered).
>>>
>>> -W
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> rules-dev mailing list
>>> rules-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>>
>>>
>>
>>
>> --
>>   Edson Tirelli
>>   JBoss Drools Core Development
>>   JBoss by Red Hat @ www.jboss.com
>>
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>
>>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20110504/d98d1f01/attachment.html 


More information about the rules-dev mailing list