Hmmm you might have to have the namespace be the FQCN of the TagLibrary implementation, eg see MorphTagLibrary in core... digging some more
On 3 July 2014 10:38, Stephen Connolly <[email protected]> wrote: > Also you probably need to add the annotation > > @org.kohsuke.stapler.jelly.groovy.TagLibraryUri("/shim/layout") > > > On 3 July 2014 10:37, Stephen Connolly <[email protected]> > wrote: > >> I suspect one thing could be that your class name is IconsTaglib and >> not IconsTagLib >> >> >> On 3 July 2014 10:35, Stephen Connolly <[email protected]> >> wrote: >> >>> Well I suspect that you need to inform jelly of the TagLibrary class or >>> else it will not discover it. I am suspecting that there is a plugin goal >>> putting the requisite info somewhere on the classpath. That plugin goal is >>> probably working for jenkins core but perhaps not by default in plugins >>> >>> >>> On 3 July 2014 09:56, Tom Fennelly <[email protected]> wrote: >>> >>>> xmlns:myf="jelly:org.jenkins.x.y.MyFunkyTag" is one way of doing that >>>> and, as I said, that works when the TagLibrary impl is located in Jenkins >>>> core (Vs out in a plugin). I didn't see any other way of doing it. Are >>>> you telling me there is another way? >>>> >>>> >>>> On 03/07/2014 09:46, Stephen Connolly wrote: >>>> >>>> Do you inform jenkins that you have a taglibrary? >>>> >>>> >>>> On 2 July 2014 23:34, Tom Fennelly <[email protected]> wrote: >>>> >>>>> Hi. >>>>> >>>>> Just wondering if anyone can guide me as to how I can write a Java >>>>> based TagLibrary and have it loadable from a plugin (without setting >>>>> pluginFirstClassLoader=true). When I try it I get a classloader exception >>>>> that makes total sense to me, but I'm wondering if there's some trick or >>>>> different impl that works around it. >>>>> >>>>> Example... a Simple TagLibrary impl like this... >>>>> >>>>> public class IconsTaglib extends TagLibrary { >>>>> public IconsTaglib() { >>>>> >>>>> // Register some tags... >>>>> >>>>> registerTag("*myFunkyTag*", MyFunkyTag.class); >>>>> } >>>>> } >>>>> >>>>> >>>>> This class is located in the plugin i.e. not in Jenkins core with >>>>> other taglibs. >>>>> >>>>> Then in a .jelly tag script (also in the plugin, but for which there >>>>> are no cloassloading issues) we use the *myFunkyTag *tag that was >>>>> implemented in Java e.g. >>>>> >>>>> <myf:myFunkyTag xmlns:myf="jelly:org.jenkins.x.y.MyFunkyTag" /> >>>>> >>>>> >>>>> The above causes a ClassLoading exception because Jelly's XMLParser >>>>> class (code located in Jenkins - not in the plugin) tries to load the >>>>> MyFunkyTag class with the wrong classloader (XMLParser line #1024). What >>>>> looks like would work (in this specific case at least) is if XMLParser >>>>> tried using the JellyContext ClassLoader instead, but of course that might >>>>> cause other issues. >>>>> >>>>> BTW I tried with the MyFunkyTag impl located in Jenkins core and >>>>> everything works fine as expected. >>>>> >>>>> Any suggestions? I'm wondering maybe this is not an issue if I >>>>> implement the Tag in Groovy instead, but would like to know if doing it in >>>>> Java is not going to work first. >>>>> >>>>> Thanks, >>>>> >>>>> Tom. >>>>> >>>>> -- >>>>> 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 [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "Jenkins Developers" group. >>>> To unsubscribe from this topic, visit >>>> https://groups.google.com/d/topic/jenkinsci-dev/9mEnlPmIu1c/unsubscribe >>>> . >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>>> >>>> -- >>>> 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 [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> > -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
