[
https://issues.apache.org/jira/browse/HIVEMIND-116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12568986#action_12568986
]
Johan Lindquist commented on HIVEMIND-116:
------------------------------------------
I have looked at the implementation of this and have approached it the
following way:
In the BuilderFactoryLogic (instantiateCoreServiceInstance() method), add a
addShutdownHooks(implementationClass)
The addShutdownHooks returns the (possibly) modified class instance,
implementing the above.
Looks good in practice - the service models work exactly the same (no change
required).
If this sounds like the correct place to add this functionality, I will can
ahead and cleanup/add more tests to cover this.
> 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.