I'm working on a rewrite of the EC2 plugin, and as part of it I'm going to 
leverage the SSH Slaves plugin rather than having SSH connection and management 
logic directly in the new plugin.

To do this, I've got a class, SSHConnectionMethod, which has a field that is of 
type hudson.plugins.sshslaves.SSHConnector. I can easily manage the creation, 
serialization and deserialization of this field, so that's not a concern.

Where I'm running into trouble is on the configuration form; I don't want to 
reproduce SSHConnector's config.jelly or the logic it has in its 
DescriptorImpl, since I'd like to have my plugin take advantage of any future 
changes in the SSH Slave plugin. I tried this:

<st:include "class=hudson.plugins.sshslaves.SSHConnector" page="config.jelly" 
it="${it.connector}"/>

Unfortunately, when this is rendered, Jelly looks for doFillCredentialsIdItems 
(needed for one of the fields in SSHConnector's config.jelly) in *my* 
DescriptorImpl, not the one in SSHConnector. I suppose this makes sense, but 
now I'm looking for a solution that is more elegant than having to 'forward' 
all of the methods from SSHConnector.DescriptorImpl into my DescriptorImpl.

Is there an existing Jelly/Stapler tag that understands how to 'embed' a 
Describable object into another Describable object? If not, can anyone suggest 
how to approach creating one?

If you're interested, the code in question is here:

https://github.com/kpfleming/jenkins-aws-plugin/blob/master/src/main/java/org/jenkinsci/plugins/amazonwebservices/cloud/SshConnectionMethod.java

https://github.com/kpfleming/jenkins-aws-plugin/blob/master/src/main/resources/org/jenkinsci/plugins/amazonwebservices/cloud/SshConnectionMethod/config.jelly

Thanks in advance for any guidance you can provide.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to