You should not have to know the internals of the plugin container to be able to write your plugin code. That's the goal of the plugin API - you just write an implementation of the API and the plugin container will worry about when to call your plugin code, how to construct objects it passes to your plugin code, etc.
In your plugin descriptor XML, you tell the plugin container what your discovery class is (that's the "discovery" attribute in the <server> or <service> tags). Your resource component itself it declared in the "class" attribute. See the netservices plugin descriptor as an example:
See the plugin descriptor schemas here (the main one is rhq-plugin.xsd) : http://git.fedorahosted.org/cgit/rhq/rhq.git/tree/modules/core/client-api/src/main/resources