[windup-dev] RuleProvider's and Rule's metadata

Ondrej Zizka ozizka at redhat.com
Tue Mar 3 13:54:47 EST 2015


After today's meeting dedicated to this topic, we

* Updated 
https://docs.google.com/document/d/1F07dzjkAwupZ7-FusBP6OQXDkQzwwKqnqL7gEvw7nrc/edit#

* Created https://issues.jboss.org/browse/WINDUP-520

* Split these tasks:

 1.

    Implement categories / fix the PR - Ondra

 2.

    Metadata API - Lincoln

 3.

    Filtering and selection (UI) - Jess

 4. XML handlers to actually define rules metadata in XML - Matej?



The rest inline.


On 19.2.2015 23:12, Lincoln Baxter, III wrote:
> Hey Ondra,
>
> For now, let's continue using Rule objects as Contexts. Once the 
> prototype is working and tested, we can look at ways to add a real API 
> onto the Rule objects (or possibly add some indirection or abstraction.)
+1, step-by-step, no rushing :) But eventually. ;-)
>
> Keep in mind that you shouldn't be focused too much on the individual 
> Rule objects, you probably should be focused on the Rule Providers 
> that they are loaded from (since we do most of our filtering on the 
> RuleProviders themselves, not on the rules.) I would be a lot more 
> willing to change the RuleProvider API to add the getMetadata() method 
> that you are looking for than I would be changing the Rule API in Rewrite.
Right, rules themselves won't probably have much specific metadata for 
now. They will rather "inherit" from the higher structures.

--
Ondra

>
> ~Lincoln
>
> On Thu, Feb 19, 2015 at 8:55 AM, Ondrej Zizka <ozizka at redhat.com 
> <mailto:ozizka at redhat.com>> wrote:
>
>     Hi all,
>
>     I am working on the categories.
>     I think we all agree that this should have a nice API since every rule
>     will work with that, directly or indirectly.
>     We will get more metadata, and "hiding" them into various places,
>     untyped hashmaps of lists of strings, really seems like a bad way
>     to do it.
>
>     After some work on the subject, I think we should abandon the current
>     unfortunate approach of Rules acting like a map through being a
>     Rule and
>     Context at the same time, needing conditional retyping. And the other
>     way of overriding methods like enhanceMetadata() is not fortunate
>     either
>     as every subclass needs to be aware of what's going on in the
>     superclasses.
>
>     Instead, we should follow the *conventions*, take the *standard*
>     approach, and let Rules have a normal getMetadata(), which would
>     return
>     an object with all the metadata at one place. This could be subclassed
>     to match the needs of individual addons but provide type-safe and
>     easy-to-use API for shared metadata.
>
>     getPhase(), getExecute*(), getCategories() etc. could
>     a) still return what they return, being executed by the loader as now,
>     and put to that object, or
>     b) let the rule initialize this object in rule's init() (which we
>     don't
>     have) or a construtor;
>            I would drop get*() but we could tunel them to that object for
>     backwards compatibility.
>
>     I think this goes beyond the scope of Windup and would need a
>     rewrite of
>     Rewrite (well, not real rewrite, but I liked the pun :).
>
>     Other option is to keep scattering metadata in various places, untyped
>     hashmaps of lists of strings. Not recommended.
>
>     WDYT?
>     Ondra
>     _______________________________________________
>     windup-dev mailing list
>     windup-dev at lists.jboss.org <mailto:windup-dev at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/windup-dev
>
>
>
>
> -- 
> Lincoln Baxter, III
> http://ocpsoft.org
> "Simpler is better."
>
>
> _______________________________________________
> windup-dev mailing list
> windup-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/windup-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/windup-dev/attachments/20150303/e63012d6/attachment.html 


More information about the windup-dev mailing list