(Moving design discussion here, as Jira tends to be too noisy for this)

Actually, even better, for the same compatibility reasons, have a
single event listener method:

IniBeanListener {
    void onBeanEvent(BeanEvent event);
}

This way adding new event types in the future (if ever necessary)
won't break existing implementations (assuming they ignore events they
don't want to process).

--
Les Hazlewood
CTO, Stormpath | http://stormpath.com | 888.391.5282
twitter: @lhazlewood | http://twitter.com/lhazlewood
blog: http://leshazlewood.com
stormpath blog: http://www.stormpath.com/blog


On Wed, May 23, 2012 at 11:14 AM, Les Hazlewood (JIRA) <[email protected]> wrote:
>
>    [ 
> https://issues.apache.org/jira/browse/SHIRO-364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281771#comment-13281771
>  ]
>
> Les Hazlewood commented on SHIRO-364:
> -------------------------------------
>
> 'created' can be interpreted in a number of ways (e.g. after all of its 
> properties have been set, only then is it finished being created).
>
> My vote would be:
>
> - notifyInstantiated(InstantiatedBeanEvent event);
> - notifyPropertySet(PropertySetBeanEvent event);   The event's propertyValue 
> could be an Object (resolved reference) or a String (primitive value yet to 
> be converted).  If the bean has a getter for that property, they can get the 
> converted value by calling bean.getWhateverProperty().
> - notifyPropertiesSet(ConfiguredBeanEvent event);
> - notifyDestroyed(DestroyedBeanEvent event);
>
> The reason for the event instead of multiple arguments is for compatibility 
> over time:  Coarse-grained arguments (an object) allow us to add properties 
> to it later.  Changing method signatures however would break backwards 
> compatibility.
>
> The event could also have other useful information, for example, a reference 
> back to the overall bean map in case the event listener wanted to inspect 
> other beans if necessary.
>
>> Add "bean listener" feature to Ini factories
>> --------------------------------------------
>>
>>                 Key: SHIRO-364
>>                 URL: https://issues.apache.org/jira/browse/SHIRO-364
>>             Project: Shiro
>>          Issue Type: New Feature
>>            Reporter: Jared Bunting
>>            Assignee: Jared Bunting
>>             Fix For: 1.3.0
>>
>>
>> The ini factory/configuration  has been described as a poor man's dependency 
>> injection.  Even though other DI mechanisms are often used when more power 
>> and configurability is required, the ini factory is still quite popular.  
>> Adding the ability to register "bean listeners" that are notified of the 
>> beans that get created would allow us to add some more complex functionality 
>> to shiro, decouple it from our core classes, and support it in all of our 
>> supported DI solutions.
>
> --
> This message is automatically generated by JIRA.
> If you think it was sent incorrectly, please contact your JIRA 
> administrators: 
> https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>

Reply via email to