> What is the reason for making in a instance variable?

Just for consistency with the other classloaders instance, and in case there where multiple resources to load it would be nice to look it up only once.
In this case it doesn't matter much as we only load a single resource and then discard this instance.

> why user deployment class loader? Is it not just the threadContextClassLoader?

According to the JBoss modules developer guide we should only ever attempt to use the _threadContextClassLoader_ to access resources from the deployment classloader, and I specifically need to lookup user provided files here.
I.E. they are the same thing indeed. Do you need me to rename it? I  quite like to make it explicit that this is the CL you want to use to load stuff from the user deployment, but don't mind changing it.