3 Replies Latest reply on Jan 7, 2010 11:59 AM by johnbailey

    VFSClassloaderPolicy and VFS3 Mounting

    johnbailey

      Below is a discussion Ales and I had over email....

       

      John:

      Mainly, when a VFSClassLoaderPolicy is created outside the deployer
      framework (ex. JMXKernel), how do we make sure the archives are
      mounted and who is responsible for their cleanup?  Right now there is
      a hack that will ensure the archives are mounted, but will leak the
      reference to the mount.  In this case it seems like the creator of
      the policy should really be responsible for the handling of the
      references, and the policy should not be aware.  Any thoughts?

      Ales:

      Currently VFSCLPolicy can be created two ways:
      (a) from deployers
      (b) from <classloader> element

      For (a) we should already taken care of its archives via structural deployers.
      With (b) policy is created via bean which is a Module which creates the policy.
      So, in that case, I would just add create and destroy methods to this Module bean, where we would mount and unmount via bean's lifecycle callbacks.

      For any other usage the user should be aware of how to properly use VFS3.

        • 1. Re: VFSClassloaderPolicy and VFS3 Mounting
          johnbailey
          I was able to get the (b) case working by adding the create and destroy methods to the VFSClassLoaderPolicyModule.  This works well.  Looking into how to accomplish the same thing from VFSDeploymentClassLoaderPolicyModule, which does not appear to support the create and destroy semantics.  Is is safe to rely on the Module:release method?  It appears to be called during undeploy of the module.
          • 2. Re: VFSClassloaderPolicy and VFS3 Mounting
            alesj

            Looking into how to accomplish the same thing from VFSDeploymentClassLoaderPolicyModule, which does not appear to support the create and destroy semantics.  Is is safe to rely on the Module:release method?  It appears to be called during undeploy of the module.

            Why would you need to mount/unmount this module?

             

            The roots in this module can only come from current/underlying deployment,

            which you already had to properly mount (and will have to properly unmount).

             

            Or am I missing some use case that is outside the normal usage?

            • 3. Re: VFSClassloaderPolicy and VFS3 Mounting
              johnbailey

              The roots in this module can only come from current/underlying deployment,

              which you already had to properly mount (and will have to properly unmount).

               

              Right.  I was looking at a way to get the two paths for creating a VFSClassloaderPolicy to be more similar.  I am fine with it being done by the underlying deployments.