Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Exception by the build with "component load rules"

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.

0 votes



8 answers

Permanent link
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!

0 votes


Permanent link
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

0 votes


Permanent link
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.

0 votes


Permanent link
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.

0 votes


Permanent link
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.

0 votes


Permanent link
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

0 votes


Permanent link
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.

0 votes


Permanent link
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.

0 votes

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Apr 02 '09, 12:28 a.m.

Question was seen: 9,601 times

Last updated: Apr 02 '09, 12:28 a.m.

Confirmation Cancel Confirm