[
https://issues.apache.org/jira/browse/HIVEMIND-116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12597508#action_12597508
]
Johan Lindquist commented on HIVEMIND-116:
------------------------------------------
Well, not necessarily - I can throw an exception, in which case the error
handler will deal with it. But I can also log it (directly) as a warning.
The latter option is required if you are processing a final class (or even an
info message at that point) since there is no way you're gonna be able to
decorate it at all (have already stumbled on it for some of Hivemind internal
classes).
Get's a little hairy, cause the case is as follows:
1) The user specifies a destroyMethod, say "doShutdown"
2) The class contains (already) a method registryDidShutdown, which is final
3) The class needs to be enhanced (add the RegistryShutdownListener interface)
as well as override the registryDidShutdown (in order to call the doShutdown
method).
That's when it blows up somewhat ...
I guess an exception would be ok (rather than a warning) in this case ... Or
what do you think?
> add destroy-method attribute to the construct element of BuilderFactory
> -----------------------------------------------------------------------
>
> Key: HIVEMIND-116
> URL: https://issues.apache.org/jira/browse/HIVEMIND-116
> Project: HiveMind
> Issue Type: New Feature
> Components: framework
> Affects Versions: 1.1
> Reporter: Richard Hensley
>
> In order to keep object agnostic of container, please add attributes to the
> BuilderFactory contruct element that support the standard lifecycle
> management of Hivemind. This request is for the destroy step in the life
> cycle of a service. This attribute could be used instead of
> RegistryShutdownListener and Discardable.
> The following is a specification should be a reasonable start.
> add a destroy-method attribute to the construct element recognized by
> BuilderFactory
> When the destroy-method is specified, the method must be a public void method
> taking no parameters. This method is called when the registry is shutdown for
> primitive, singleton, and pooled services. This method is
> called when the thread is cleaned up for a threaded service. When
> autowire-service is enabled and destroy-method is not specified,
> BuilderFactory will introspect for a method called destroyService() and
> treat it as a destroy-method. In the case of singleton and pooled services,
> if the service implements the RegistryShutdownListener, the destroy-method is
> called before the RegistryShutdownListener.registryDidShutdown() method. In
> the case of threaded services, if the service implements the Discardable
> interface, the destroy-method is called before the
> Discardable.threadDidDiscardService() method.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.