It's all about the answers!

Ask a question

Exception by the build with "component load rules"


Xiangjun Chen (1) | asked Apr 02 '09, 12:28 a.m.
To speed up the build process, we defined the "component load rules" as the example in http://publib.boulder.ibm.com/infocenter/rtc/v1r0m0/index.jsp?topic=/com.ibm.team.build.doc/topics/r_scm_build_loadrules.html

Our load rules' definition:

RootFolderName=/com.ibm.iehs.content.filter/
RootFolderName=/com.ibm.iehs.updater/
RootFolderName=/com.ibm.myname.doc/
RootFolderName=/com.ibm.myname.doc_v2/
RootFolderName=/com.ibm.vcc.authentication.bluepage/
RootFolderName=/com.ibm.vcc.authentication.ldap/
RootFolderName=/com.ibm.vcc.authentication.wid/
RootFolderName=/com.ibm.vcc.base/
RootFolderName=/com.ibm.vcc.builder/
# RootFolderName=/com.ibm.vcc.builder/aix_tools/
# RootFolderName=/com.ibm.vcc.builder/environments/
# RootFolderName=/com.ibm.vcc.builder/parameters/
RootFolderName=/com.ibm.vcc.comment/
RootFolderName=/com.ibm.vcc.comment.search/
RootFolderName=/com.ibm.vcc.common/
RootFolderName=/com.ibm.vcc.core/
RootFolderName=/com.ibm.vcc.core.aspects/
RootFolderName=/com.ibm.vcc.db.cloudscape/
RootFolderName=/com.ibm.vcc.db.db2/
RootFolderName=/com.ibm.vcc.diagnostics/
RootFolderName=/com.ibm.vcc.ehsservice/
RootFolderName=/com.ibm.vcc.ets/
RootFolderName=/com.ibm.vcc.mailnotification/
RootFolderName=/com.ibm.vcc.moderator.simple/
RootFolderName=/com.ibm.vcc.rating/
RootFolderName=/com.ibm.vcc.report/
RootFolderName=/com.ibm.vcc.target/
RootFolderName=/com.ibm.vcc.versioning/
RootFolderName=/com.ibm.vcc.web.httphook/
RootFolderName=/com.ibm.vcc.web.jsphook/
RootFolderName=/com.ibm.vcc.web.resources/
RootFolderName=/com.ibm.watson/
RootFolderName=/org.eclipse.equinox.http.jetty/
RootFolderName=/org.eclipse.help/
RootFolderName=/org.eclipse.help.base/
RootFolderName=/org.eclipse.help.debug/
RootFolderName=/org.eclipse.help.webapp/
RootFolderName=/org.eclipse.update.configurator/
RootFolderName=/org.eclipse.update.core/
RootFolderName=/org.mortbay.jetty.log4j/


but we got the exception at the building time:

2009-04-01 16:45:21 [Jazz build engine] Should build occur?
2009-04-01 16:45:21 [Jazz build engine] Yes: Always build a user initiated request.
2009-04-01 16:45:22 [Jazz build engine] Invoking pre-build participant "com.ibm.team.build.jazzscm"
Deleting fetch destination "D:\vcc2\daily_build\fetched" before fetching ...
Fetching files to fetch destination "D:\vcc2\daily_build\fetched" ...
com.ibm.team.build.internal.scm.SourceControlUtility$2: Status WARNING: com.ibm.team.filesystem.client code=2 Loading the directories in the file system would overwrite/remove existing directories. null children=[Status WARNING: com.ibm.team.filesystem.client code=204 vcc (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 schema (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 lib (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 test (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 vccconf (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 removed (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 src (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 META-INF (collides with other components being loaded) null Status WARNING: com.ibm.team.filesystem.client code=204 .settings (collides with other components being loaded) null]
at com.ibm.team.build.internal.scm.SourceControlUtility.updateFileCopyArea(SourceControlUtility.java:285)
at com.ibm.team.build.internal.engine.JazzScmPreBuildParticipant.preBuild(JazzScmPreBuildParticipant.java:152)
at com.ibm.team.build.internal.engine.BuildLoop.invokePreBuildParticipants(BuildLoop.java:570)
at com.ibm.team.build.internal.engine.BuildLoop$2.run(BuildLoop.java:426)
at java.lang.Thread.run(Unknown Source)


Would you give us any suggestion? Thanks so much in advance.

8 answers



permanent link
Anuerin Diaz (4112517) | answered Apr 07 '09, 11:10 p.m.
I ended up using the foldername=/projectname/ directive on my load rules because the RootFolderName directive only loads the contents of each named component minus the actual projectname. I think the RootFolderName should only be used if you have a structure like this

/ (component
|
|-feature
| |
| |-feature1/
| |-feature2/
|
|-plugins
| |
| |-plugin1/
| |-plugin2/

where RootFolderName will target either of /feature/ or /plugins/ to load the child projects.

The thing is that I understand it the other way when reading the documentation in RTC (which you also linked).

ciao!

permanent link
Alan Greasley (6) | answered Oct 13 '09, 5:27 a.m.
this is unusable!

you need a mechanism to choose specific folders in your component and have them copied out in the same structure, not 'flattened out' otherwise the likelihood of a clash is very high.

using foldername as an alternative is not viable - far too much maintenance, and just way too complex for the simple principle of loading part of your component.

If you need an example of how it can be done, reference Perforce's client spec ..

See

https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=85020

and, more broadly

https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=44004

Also, for multi-component loads, including the component name in the path is covered by

https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=96400

permanent link
Geoffrey Clemm (30.1k33035) | answered Oct 13 '09, 11:47 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
The relevant work item is 88677 ... (or 85020). This work item is
currently scheduled for 3.0, but it doesn't appear to be started yet, so
it wouldn't hurt to add a comment to one of those work items indicating
your interest.

Cheers,
Geoff

jazzajg wrote:
this is unusable!

you need a mechanism to choose specific folders in your component and
have them copied out in the same structure, not 'flattened out'
otherwise the likelihood of a clash is very high.

using foldername as an alternative is not viable - far too much
maintenance, and just way too complex for the simple principle of
loading part of your component.

If you need an example of how it can be done, reference Perforce's
client spec ..

I will see if there is a relevant work item for this, otherwise I am
going to raise one and post it back here.

permanent link
Heather Fraser-Dube (4512) | answered Oct 16 '09, 1:58 p.m.
JAZZ DEVELOPER
The SCM development team is busy wrapping up 2.0.0.2 but we have done our 3.0 planning.

If you want to know about developments in this area, subscribe to 44004. It will be updated once work starts.



The relevant work item is 88677 ... (or 85020). This work item is
currently scheduled for 3.0, but it doesn't appear to be started yet, so
it wouldn't hurt to add a comment to one of those work items indicating
your interest.

Cheers,
Geoff

jazzajg wrote:
this is unusable!

you need a mechanism to choose specific folders in your component and
have them copied out in the same structure, not 'flattened out'
otherwise the likelihood of a clash is very high.

using foldername as an alternative is not viable - far too much
maintenance, and just way too complex for the simple principle of
loading part of your component.

If you need an example of how it can be done, reference Perforce's
client spec ..

I will see if there is a relevant work item for this, otherwise I am
going to raise one and post it back here.

permanent link
Nick Edgar (6.5k711) | answered Oct 18 '09, 10:52 a.m.
JAZZ DEVELOPER
If you want to exclude certain projects from the load during a build, one option is to move those into a separate SCM component, then add this component to the 'Components to exclude' field in the Jazz SCM page of the build definition.

permanent link
Jeffery Hanson (1472713) | answered Dec 15 '09, 6:08 p.m.
JAZZ DEVELOPER
How do I load a component root as a directory during a build? I can do it from the command line and from the UI. The Component load rules in the build definition only allows for folders within a component.

I imported a ClearCase VOB into an RTC component and it has this structure:
VOB_Name
-> CommonFile.txt
-> Dir1
-> Dir2

Unless I load the component root (i.e. VOB_Name) as a directory I do not get the CommonFile.txt loaded. I cannot figure out how to do this as part of the build automation.

Thanks,

Jeff

permanent link
Nick Edgar (6.5k711) | answered Dec 16 '09, 10:16 a.m.
JAZZ DEVELOPER
This is not currently supported in 2.0.0.2, but is planned for 3.0. See 85020: scm load should provide an option to load artifacts with full path information comment 10.

For now, can you just avoid specifying any load rule? This will load all the files in the component, into the load directory (not a subdirectory). If a subdirectory is really needed, the only workaround I know of is to define a corresponding folder in the component.

permanent link
Nick Edgar (6.5k711) | answered Dec 16 '09, 10:19 a.m.
JAZZ DEVELOPER
I suppose another workaround would be to specify all components in 'Components to exclude' in the build definition except one containing your build script, then have the script do the rest of the load itself using the teamFetch Ant task or the SCM CLI.

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.