Ulli,

Thanks - at the moment this is a background task and I have a few
other pressing things to attend to so can't hookup via IRC today. But
yes the warnings are appearing on the build info. And the following
works from the script console:

cl = getClass().getClassLoader()
def warningsClass =
cl.loadClass("hudson.plugins.warnings.WarningsResultAction", true)

But doesn't from within the mail template.

Regards
Darren


On 11 April 2012 15:34, Ullrich Hafner <[email protected]> wrote:
> When I execute the following in Jenkins script console I correctly find
> the action of a build:
>
> println(hudson.model.Hudson.instance.getItem("Your Job
> Name").getLastBuild().getAction(hudson.plugins.warnings.WarningsResultAction.class))
>
> BTW: Maybe we can discuss this topic in our IRC channel then we will
> have faster feedback than via mail?
> https://wiki.jenkins-ci.org/display/JENKINS/IRC+Channel
>
> Ulli
>
> On 04/11/2012 02:57 PM, Darren Syzling wrote:
>> Ulli,
>>
>> I'd be happy to work on something together. I did however try a few
>> variants but the hudson.plugins.warnings.WarningsResultAction class
>> could not be found, I tried variants of this:
>>
>> warningsResultAction =
>> build.getAction(Class.forName("hudson.plugins.warnings.WarningsResultAction"))
>> warningsResultAction =
>> build.getAction(hudson.plugins.warnings.WarningsResultAction.class)
>>
>> and using the class loader:
>> ClassLoader cl = it.class.getClassLoader()
>> def warningsClass =
>> cl.loadClass("hudson.plugins.warnings.WarningsResultAction", true)
>>
>> Is there something different about the groovy parser engine loaded by
>> email-ext which would mean other plugin classes were not available.
>>
>> Unfortunately I then decided to upgrade to Jenkins 1.459 along with:
>> Static analysis utilities 1.38
>> Warnings 3.28
>> Static analysis collector  1.24
>> Email-ext  2.18
>>
>> This has broken my ability to build and configure the project, when I build:
>> 11-Apr-2012 13:55:43 hudson.model.Executor run
>> SEVERE: Executor threw an exception
>> java.lang.AssertionError: class
>> hudson.plugins.warnings.WarningsPublisher is missing its descriptor
>>         at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1076)
>>         at hudson.tasks.Publisher.getDescriptor(Publisher.java:123)
>>         at hudson.tasks.Recorder.getDescriptor(Recorder.java:51)
>>         at 
>> hudson.plugins.warnings.WarningsPublisher.getDescriptor(WarningsPublisher.java:323)
>>         at 
>> hudson.plugins.warnings.WarningsPublisher.getDescriptor(WarningsPublisher.java:41)
>>         at hudson.model.Descriptor.toMap(Descriptor.java:873)
>>         at hudson.util.DescribableList.toMap(DescribableList.java:128)
>>         at hudson.model.Project.getPublishers(Project.java:109)
>>         at hudson.model.Build$RunnerImpl.cleanUp(Build.java:171)
>>         at hudson.model.Run.run(Run.java:1457)
>>         at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
>>         at 
>> hudson.model.ResourceController.execute(ResourceController.java:88)
>>         at hudson.model.Executor.run(Executor.java:238)
>>
>>
>> and when I try and configure the project I can't access email-ext or
>> warnings configuration information:
>> 11-Apr-2012 13:46:50 hudson.ExpressionFactory2$JexlExpression evaluate
>> WARNING: Caught exception evaluating: i.descriptor. Reason:
>> java.lang.reflect.InvocationTargetExcept
>> ion
>> java.lang.reflect.InvocationTargetException
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>         at java.lang.reflect.Method.invoke(Unknown Source)
>>         at 
>> org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
>>         at 
>> org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectIm
>> pl.java:314)
>>         at 
>> org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
>>         at 
>> org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
>>         at 
>> org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
>>         at 
>> org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
>>         at 
>> org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:5
>> 1)
>>         at 
>> org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
>>         at 
>> hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
>>         at 
>> org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
>>
>>
>>
>> On 11 April 2012 10:53, Ullrich Hafner <[email protected]> wrote:
>>> I haven't yet done that but it should be possible to access the objects
>>> using this method from your script:
>>>
>>> WarningsResultAction action =
>>> getAction("hudson.plugins.warnings.WarningsResultAction")
>>> From this object you get the result using action.getResult()
>>>
>>> Maybe we can work together on making an example for the warnings plug-in
>>> so that I can include it on the wiki page?
>>>
>>> Ulli
>>>
>>>
>>>
>>> On 04/11/2012 11:25 AM, Darren Syzling wrote:
>>>> Regarding the Warnings plugin - is there anyway I can access warning
>>>> information for the current build from a mail-ext groovy template by
>>>> using the hudson/jenkins model API? Or would I use the token macro
>>>> expansion plugin in some way? I was wondering if there was a
>>>> documented way of gaining access to the WarningsResult and
>>>> WarningsResultAction so I could access the getSummary method from
>>>> within the mail template (or iterate over other information if
>>>> necessary) in a similar way to accessing JUnit test results?  I
>>>> wondered if there was a standard way for plugins to publish their
>>>> action results into the Hudson model so that post build actions could
>>>> retrieve and process them,
>>>>
>>>>
>>
>>
>



-- 
Regards
Darren

Reply via email to