You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hivemind.apache.org by "Richard Hensley (JIRA)" <hi...@jakarta.apache.org> on 2005/05/19 22:18:52 UTC

[jira] Commented: (HIVEMIND-116) add destroy-method attribute to the construct element of BuilderFactory

     [ http://issues.apache.org/jira/browse/HIVEMIND-116?page=comments#action_65771 ]
     
Richard Hensley commented on HIVEMIND-116:
------------------------------------------

Knut,

I've done some research on this issue and the following seems to be a reasonable design for this feature.

I think the following would work for RegistryDidShutdown emulation of destroy-method.

Validate that the name destroy-method exists on the service, use "destroyService" as a default when the destroy-method attribute is not supplied.

If the destroy-method exists on the service, enhance the class in the following ways.
- If the core service does not implement the RegistryDidShutdown interface, add it.
- If the core service does not have a registryDidShutdown method, add it.
- Add a call to the "destroy-method" before the rest of the code in the registryDidShutdown method.

I think the following would work for Discardable emulation of destroy-method

If the destroy-method exists on the service, enhance the class in the following ways.
- If the core service does not implement the Discardable interface, add it.
- If the core service does not have a threadDidDiscardService method, add it.
- Add a call to the "destroy-method" before the rest of the code in the threadDidDiscardService method.

Because the ThreadServiceModel documents that the RegistryShutdownListener is not used, and the Pooled and Singleton Service document that Discardable is not used, there should not be any double calling of the destroy method.

What does everybody think?




> add destroy-method attribute to the construct element of BuilderFactory
> -----------------------------------------------------------------------
>
>          Key: HIVEMIND-116
>          URL: http://issues.apache.org/jira/browse/HIVEMIND-116
>      Project: HiveMind
>         Type: New Feature
>   Components: framework
>     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.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org