Difference between revisions of "Sample headless configuration (Buckminster)"

From Eclipsepedia

Jump to: navigation, search
(Using the update mechanisms)
(Installing required features)
Line 48: Line 48:
 
First off, we need to install the Buckminster core feature:
 
First off, we need to install the Buckminster core feature:
 
<pre>
 
<pre>
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.feature
+
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.core.headless.feature
 
+
Searching for org.eclipse.buckminster.feature_0.0.0 in http://download.eclipse.org/technology/buckminster/updates...
+
|**********************************************************************|
+
Installing org.eclipse.buckminster.feature_1.0.0.v20060601...
+
<outputs details of downloaded and installed plugin and feature files...>
+
|**********************************************************************|
+
 
</pre>
 
</pre>
  
Line 60: Line 54:
 
the assembly builder will use Ant so we need to endow our buckminster with providers for those:
 
the assembly builder will use Ant so we need to endow our buckminster with providers for those:
 
<pre>
 
<pre>
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.headless.cvs.feature
+
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.cvs.headless.feature
 
+
Searching for org.eclipse.buckminster.headless.cvs.feature_0.0.0 in http://download.eclipse.org/technology/buckminster/updates...
+
|**********************************************************************|
+
Installing org.eclipse.buckminster.headless.cvs.feature_1.0.0.v20060601...
+
<outputs details of downloaded and installed plugin and feature files...>
+
|**********************************************************************|
+
  
 
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.maven.feature
 
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.maven.feature
 
Searching for org.eclipse.buckminster.maven.feature_0.0.0 in http://download.eclipse.org/technology/buckminster/updates...
 
|**********************************************************************|
 
Installing org.eclipse.buckminster.maven.feature_1.0.0.v20060601...
 
<outputs details of downloaded and installed plugin and feature files...>
 
|**********************************************************************|
 
 
buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.ant.feature
 
 
Searching for org.eclipse.buckminster.ant.feature_0.0.0 in http://download.eclipse.org/technology/buckminster/updates...
 
|**********************************************************************|
 
Installing org.eclipse.buckminster.ant.feature_1.0.0.v20060601...
 
<outputs details of downloaded and installed plugin and feature files...>
 
|**********************************************************************|
 
 
</pre>
 
</pre>
  
 
At this point we have a functional setup but there are a couple of other features that deserves a mention:
 
At this point we have a functional setup but there are a couple of other features that deserves a mention:
* <tt>org.eclipse.buckminster.headless.jdt.feature</tt>
 
*:This feature will enable the Eclipse platform JDT functionality. It is needed when you work with Java projects.
 
 
* <tt>org.eclipse.buckminster.headless.pde.feature</tt>
 
* <tt>org.eclipse.buckminster.headless.pde.feature</tt>
*:This feature will enable the Eclipse platform PDE functionality. You will need it when you work with plugin and feature projects. This feature includes the <tt>org.eclipse.buckminster.headless.jdt.feature</tt>.
+
*:This feature will enable the Eclipse platform Java and PDE functionality. You will need it when you work with plugin and feature projects.
* <tt>org.eclipse.buckminster.headless.svn.feature</tt>
+
* <tt>org.eclipse.buckminster.svn.headless.feature</tt>
*:Provides the Subversion repository provider.
+
*:Provides the Subversion repository provider. This feature is dependent on the [http://subclipse.tigris.org subclipse] core feature.
* <tt>org.eclipse.buckminster.headless.p4.feature</tt>
+
* <tt>org.eclipse.buckminster.p4.headless.feature</tt>
 
*:Provides the Perforce repository provider.
 
*:Provides the Perforce repository provider.
  
Line 98: Line 70:
 
Let's try loading a workspace with some very simple test components:
 
Let's try loading a workspace with some very simple test components:
 
<pre>
 
<pre>
buckminster.exe -W \temp\bar getcfg http://www.eclipse.org/buckminster/samples/queries/build_a.cquery
+
buckminster -data /temp/bar getcfg http://www.eclipse.org/buckminster/samples/queries/build_a.cquery
 
Using workspace at file:/C:/temp/bar/...
 
Using workspace at file:/C:/temp/bar/...
Running query...
+
Could not load library: localfile_1_0_0.dll. This library provides platform-specific optimizations for certain file system operations.  This library is not present on all platforms, so this may not be an error.  The resources plug-in will safely fall back to using java.io.File functionality.
=== START: Assembly (Ant Builder) - buckminster.test.build_a ===.......|  50.0%
+
=== START: Assembly (Ant Builder) - buckminster.test.build_a ===
Buildfile: C:\temp\bar\buckminster.test.build_a\assembly_buckminster.ant
+
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\assembly_buckminster.ant
 
+
[ant]
assembly:
+
[ant] assembly:
Entrypoint: ASSEMBLY***************|...................................|  50.0%
+
[ant] Entrypoint: ASSEMBLY
Created dir: C:\temp\bar\buckminster.test.build_a\assembled
+
[ant] Created dir: C:\temp\bar\buckminster.test.build_a\assembled
 
+
BUILD SUCCESSFUL
+
Total time: 0 seconds
+
 
=== END: Assembly (Ant Builder) - buckminster.test.build_a ===
 
=== END: Assembly (Ant Builder) - buckminster.test.build_a ===
Query complete.********************************************************| 100.0%
+
Query complete.
|**********************************************************************| 100.0%
+
 
</pre>
 
</pre>
 +
{{BlueBox|'''Note: harmless warning'''<br>
 +
The warning from eclipse about the localfile dll can be safely disregarded. In fact, the warning itself says so. We don't want to include the dll in the distribution since that automatically adds a platform dependency. The current distribution of Buckminster is platform independent.
 +
}}
  
 
Now build it:
 
Now build it:
 
<pre>
 
<pre>
C:\...est\buckminster>buckminster.exe -W \temp\bar build --clean
+
buckminster -data /temp/bar build --clean
Building projects
+
=== START: Normal (Ant Builder) - buckminster.test.build_a ===
=== START: Normal (Ant Builder) - buckminster.test.build_d ===.........|  0.0%
+
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
+
[ant]
 
+
[ant] clean:
clean:
+
[ant] Entrypoint: CLEAN
Entrypoint: CLEAN
+
[ant] Deleting directory C:\temp\bar\buckminster.test.build_a\derived
 
+
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
BUILD SUCCESSFUL
+
=== START: Normal (Ant Builder) - buckminster.test.build_b ===
Total time: 0 seconds
+
[ant] Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
 +
[ant]
 +
[ant] clean:
 +
[ant] Entrypoint: CLEAN
 +
[ant] Deleting directory C:\temp\bar\buckminster.test.build_b\derived
 +
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
 +
=== START: Normal (Ant Builder) - buckminster.test.build_c ===
 +
[ant] Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
 +
[ant]
 +
[ant] clean:
 +
[ant] Entrypoint: CLEAN
 +
[ant] Deleting directory C:\temp\bar\buckminster.test.build_c\derived
 +
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
 +
=== START: Normal (Ant Builder) - buckminster.test.build_d ===
 +
[ant] Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
 +
[ant]
 +
[ant] clean:
 +
[ant] Entrypoint: CLEAN
 +
[ant] Deleting directory C:\temp\bar\buckminster.test.build_d\derived
 
=== END: Normal (Ant Builder) - buckminster.test.build_d ===
 
=== END: Normal (Ant Builder) - buckminster.test.build_d ===
=== START: Normal (Ant Builder) - buckminster.test.build_c ===.........|  12.5%
+
=== START: Normal (Ant Builder) - buckminster.test.build_a ===
Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
+
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
 
+
[ant]
clean:
+
[ant] full:
Entrypoint: CLEAN
+
[ant] Entrypoint: FULL
 
+
[ant]
BUILD SUCCESSFUL
+
[ant] build:
Total time: 0 seconds
+
[ant]
 +
[ant] Property for component is: 'buckminster.test.build_a'
 +
[ant] Property for kind is: 'FULL'
 +
[ant]
 +
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_a\derived
 +
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
 +
=== START: Normal (Ant Builder) - buckminster.test.build_b ===
 +
[ant] Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
 +
[ant]
 +
[ant] full:
 +
[ant] Entrypoint: FULL
 +
[ant]
 +
[ant] build:
 +
[ant]
 +
[ant] Property for component is: 'buckminster.test.build_b'
 +
[ant] Property for kind is: 'FULL'
 +
[ant]
 +
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_b\derived
 +
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
 +
=== START: Normal (Ant Builder) - buckminster.test.build_c ===
 +
[ant] Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
 +
[ant]
 +
[ant] full:
 +
[ant] Entrypoint: FULL
 +
[ant]
 +
[ant] build:
 +
[ant]
 +
[ant] Property for component is: 'buckminster.test.build_c'
 +
[ant] Property for kind is: 'FULL'
 +
[ant]
 +
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_c\derived
 
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
 
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
=== START: Normal (Ant Builder) - buckminster.test.build_b ===.........|  25.0%
+
=== START: Normal (Ant Builder) - buckminster.test.build_d ===
Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
+
[ant] Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
 
+
[ant]
clean:
+
[ant] full:
Entrypoint: CLEAN
+
[ant] Entrypoint: FULL
 
+
[ant]
BUILD SUCCESSFUL
+
[ant] build:
Total time: 0 seconds
+
[ant]
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
+
[ant] Property for component is: 'buckminster.test.build_d'
=== START: Normal (Ant Builder) - buckminster.test.build_a ===.........|  43.8%
+
[ant] Property for kind is: 'FULL'
Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
+
[ant]
 
+
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_d\derived
clean:
+
Entrypoint: CLEAN
+
 
+
BUILD SUCCESSFUL
+
Total time: 0 seconds
+
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
+
=== START: Normal (Ant Builder) - buckminster.test.build_d ===.........|  50.0%
+
Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
+
 
+
full:
+
Entrypoint: FULL
+
 
+
build:
+
 
+
Property for component is: 'buckminster.test.build_d'
+
Property for kind is: 'FULL'
+
 
+
Copying 1 file to C:\temp\bar\buckminster.test.build_d\derived
+
 
+
BUILD SUCCESSFUL
+
Total time: 0 seconds
+
 
=== END: Normal (Ant Builder) - buckminster.test.build_d ===
 
=== END: Normal (Ant Builder) - buckminster.test.build_d ===
=== START: Normal (Ant Builder) - buckminster.test.build_c ===.........|  62.5%
 
Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
 
 
full:
 
Entrypoint: FULL
 
 
build:
 
 
Property for component is: 'buckminster.test.build_c'
 
Property for kind is: 'FULL'
 
 
Copying 1 file to C:\temp\bar\buckminster.test.build_c\derived
 
 
BUILD SUCCESSFUL
 
Total time: 0 seconds
 
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
 
=== START: Normal (Ant Builder) - buckminster.test.build_b ===.........|  75.0%
 
Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
 
 
full:
 
Entrypoint: FULL
 
 
build:
 
 
Property for component is: 'buckminster.test.build_b'
 
Property for kind is: 'FULL'
 
 
Copying 1 file to C:\temp\bar\buckminster.test.build_b\derived
 
 
BUILD SUCCESSFUL
 
Total time: 0 seconds
 
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
 
=== START: Normal (Ant Builder) - buckminster.test.build_a ===.........|  87.5%
 
Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
 
 
full:
 
Entrypoint: FULL
 
 
build:
 
 
Property for component is: 'buckminster.test.build_a'
 
Property for kind is: 'FULL'
 
 
Copying 1 file to C:\temp\bar\buckminster.test.build_a\derived
 
 
BUILD SUCCESSFUL
 
Total time: 0 seconds
 
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
 
|**********************************************************************| 100.0%
 
 
</pre>
 
</pre>
 
[[Category:Buckminster]]
 
[[Category:Buckminster]]
 
[[Category:Buckminster Headless]]
 
[[Category:Buckminster Headless]]
 
[[Category:Buckminster Examples]]
 
[[Category:Buckminster Examples]]

Revision as of 09:29, 19 December 2006

< To: Buckminster Project

Contents

Who should read this Example?

This example is a detailed description of how to install Buckminster features in a minimal Buckminster Headless. In order to benefit from this example, you must first have looked at what the headless stuff is all about. To see all the headless related articles go.

Goal of Example

The ultimate goal for this description is to install the rest of Buckminster in a headless configuration, specifically in order to install Buckminster commands beyond the basic ones. But, to do this, a number of dependencies must be fulfilled first.

The dependencies are on other features (and their plugins). These features can be downloaded from update sites (or actually, from other 'things' that are usable as 'sites'). All dependencies shown here are fulfilled by the buckminster update site.

Using the update mechanisms

There are three commands available: listsite, install and uninstall. Actually, there is also a command (currently hidden) that may be of use during configuration: dumpinfo. This command is generally for support reasons and will dump various information including features and plugins installed.

Using listsite is very simple - just provide it with a path or URL and it will list any features it finds there. Sample:

buckminster listsite http://download.eclipse.org/technology/buckminster/updates

Features:
  org.eclipse.buckminster.core.feature_1.0.0.v20061213 (Buckminster - Core)
  org.eclipse.buckminster.core.headless.feature_1.0.0.v20061213 (Buckminster - Core for headless operation)
  org.eclipse.buckminster.cvs.feature_1.0.0.v20061213 (Buckminster - CVS support)
  org.eclipse.buckminster.cvs.headless.feature_1.0.0.v20061213 (Buckminster - CVS support for headless operation)
  org.eclipse.buckminster.maven.feature_1.0.0.v20061213 (Buckminster - Maven support)
  org.eclipse.buckminster.p4.feature_1.0.0.v20061213 (Buckminster - Perforce support)
  org.eclipse.buckminster.p4.headless.feature_1.0.0.v20061213 (Buckminster - Perforce support for headless operation)
  org.eclipse.buckminster.pde.feature_1.0.0.v20061213 (Buckminster - PDE support)
  org.eclipse.buckminster.pde.headless.feature_1.0.0.v20061213 (Buckminster - PDE support for headless operation)
  org.eclipse.buckminster.svn.feature_1.0.0.v20061213 (Buckminster - Subversion support)
  org.eclipse.buckminster.svn.headless.feature_1.0.0.v20061213 (Buckminster - Subversion support for headless operation)

Note that it works just as well for the product itself:

buckminster.exe listsite C:\buckminster
Features:
  org.eclipse.buckminster.product_1.0.0.v20061213 (Buckminster Product)

In fact, if listsite is given without arguments, it will list the local site, i.e. the product itself:

buckminster listsite
Features:
  org.eclipse.buckminster.product_1.0.0.v20061213 (Buckminster Product)

Commands for install/uninstall are very similar: for install, point to a site and a feature you wish to install (and an optional version of it if there are multiple, default is to take the latest). For uninstall, just give the feature name and optional version.

Installing required features

First off, we need to install the Buckminster core feature:

buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.core.headless.feature

The Buckminster tests are stored in a CVS repository, the RMAP it uses will reference a Maven repository, and the assembly builder will use Ant so we need to endow our buckminster with providers for those:

buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.cvs.headless.feature

buckminster install http://download.eclipse.org/technology/buckminster/updates org.eclipse.buckminster.maven.feature

At this point we have a functional setup but there are a couple of other features that deserves a mention:

  • org.eclipse.buckminster.headless.pde.feature
    This feature will enable the Eclipse platform Java and PDE functionality. You will need it when you work with plugin and feature projects.
  • org.eclipse.buckminster.svn.headless.feature
    Provides the Subversion repository provider. This feature is dependent on the subclipse core feature.
  • org.eclipse.buckminster.p4.headless.feature
    Provides the Perforce repository provider.


Let's try loading a workspace with some very simple test components:

buckminster -data /temp/bar getcfg http://www.eclipse.org/buckminster/samples/queries/build_a.cquery
Using workspace at file:/C:/temp/bar/...
Could not load library: localfile_1_0_0.dll.  This library provides platform-specific optimizations for certain file system operations.  This library is not present on all platforms, so this may not be an error.  The resources plug-in will safely fall back to using java.io.File functionality.
=== START: Assembly (Ant Builder) - buckminster.test.build_a ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\assembly_buckminster.ant
[ant]
[ant] assembly:
[ant] Entrypoint: ASSEMBLY
[ant] Created dir: C:\temp\bar\buckminster.test.build_a\assembled
=== END: Assembly (Ant Builder) - buckminster.test.build_a ===
Query complete.

Note: harmless warning
The warning from eclipse about the localfile dll can be safely disregarded. In fact, the warning itself says so. We don't want to include the dll in the distribution since that automatically adds a platform dependency. The current distribution of Buckminster is platform independent.

Now build it:

buckminster -data /temp/bar build --clean
=== START: Normal (Ant Builder) - buckminster.test.build_a ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
[ant]
[ant] clean:
[ant] Entrypoint: CLEAN
[ant] Deleting directory C:\temp\bar\buckminster.test.build_a\derived
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
=== START: Normal (Ant Builder) - buckminster.test.build_b ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
[ant]
[ant] clean:
[ant] Entrypoint: CLEAN
[ant] Deleting directory C:\temp\bar\buckminster.test.build_b\derived
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
=== START: Normal (Ant Builder) - buckminster.test.build_c ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
[ant]
[ant] clean:
[ant] Entrypoint: CLEAN
[ant] Deleting directory C:\temp\bar\buckminster.test.build_c\derived
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
=== START: Normal (Ant Builder) - buckminster.test.build_d ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
[ant]
[ant] clean:
[ant] Entrypoint: CLEAN
[ant] Deleting directory C:\temp\bar\buckminster.test.build_d\derived
=== END: Normal (Ant Builder) - buckminster.test.build_d ===
=== START: Normal (Ant Builder) - buckminster.test.build_a ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_a\normal_buckminster.ant
[ant]
[ant] full:
[ant] Entrypoint: FULL
[ant]
[ant] build:
[ant]
[ant] Property for component is: 'buckminster.test.build_a'
[ant] Property for kind is: 'FULL'
[ant]
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_a\derived
=== END: Normal (Ant Builder) - buckminster.test.build_a ===
=== START: Normal (Ant Builder) - buckminster.test.build_b ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_b\buckminster.ant
[ant]
[ant] full:
[ant] Entrypoint: FULL
[ant]
[ant] build:
[ant]
[ant] Property for component is: 'buckminster.test.build_b'
[ant] Property for kind is: 'FULL'
[ant]
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_b\derived
=== END: Normal (Ant Builder) - buckminster.test.build_b ===
=== START: Normal (Ant Builder) - buckminster.test.build_c ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_c\buckminster.ant
[ant]
[ant] full:
[ant] Entrypoint: FULL
[ant]
[ant] build:
[ant]
[ant] Property for component is: 'buckminster.test.build_c'
[ant] Property for kind is: 'FULL'
[ant]
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_c\derived
=== END: Normal (Ant Builder) - buckminster.test.build_c ===
=== START: Normal (Ant Builder) - buckminster.test.build_d ===
[ant] Buildfile: C:\temp\bar\buckminster.test.build_d\buckminster.ant
[ant]
[ant] full:
[ant] Entrypoint: FULL
[ant]
[ant] build:
[ant]
[ant] Property for component is: 'buckminster.test.build_d'
[ant] Property for kind is: 'FULL'
[ant]
[ant] Copying 1 file to C:\temp\bar\buckminster.test.build_d\derived
=== END: Normal (Ant Builder) - buckminster.test.build_d ===