yeah I'm just setting up some clean plugins which can be used as a test... your hacking existing stuff is messing you up I believe
On 3 July 2014 12:46, Tom Fennelly <[email protected]> wrote: > I'll simplify this for the purposes of getting to the bottom of this > particular problem i.e. create a no-op Java TagLibrary impl on the > credentials-plugin. What I was playing with there is ok for me, but > confusing for someone else coz there's other stuff in there that's not > related to this problem. > > > On 03/07/2014 12:21, Stephen Connolly wrote: > > that's using the ui:icon taglib directly... > > > On 3 July 2014 12:12, Tom Fennelly <[email protected]> wrote: > >> Ah yes, sorry... I checked out and changed the credentials plugin... I >> just pushed a branch to >> https://github.com/jenkinsci/credentials-plugin/tree/icon-tag-test >> >> >> On 03/07/2014 12:07, Stephen Connolly wrote: >> >> where's the example where you had it as a plugin and where is the example >> plugin using it? >> >> >> On 3 July 2014 12:01, Tom Fennelly <[email protected]> wrote: >> >>> Sure: >>> >>> - Branch: https://github.com/tfennelly/jenkins/tree/icon-tag >>> - Taglib classes: >>> >>> https://github.com/tfennelly/jenkins/tree/icon-tag/icon/src/main/java/org/jenkins/ui/icon/taglib >>> - Use of in a .jelly script: >>> >>> https://github.com/tfennelly/jenkins/blob/icon-tag/icon/src/main/resources/lib/ui/icon/icon.jelly#L46 >>> >>> Thanks Stephen !! >>> >>> >>> On 03/07/2014 11:05, Stephen Connolly wrote: >>> >>> can you share your git repos with me so I can debug a little... or pop >>> into hipchat and we can chat and bring the solution back to the list once >>> we have one ;-) >>> >>> >>> On 3 July 2014 10:48, Stephen Connolly <[email protected] >>> > wrote: >>> >>>> 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 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 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 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.
