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] <mailto:[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]
    <mailto:[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]
        <mailto:[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]
            <mailto:[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]
                <mailto:[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]
                    <mailto:[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]
                        <mailto:[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]
                    <mailto:[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]
                    <mailto:[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] <mailto:[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.

Reply via email to