It's all about the answers!

Ask a question

CRRTC3507W: Warning: No engine participant found for pre_build configuration element

kanjbala jawahar (601815) | asked Jul 22 '13, 4:23 p.m.
Error mesg. in its entirety:
CRRTC3507W: Warning: No engine participant found for pre_build configuration element "Pre-Build Command Line".

1. Created a build definition using template "Ant - Jazz Build Engine"
2. Used that build definition and its associated build engines successfully for several months.
2. Wanted to do some "pre-build" work on the build engine(s) before the invocation of "jazzscm" pre-build participant for fetching files.
3. So, we did a "Edit Configuration" on our build definition and added the "Pre-Build Command Line" to the Pre-build tab.
4. No changes were made to how the JBE was being invoked on the associated build engine(s).
5. The requested build using this new build definition failed with the error:
CRRTC3507W: Warning: No engine participant found for pre_build configuration element "Pre-Build Command Line".

JBE is being invoked thus on the build engines:

/build/rtc_build_tools/jazz/buildsystem/buildengine/eclipse/jbe -vm /blddir/rtc_build_tools/ -repository -userId -passwordFile ./pass -verbose -engineID wsbld340 -Xmx1g

What do I need to do to get past this error?

Accepted answer

permanent link
Nick Edgar (6.5k711) | answered Aug 01 '13, 9:47 p.m.
Hi Kanjbala, sorry for the delay in clarifying this issue for you.  When you go to Edit Configuration on a build definition, it normally shows you just the pre-build, post-build and "other" options available in the template from which the definition was created.  In order to get the "Pre-Build Command Line" and/or "Post-Build Command Line" options added, you must have had to hold down Ctrl when clicking Edit Configuration, which is kind of a hidden "feature" for listing all available options, whether or not they make sense for the definition.
As suggested by the "buildforge.buildagent" substrings above, these options are specific to the Build Agent integration (for the "Command Line - Build Agent build definition template), and they have no corresponding runtime aspect (i.e. "participant" extension) in JBE.  It's admittedly unclear from their name that they're specific to the Build Agent integration.

We do have a long-standing enhancement request to allow a generic pre-build participant: Generic pre-build participant support (69934) and a corresponding post-build one would make sense too, but these are as yet unimplemented.

In your email, you said you want "To be able to run some pre-build (before fetching of files) commands for clean up etc. on the build engine(s)."  One option would be to remove the Jazz Source Control option from the definition, then use the Ant tasks in our Build System Toolkit to drive the SCM phase of the build (namely teamFetch and teamAccept), after you run your pre-build steps.  This unfortunately loses the ability to run continuous builds, i.e. builds that are scheduled periodically, check for changes, then delete themselves if there are no new changes to build.  Some extra steps are needed to propagate linked work items (using workitemPublisher Ant task), and it's also tricky to accurately model exactly what JBE does for personal builds using the Ant tasks.  

Another option is to leave the SCM configuration in the build definition, but limit which components get loaded, then do a full load using the teamFetch Ant task.  This preserves the support for continuous builds and personal builds, and also takes care of propagating work item links.  The teamFetch task takes either a workspace name or a workspace item ID (a UUID) to identify the build workspace.  In this case you'd use the Ant property set by JBE that captures the workspace item id, substituted in with: ${team.scm.workspaceUUID} (as indicated in the SCM page of the build definition).

I hope this clarifies some of the roadblocks you hit, and some of the available options.

kanjbala jawahar selected this answer as the correct answer

kanjbala jawahar commented Aug 02 '13, 11:03 a.m.

Thanks Nick. I think I understand the options you mention above.
I need to explore them much more before I can say if they work for us or not.
Is there any way that we can put some urgency toward work item 69934.

Thanks again for a thorough answer. It is greatly appreciated.

One other answer

permanent link
Lauren Hayward Schaefer (3.3k11427) | answered Jul 23 '13, 7:37 a.m.
I haven't hit the error myself.  The error sounds to me like the participant is not loaded in the JBE.  You might find this post helpful:

kanjbala jawahar commented Jul 23 '13, 3:26 p.m.

Thanks Lauren.
I reviewed the link, but that does not help us.
We are using "Ant - Jazz Build Engine" and not anything z related.

Before the changes to configuration we did not see any buildforge related info. in the buildxxxxxxxxxx.log, but since the change (adding Pre-Build Command Line build participant via Edit Configuration), we are seeing buildforge related info., e.g.:
2013-07-22 09:06:05 [Jazz build engine] : = ${}   --> = /blddir/personal_build

We need the "Ant - Jazz Build Engine" capabilities, but also the Pre-Build Command Line participant as part of it.

Lauren Hayward Schaefer commented Jul 24 '13, 7:22 a.m.

Unfortunately this is out of my scope, but hopefully someone else can point you in the right direction.

kanjbala jawahar commented Jul 25 '13, 12:32 a.m.

Thank you for trying. I appreciate it. I hope so too.

Your answer

Register or to post your answer.