Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Buckminster » Need help figuring out how to automate Subclipse build using Buckminster
Need help figuring out how to automate Subclipse build using Buckminster [message #793273] Tue, 07 February 2012 19:26 Go to next message
Steve Elsemore is currently offline Steve Elsemore
Messages: 9
Registered: July 2009
Junior Member
I am hoping to automate Subclipse builds using Buckminster on Hudson. I first started on this almost 2 years ago, and Thomas Hallgren was very helpful at the time:

http://old.nabble.com/Building-Subclipse-with-Hudson-Buckminster-td28699214.html

Unfortunately, I got side-tracked by other projects and the momentum was lost, but I've finally gotten back to it. Once again, I've started by experimenting with a simple test plugin that does nothing more than contribute a bare bones view and, once again, I experienced small successes, but came away with lots of questions. I will greatly appreciate any and all answers and suggestions from anybody with the patience to read all this!

Some of the main issues I seem to be struggling with:
1. Understanding the different ways that the target platform can be established (importtargetdefinition vs. import), and the consequences of using one method or another.
2. Knowing for sure what problems are mine and what are due to bugs or the versions of the various components that are involved.
3. Why the SVN reader seems to initially populate my workspace, but does not seem to pull in changes the next time I run the job.

My environment:
Hudson 2.1.1 running on Tomcat 6.0.35 (I originally tested on Hudson 2.1.2, but downgraded after it seemed that I was running into the problem described here:http://www.java-forum.org/deployment/127483-hudson-buckminster-wirft-exception-svn-checkout.html).

Buckminster 3.6 Subversive headless, installed automatically from Cloudsmith (When I first tried to use an SVN provider, I ran into the problem described here: http://www.eclipse.org/forums/index.php/m/537101/. I overrode the .json file to use Subversive instead of Subclipse, as suggested, and that resolved the problem).

I generated a target platform file from my Eclipse IDE to use with the importtargetdefinition command. It looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.6"?>
<target name="My Target Platform" sequenceNumber="4">
<locations>
<location includeAllPlatforms="true" includeMode="slicer" includeSource="false" type="InstallableUnit">
<unit id="org.eclipse.platform.sdk" version="3.5.2.M20100211-1343"/>
<repository location="http://download.eclipse.org/eclipse/updates/3.5"/>
</location>
</locations>
</target>

Here's what I have for Eclipse projects, all checked out from an SVN repository:

org.elsemore.steve.MyApplication (Plug-in Project with a view)
org.elsemore.steve.MyApplication.feature (Feature Project that includes org.elsemore.steve.MyApplication plug-in and has org.eclipse.core.runtime and org.eclipse.ui as dependencies)
org.elsemore.steve.MyApplication.site (Feature Project that includes org.elsemore.steve.MyApplication.feature)

org.elsemore.steve.MyApplication.site is not to be deployed. It is just a release engineering project that hosts the files for the Buckminster build (.cquery, .rmap, .target).

My Buckminster Jobs:

I created a handful of different jobs because I wanted to experiment with several approaches, and the various combinations:

1a. Let Hudson populate the workspace by checking out my projects from Subversion.
vs.
2a. Using SVN readerType in my RMAP and letting the Buckminster import materialize the workspace.

And:

1b. Using the importtargetdefinition command to set the target platform.
vs.
2b. Using P2 readerType's in my RMAP (source="false") which, if I understand correctly, should take care of populating my target platform (?)

For my first job, I let Hudson check out only my release engineering project (org.elsemore.steve.MyApplication.site). In my query, I referenced an RMAP that looked like this:

<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns:psf="http://www.eclipse.org/buckminster/PSFProvider-1.0"
xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">

<rm:property key="eclipse.downloads" mutable="true" value="http://download.eclipse.org"/>
<rm:property key="build.type" mutable="true" value="N"/>

<rm:locator searchPathRef="elsemoresvn" pattern="^org\.elsemore\..*" />
<rm:locator searchPathRef="platform" pattern="^org\.eclipse\..*" />

<rm:searchPath name="elsemoresvn">
<rm:provider readerType="svn"
componentTypes="eclipse.feature,osgi.bundle" source="true" mutable="true">
<rm:uri format="https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/{0}">
<bc:propertyRef key="buckminster.component" />
</rm:uri>
</rm:provider>
</rm:searchPath>

<rm:searchPath name="platform">
<rm:provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false"
resolutionFilter="(build.type=N)">
<rm:uri format="{0}/eclipse/updates/3.2?importType=binary">
<bc:propertyRef key="eclipse.downloads"/>
</rm:uri>
</rm:provider>
</rm:searchPath>

</rm:rmap>

Then I included these commands in my Buckminster build:

import '${WORKSPACE}buildSvnP2.cquery'
build
perform -D target.os=* -D target.ws=* -D target.arch=* org.elsemore.steve.MyApplication.site#site.p2

With these results:

Started by user anonymous
Checking out a fresh workspace because there's no workspace at C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace
Cleaning workspace C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace
Checking out https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/org.elsemore.steve.MyApplication.site revision: Feb 7, 2012 11:58:46 AM depth:infinity ignoreExternals: false
A buildSvnP2.cquery
A buildNoSvnNoP2.rmap
A buildNoSvnP2.rmap
A buildSvnNoP2.rmap
A .project
A buildSvnP2.rmap
A buildNoSvnNoP2.cquery
A platform.target
A feature.xml
A buildNoSvnP2.cquery
A buildSvnNoP2.cquery
At revision 63
[workspace] $ java "-Dbuckminster.output.root=C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\buckminster.output" "-Dbuckminster.temp.root=C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\buckminster.temp" -Xmx256m -jar C:\Users\selsemore\.hudson\tools\buckminster\plugins\org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar -application org.eclipse.buckminster.cmdline.headless -data "C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace" --loglevel info -S "C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\commands.txt"
INFO: import '/C:/Users/selsemore/.hudson/jobs/My Application SVN P2/workspace/buildSvnP2.cquery'
INFO: Resetting target platform Buckminster Default TP
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.buckminster.subversive.internal.SubversiveSession.createRoots(SubversiveSession.java:355)
at org.eclipse.buckminster.subversion.GenericSession.createCommonRoots(GenericSession.java:431)
at org.eclipse.buckminster.subversion.GenericReaderType.shareProject(GenericReaderType.java:142)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.createProjectBinding(WorkspaceMaterializer.java:497)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.installLocal(WorkspaceMaterializer.java:188)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.performInstallAction(WorkspaceMaterializer.java:209)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:164)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.performInstallActions(AbstractMaterializer.java:68)
at org.eclipse.buckminster.core.materializer.InstallerJob.runInWorkspace(InstallerJob.java:53)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
INFO: Import complete.
INFO: build
Error: file C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\plugins\org.elsemore.steve.MyApplication: The project was not built since its build path is incomplete. Cannot find the class file for org.eclipse.swt.widgets.Composite. Fix the build path then try building this project
Error: file C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\plugins\org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication\views\MyView.java, line 1: The type org.eclipse.swt.widgets.Composite cannot be resolved. It is indirectly referenced from required .class files
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN P2\workspace\plugins\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.team.svn.core.SVNTeamPlugin.stop(SVNTeamPlugin.java:190)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:843)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:836)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:501)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:550)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1097)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:597)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:266)
at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690)
at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:588)
at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:415)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
[DEBUG] Skipping watched dependency update for build: My Application SVN P2 #1 due to result: FAILURE
Finished: FAILURE

A quick Google search seemed to indicate that the "No secure storage modules found" error is not something to be concerned about. (?)
But I'm confused about the "Cannot find the class file for org.eclipse.swt.widgets.Composite" error. In {WORKSPACE}Buckminster/tp/plugins, I see the SWT jar file (among others): org.eclipse.swt_3.2.2.v3236b.jar

So it seems as though the P2 import did its job. ?

My next job was similar, except I removed the P2 reader from my RMAP:

<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns:psf="http://www.eclipse.org/buckminster/PSFProvider-1.0"
xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">

<rm:locator searchPathRef="elsemoresvn" pattern="^org\.elsemore\..*" />

<rm:searchPath name="elsemoresvn">
<rm:provider readerType="svn"
componentTypes="eclipse.feature,osgi.bundle" source="true" mutable="true">
<rm:uri format="https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/{0}">
<bc:propertyRef key="buckminster.component" />
</rm:uri>
</rm:provider>
</rm:searchPath>

</rm:rmap>

Instead, I decided to populate the target platform using the importtargetdefinition command. My Buckminster build commands:

importtargetdefinition -A '${WORKSPACE}platform.target'
import '${WORKSPACE}buildSvnNoP2.cquery'
build
perform -D target.os=* -D target.ws=* -D target.arch=* org.elsemore.steve.MyApplication.site#site.p2

And this worked! Despite many warnings and errors (again, based on my Google results, I understand that the importtargetdefinition time out errors are not a problem).

Results:

Started by user anonymous
Checking out a fresh workspace because there's no workspace at C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace
Cleaning workspace C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace
Checking out https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/org.elsemore.steve.MyApplication.site revision: Feb 7, 2012 11:40:54 AM depth:infinity ignoreExternals: false
A buildSvnP2.cquery
A buildNoSvnNoP2.rmap
A buildNoSvnP2.rmap
A buildSvnNoP2.rmap
A .project
A buildSvnP2.rmap
A buildNoSvnNoP2.cquery
A platform.target
A feature.xml
A buildNoSvnP2.cquery
A buildSvnNoP2.cquery
At revision 62
[workspace] $ java "-Dbuckminster.output.root=C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\buckminster.output" "-Dbuckminster.temp.root=C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\buckminster.temp" -Xmx256m -jar C:\Users\selsemore\.hudson\tools\buckminster\plugins\org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar -application org.eclipse.buckminster.cmdline.headless -data "C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace" --loglevel info -S "C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\commands.txt"
INFO: importtargetdefinition '-A' '/C:/Users/selsemore/.hudson/jobs/My Application SVN no P2/workspace/platform.target'
Feb 7, 2012 11:41:56 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
Feb 7, 2012 11:41:56 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
Feb 7, 2012 11:41:57 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
Feb 7, 2012 11:41:57 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
<snip>many more retries</snip>
INFO: import '/C:/Users/selsemore/.hudson/jobs/My Application SVN no P2/workspace/buildSvnNoP2.cquery'
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.buckminster.subversive.internal.SubversiveSession.createRoots(SubversiveSession.java:355)
at org.eclipse.buckminster.subversion.GenericSession.createCommonRoots(GenericSession.java:431)
at org.eclipse.buckminster.subversion.GenericReaderType.shareProject(GenericReaderType.java:142)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.createProjectBinding(WorkspaceMaterializer.java:497)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.installLocal(WorkspaceMaterializer.java:188)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.performInstallAction(WorkspaceMaterializer.java:209)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:164)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.performInstallActions(AbstractMaterializer.java:68)
at org.eclipse.buckminster.core.materializer.InstallerJob.runInWorkspace(InstallerJob.java:53)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
INFO: Import complete.
INFO: build
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\plugin.xml, line 22: Referenced identifier 'org.eclipse.jdt.ui.JavaPerspective' in attribute 'targetID' cannot be found
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
INFO: perform '-D' 'target.os=*' '-D' 'target.ws=*' '-D' 'target.arch=*' 'org.elsemore.steve.MyApplication.site#site.p2'
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#eclipse.build]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#eclipse.build]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#manifest]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#manifest]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#bundle.jar]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#bundle.jar]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#feature.jar]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#feature.jar]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.manifest]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.manifest]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.manifest]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.manifest]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.plugins]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.plugins]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#site.p2]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#site.p2]
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\plugin.xml, line 22: Referenced identifier 'org.eclipse.jdt.ui.JavaPerspective' in attribute 'targetID' cannot be found
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
Found 2 warnings
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.team.svn.core.SVNTeamPlugin.stop(SVNTeamPlugin.java:190)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:843)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:836)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:501)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:550)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1097)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:597)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:266)
at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690)
at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:588)
at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:415)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
[DEBUG] Skipping watched dependency update; build not configured with trigger: My Application SVN no P2 #1
Finished: SUCCESS

Now I made a change to my plugin's view and checked it in and then ran the same job again (without clearing the workspace). This time, importtargetdefinition ran much quicker without the retries, so I guess Buckminster must cache the target definition somewhere? Again the result was success, but the changes that I made to my view were not in the workspace. Shouldn't the SVN reader pull them in? I think I must be missing something here.

Here are the results:

Started by user anonymous
Updating https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/org.elsemore.steve.MyApplication.site revision: Feb 7, 2012 3:46:19 PM depth:infinity ignoreExternals: false
At revision 67
no change for https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk/org.elsemore.steve.MyApplication.site since the previous build
[workspace] $ java "-Dbuckminster.output.root=C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\buckminster.output" "-Dbuckminster.temp.root=C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\buckminster.temp" -Xmx256m -jar C:\Users\selsemore\.hudson\tools\buckminster\plugins\org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar -application org.eclipse.buckminster.cmdline.headless -data "C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace" --loglevel info -S "C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\commands.txt"
INFO: importtargetdefinition '-A' '/C:/Users/selsemore/.hudson/jobs/My Application SVN no P2/workspace/platform.target'
INFO: import '/C:/Users/selsemore/.hudson/jobs/My Application SVN no P2/workspace/buildSvnNoP2.cquery'
INFO: Import complete.
INFO: build
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\plugin.xml, line 22: Referenced identifier 'org.eclipse.jdt.ui.JavaPerspective' in attribute 'targetID' cannot be found
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
INFO: perform '-D' 'target.os=*' '-D' 'target.ws=*' '-D' 'target.arch=*' 'org.elsemore.steve.MyApplication.site#site.p2'
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#eclipse.build]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#eclipse.build]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#bundle.jar]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#bundle.jar]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#feature.jar]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#feature.jar]
INFO: [start org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
INFO: [end org.elsemore.steve.MyApplication:osgi.bundle$1.0.0.qualifier#source.bundle.jar]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.manifest]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.manifest]
INFO: [start org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
INFO: [end org.elsemore.steve.MyApplication.feature:eclipse.feature$1.0.0.qualifier#source.feature.jar]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.subfeatures]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.plugins]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#copy.plugins]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#manifest]
INFO: [start org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#site.p2]
INFO: [end org.elsemore.steve.MyApplication.site:eclipse.feature$1.0.0.qualifier#site.p2]
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\plugin.xml, line 22: Referenced identifier 'org.eclipse.jdt.ui.JavaPerspective' in attribute 'targetID' cannot be found
Warning: file C:\Users\selsemore\.hudson\jobs\My Application SVN no P2\workspace\plugins\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
Found 2 warnings
[DEBUG] Skipping watched dependency update; build not configured with trigger: My Application SVN no P2 #3
Finished: SUCCESS

Next I experimented with with letting Hudson checkout all my source, rather than using an SVN reader.

My RMAP looked like this:
<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns:psf="http://www.eclipse.org/buckminster/PSFProvider-1.0"
xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">

<rm:property key="eclipse.downloads" mutable="true" value="http://download.eclipse.org"/>
<rm:property key="build.type" mutable="true" value="N"/>

<rm:locator searchPathRef="elsemore" pattern="^org\.elsemore\..*" />
<rm:locator searchPathRef="platform" pattern="^org\.eclipse\..*" />

<rm:searchPath name="elsemore">
<rm:provider readerType="local"
componentTypes="eclipse.feature,osgi.bundle" source="true" >
<rm:uri format="file:///{0}/{1}/">
<bc:propertyRef key="workspace.root" />
<bc:propertyRef key="buckminster.component" />
</rm:uri>
</rm:provider>
</rm:searchPath>

<rm:searchPath name="platform">
<rm:provider componentTypes="eclipse.feature,osgi.bundle" readerType="p2" source="false" mutable="false"
resolutionFilter="(build.type=N)">
<rm:uri format="{0}/eclipse/updates/3.2?importType=binary">
<bc:propertyRef key="eclipse.downloads"/>
</rm:uri>
</rm:provider>
</rm:searchPath>

</rm:rmap>

These were my commands:

import '${WORKSPACE}org.elsemore.steve.MyApplication.site/buildNoSvnP2.cquery'
build
perform -D target.os=* -D target.ws=* -D target.arch=* org.elsemore.steve.MyApplication.site#site.p2

And these were the results:

Started by user anonymous
Checking out a fresh workspace because there's no workspace at C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace
Cleaning workspace C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace
Checking out https://cu345.cloud.sp.collab.net/svn/repository-internal/collabnet_desktop-publishing/trunk revision: Feb 7, 2012 11:33:55 AM depth:infinity ignoreExternals: false
A org.elsemore.steve.MyApplication.site
A org.elsemore.steve.MyApplication.site\buildSvnP2.cquery
A org.elsemore.steve.MyApplication.site\buildNoSvnNoP2.rmap
A org.elsemore.steve.MyApplication.site\buildNoSvnP2.rmap
A org.elsemore.steve.MyApplication.site\buildSvnNoP2.rmap
A org.elsemore.steve.MyApplication.site\.project
A org.elsemore.steve.MyApplication.site\buildSvnP2.rmap
A org.elsemore.steve.MyApplication.site\buildNoSvnNoP2.cquery
A org.elsemore.steve.MyApplication.site\platform.target
A org.elsemore.steve.MyApplication.site\feature.xml
A org.elsemore.steve.MyApplication.site\buildNoSvnP2.cquery
A org.elsemore.steve.MyApplication.site\buildSvnNoP2.cquery
A org.elsemore.steve.MyApplication.feature
A org.elsemore.steve.MyApplication.feature\.project
A org.elsemore.steve.MyApplication.feature\build.properties
A org.elsemore.steve.MyApplication.feature\feature.xml
A org.elsemore.steve.MyApplication
A org.elsemore.steve.MyApplication\.classpath
A org.elsemore.steve.MyApplication\META-INF
A org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF
A org.elsemore.steve.MyApplication\.project
A org.elsemore.steve.MyApplication\contexts.xml
A org.elsemore.steve.MyApplication\src
A org.elsemore.steve.MyApplication\src\org
A org.elsemore.steve.MyApplication\src\org\elsemore
A org.elsemore.steve.MyApplication\src\org\elsemore\steve
A org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication
A org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication\Activator.java
A org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication\views
A org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication\views\MyView.java
A org.elsemore.steve.MyApplication\build.properties
A org.elsemore.steve.MyApplication\icons
AU org.elsemore.steve.MyApplication\icons\sample.gif
A org.elsemore.steve.MyApplication\plugin.xml
A org.elsemore.steve.MyApplication\.settings
A org.elsemore.steve.MyApplication\.settings\org.eclipse.jdt.core.prefs
At revision 62
[workspace] $ java "-Dbuckminster.output.root=C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\buckminster.output" "-Dbuckminster.temp.root=C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\buckminster.temp" -Xmx256m -jar C:\Users\selsemore\.hudson\tools\buckminster\plugins\org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar -application org.eclipse.buckminster.cmdline.headless -data "C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace" --loglevel info -S "C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\commands.txt"
INFO: import '/C:/Users/selsemore/.hudson/jobs/My Application No SVN P2/workspace/org.elsemore.steve.MyApplication.site/buildNoSvnP2.cquery'
INFO: Resetting target platform Buckminster Default TP
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.buckminster.subversive.internal.SubversiveSession.createRoots(SubversiveSession.java:355)
at org.eclipse.buckminster.subversion.GenericSession.createCommonRoots(GenericSession.java:431)
at org.eclipse.buckminster.subversion.GenericReaderType.shareProject(GenericReaderType.java:142)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.createProjectBinding(WorkspaceMaterializer.java:497)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.installLocal(WorkspaceMaterializer.java:188)
at org.eclipse.buckminster.core.materializer.WorkspaceMaterializer.performInstallAction(WorkspaceMaterializer.java:209)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:164)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.delegateAndInstallRecursive(AbstractMaterializer.java:189)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.installRecursive(AbstractMaterializer.java:156)
at org.eclipse.buckminster.core.materializer.AbstractMaterializer.performInstallActions(AbstractMaterializer.java:68)
at org.eclipse.buckminster.core.materializer.InstallerJob.runInWorkspace(InstallerJob.java:53)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
INFO: Import complete.
INFO: build
Error: file C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\org.elsemore.steve.MyApplication: The project was not built since its build path is incomplete. Cannot find the class file for org.eclipse.swt.widgets.Composite. Fix the build path then try building this project
Error: file C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\org.elsemore.steve.MyApplication\src\org\elsemore\steve\myapplication\views\MyView.java, line 1: The type org.eclipse.swt.widgets.Composite cannot be resolved. It is indirectly referenced from required .class files
Warning: file C:\Users\selsemore\.hudson\jobs\My Application No SVN P2\workspace\org.elsemore.steve.MyApplication\META-INF\MANIFEST.MF, line 9: The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
ERROR: SVN: 'Save Authorization Info' operation finished with error
ERROR: SVN: 'Save Authorization Info' operation finished with error: No secure storage modules found.
org.eclipse.equinox.security.storage.StorageException: No secure storage modules found.
at org.eclipse.equinox.internal.security.storage.PasswordProviderSelector.findStorageModule(PasswordProviderSelector.java:190)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:231)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:224)
at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveAuthInfo(AbstractSVNStorage.java:557)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveLocations(AbstractSVNStorage.java:515)
at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.saveConfiguration(AbstractSVNStorage.java:298)
at org.eclipse.team.svn.core.SVNTeamPlugin.stop(SVNTeamPlugin.java:190)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:843)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:836)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:501)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:550)
at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1097)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:597)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:266)
at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:690)
at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:588)
at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:415)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:198)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
[DEBUG] Skipping watched dependency update for build: My Application No SVN P2 #1 due to result: FAILURE
Finished: FAILURE

Again, it failed because of the missing SWT class, despite the JAR file having been created in the {WORKSPACE}.buckminster/tp/plugins directory by the import.

I'm curious about the "INFO: Resetting target platform Buckminster Default TP" message generated by the import. I'm assuming that this happens when a searchPath is encountered with source="false" (i.e., the P2 reader)? Am I correct in assuming that it doesn't make sense to use the importtargetdefinition command in conjunction with such an RMAP?

Finally, I created a job that let Hudson check out everything, and an RMAP that did not use SVN or P2 readers:

<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns:psf="http://www.eclipse.org/buckminster/PSFProvider-1.0"
xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">

<rm:locator searchPathRef="elsemore" pattern="^org\.elsemore\..*" />

<rm:searchPath name="elsemore">
<rm:provider readerType="local"
componentTypes="eclipse.feature,osgi.bundle" source="true" >
<rm:uri format="file:///{0}/{1}/">
<bc:propertyRef key="workspace.root" />
<bc:propertyRef key="buckminster.component" />
</rm:uri>
</rm:provider>
</rm:searchPath>
</rm:rmap>

My commands:

importtargetdefinition -A '${WORKSPACE}org.elsemore.steve.MyApplication.site/platform.target'
import '${WORKSPACE}org.elsemore.steve.MyApplication.site/buildNoSvnNoP2.cquery'
build
perform -D target.os=* -D target.ws=* -D target.arch=* org.elsemore.steve.MyApplication.site#site.p2

This seemed to work fine, but is it the way to go, especially as I move on to a more complicated feature set.

Sorry if I've erred on the side of too much information here, but I didn't want to leave out anything that might be relevant. I'm sure there will be additional complications when it comes to building Subclipse, but it seems that the general pattern should follow whatever I can get working with this test plugin and feature, no?

Thanks for whatever help you can give me!

Steve




Re: Need help figuring out how to automate Subclipse build using Buckminster [message #793550 is a reply to message #793273] Wed, 08 February 2012 04:25 Go to previous message
Matthew Webber is currently offline Matthew Webber
Messages: 198
Registered: December 2010
Senior Member
If you're still using Buckminster 3.6, I strongly suggest switching to 3.7 - it has a number of bug fixes and improvements. This applies to both headless, and the IDE (assuming Eclipse 3.7 Indigo).
Matthew
Previous Topic:feature/plugin versions
Next Topic:Buckminster 3.7 materialize doesn't materialize for other platforms (it did in 3.6)
Goto Forum:
  


Current Time: Thu Aug 28 09:14:43 EDT 2014

Powered by FUDForum. Page generated in 0.01894 seconds