[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: NEW ISSUE: Need an equivalent to "autowire" for the eventing world
Title: Need an equivalent to "autowire" for the eventing world Target: Assembly 1.2 WD 01 Description: With the references and services of SCA Assembly, the spec currently supports the notion of "autowire". Whatever the merits in the service space, this concept fits even more naturally into the eventing world. The use case: Forcing users to explicitly wire up all of the producers and consumers may be over-determined. That, is, given the exact specification of which events a consumer is interested in, and the events that a producer sends out, that should be sufficient to wire them. Making this situation worse, users might have to go through the error prone effort of specifying which channels are required to connect to which producers, and possibly missing out, or incorrectly wiring in a few cases. One distinction to draw in the "autowire" of producers and consumers in the eventing world is that it may be very useful to have auto-wired consumers and producers cross composite boundaries. Some notion of "scope" might be appropriate. Two forms of scope probably make sense: - one bounded by the presence of a parent composite - the other tied to some notion of intent. For example, I want scope "sales", or "sales, northamerica", or "manufacturing, europe" Abstract proposal: Add to a component producer, and a component consumer an attribute @autowire (true/false). The presence of @autowire true prevents the use of the @target, and @source attributes. Also add an @autowireIntent attribute, which includes a space separated list of tags/intents to pair up. In conjunction with autowiring, a producer must declare the exact set of events it produces, and a consumer must declare the exact set it consumes.