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.