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.