Difference between revisions of "Tigerstripe Buckminster Integration Tutorial"

From Eclipsepedia

Jump to: navigation, search
(RMAP)
(Installation)
 
(40 intermediate revisions by one user not shown)
Line 5: Line 5:
  
 
==Overview==
 
==Overview==
The following is an overview of the Tigerstripe project that will be used in this tutorial. This project is composed of several components that will be materialized into an existing Eclipse workspace.
+
This tutorial will use the sample presented at the Eclipse Summit 2008. For information about this project, including content, hierarchy, and additional dependencies (including Tigerstripe generators) please see the [http://wiki.eclipse.org/TigerstripeAtEclipseSummit08#Content Tigerstripe At Eclipse Summit 08, Contents] entry.
*'''ProjectDefinition''' - This is the "meta" project for this example. The dependencies defined in the CSPEC determine which components will make up the underlying model project. Note that in Phase II this meta project will no longer be required as version information can be gathered from a Tigerstripe component's project definition.
+
*'''CoreModel''' - This is the base Tigerstripe model project for this tutorial. This model project will internally reference the ReferencedModel and the VersionedModel project.
+
*'''ReferencedModel''' - This is a Tigerstripe model project referenced by the CoreModel project described above. The presence of this model is required in an Eclipse workspace for the CoreModel project to build.
+
*'''VersionedModel''' - This is a Tigerstripe model project referenced by the CoreModel project as described in the ReferencedModel entry above. Because we wish to specify a version, this component will be included via a CSPEC definition in the CoreModel project. This is currently the only mechanism for defining a version based inclusion for a Tigerstripe project. ''Phase II will allow specific versions to be defined in the Tigerstripe model project.''
+
  
 +
==Installation==
 +
This section will walk through the installation of the Tigerstripe Buckminster Integration plug-in.
  
'''Hierarchy Definition'''
+
# Download [[Media:TigerstripeBuckminsterFeature.zip | TigerstripeBuckminsterFeature.zip]] and unzip the bundle into the Eclipse installation directory. Restart Eclipse, if necessary.
<pre>
+
ProjectDefinition
+
      |-- CoreModel
+
      |      |-- ReferencedModel
+
      |-- VersionedModel
+
</pre>
+
  
 
==Example==
 
==Example==
Line 24: Line 16:
 
====Running the Example====
 
====Running the Example====
 
#Open Eclipse. Create a new workspace for this tutorial.
 
#Open Eclipse. Create a new workspace for this tutorial.
#Navigate to the File -> Open a Component Query... dialog and paste the CQUERY's URL into the dialogs "URL for query" text box.<br> [http://www.eclipse.org/tigerstripe/queries/tutorial.cquery http://www.eclipse.org/tigerstripe/queries/tutorial.cquery]
+
#Navigate to the File -> Open a Component Query... dialog and paste the CQUERY's URL (below) into the dialog's "URL for query" text box.<br> [http://www.eclipse.org/tigerstripe/queries/eclipse-summit-08.cquery http://www.eclipse.org/tigerstripe/queries/eclipse-summit-08.cquery]
 
#Click "OK". This will open the Buckminster CQUERY Editor.
 
#Click "OK". This will open the Buckminster CQUERY Editor.
 
#Click "Resolve and Materialize" in the CQUERY Editor. This will materialize the project's components from this example into your workspace.
 
#Click "Resolve and Materialize" in the CQUERY Editor. This will materialize the project's components from this example into your workspace.
  
If you are using the Tigerstripe perspective in Eclipse you will see the CoreModel, ReferencedModel, and VersionedModel projects. If you are in the Java perspective (or other) you will see the model projects noted above along with the ProjectDefinition project.
+
If you are using the Tigerstripe perspective in Eclipse you will see the ClassLevel-Generator, common-model, and Equipment-model projects. If you see errors in any of the projects, simple clean and rebuild the workspace.
 +
 
 
====RMAP====
 
====RMAP====
The RMAP used in this tutorial is presented below. This is a standard RMAP file, with the exception of the "tigerstripe" component type. This component type is made available when the optional Tigerstripe Buckminster plug-in is installed.
+
The RMAP used in this tutorial is presented below. This is a standard RMAP file, with the exception of the "tigerstripe" and "tigerstripe.generator" component types. These component types are made available when the optional Tigerstripe Buckminster plug-in is installed.
  
For more information on RMAP files see the [[Introduction_to_Buckminster#Resource_Maps_.28RMAPs.29|Resource Maps section]] of the Buckminster Introduction.
+
For more information on RMAP files see the [[Introduction_to_Buckminster#Resource_Maps_.28RMAPs.29|Resource Maps]] section of the Buckminster Introduction.
  
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
  <rmap
+
<rmap
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.eclipse.org/buckminster/RMap-1.0"
+
  xmlns="http://www.eclipse.org/buckminster/RMap-1.0"
    xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
+
  xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
    xmlns:mp="http://www.eclipse.org/buckminster/MavenProvider-1.0"
+
    xmlns:pp="http://www.eclipse.org/buckminster/PDEMapProvider-1.0">
+
  <searchPath name="default">
    <searchPath name="default">
+
    <provider readerType="cvs" componentTypes="buckminster,tigerstripe,tigerstripe.generator" source="true">
      <provider readerType="cvs" componentTypes="tigerstripe,buckminster" source="true">
+
      <uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/technology,org.eclipse.tigerstripe/samples/EclipseSummit08/{0}">
        <uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/technology,org.eclipse.tigerstripe/samples/Buckminster/{0}">
+
        <bc:propertyRef key="buckminster.component" />
  <bc:propertyRef key="buckminster.component" />
+
      </uri>
        </uri>
+
    </provider>
      </provider>
+
  </searchPath>
    </searchPath>
+
    <locator searchPathRef="default" pattern=".*" />
+
  <locator searchPathRef="default" pattern=".*" />
 +
 
</rmap>
 
</rmap>
 
</pre>
 
</pre>
  
====CSPEC====
+
==== Component Versioning ====
 +
Tigerstripe components that are discovered via the project reference definition will not currently support versioning without "hints" supplied in a .cspec file. In order to resolve a specific version of a "referenced" Tigerstripe component a user will need to define a .cspec in the primary model project (or in a separate "meta" project) and explicitly define the dependency and version in the cspec. See the example below.
 +
 
 +
This .cspec would reside in the Equipment-model project.
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0"  
+
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="Equipment-model" componentType="buckminster" version="1.0.0" versionType="OSGi">
  name="ProjectDefinition"  
+
    <cs:dependencies>
  componentType="buckminster"  
+
        <cs:dependency name="common-model" componentType="tigerstripe" versionDesignator="[3.0.0,3.0.0]" versionType="OSGi"/>/>
  version="1.0.0" versionType="OSGi">
+
    </cs:dependencies>
  <cs:dependencies>
+
    <cs:dependency name="CoreModel" componentType="tigerstripe"/>
+
    <cs:dependency name="VersionedModel" componentType="tigerstripe" versionDesignator="[3.0.0,3.0.0]" versionType="OSGi"/>
+
  </cs:dependencies>
+
 
</cs:cspec>
 
</cs:cspec>
 
</pre>
 
</pre>
 +
 +
For more information on CSPEC files see the [[Introduction_to_Buckminster#Component_Specifications_.28CSPECs.29|Component Specifications]] section of the Buckminster Introduction.

Latest revision as of 16:22, 17 November 2008

< To: Tigerstripe_Tutorials

Contents

[edit] Prerequisites

  • This tutorial will assume a working knowledge and installation of the Tigerstripe Workbench [1] and the Buckminster [2] Eclipse plug-ins.

[edit] Overview

This tutorial will use the sample presented at the Eclipse Summit 2008. For information about this project, including content, hierarchy, and additional dependencies (including Tigerstripe generators) please see the Tigerstripe At Eclipse Summit 08, Contents entry.

[edit] Installation

This section will walk through the installation of the Tigerstripe Buckminster Integration plug-in.

  1. Download TigerstripeBuckminsterFeature.zip and unzip the bundle into the Eclipse installation directory. Restart Eclipse, if necessary.

[edit] Example

This section will describe how to materialize your Tigerstripe workspace and provide a description of the required Buckminster configuration files.

[edit] Running the Example

  1. Open Eclipse. Create a new workspace for this tutorial.
  2. Navigate to the File -> Open a Component Query... dialog and paste the CQUERY's URL (below) into the dialog's "URL for query" text box.
    http://www.eclipse.org/tigerstripe/queries/eclipse-summit-08.cquery
  3. Click "OK". This will open the Buckminster CQUERY Editor.
  4. Click "Resolve and Materialize" in the CQUERY Editor. This will materialize the project's components from this example into your workspace.

If you are using the Tigerstripe perspective in Eclipse you will see the ClassLevel-Generator, common-model, and Equipment-model projects. If you see errors in any of the projects, simple clean and rebuild the workspace.

[edit] RMAP

The RMAP used in this tutorial is presented below. This is a standard RMAP file, with the exception of the "tigerstripe" and "tigerstripe.generator" component types. These component types are made available when the optional Tigerstripe Buckminster plug-in is installed.

For more information on RMAP files see the Resource Maps section of the Buckminster Introduction.

<?xml version="1.0" encoding="UTF-8"?>
<rmap
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.eclipse.org/buckminster/RMap-1.0"
  xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">
	
  <searchPath name="default">
    <provider readerType="cvs" componentTypes="buckminster,tigerstripe,tigerstripe.generator" source="true">
      <uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/technology,org.eclipse.tigerstripe/samples/EclipseSummit08/{0}">
        <bc:propertyRef key="buckminster.component" />
      </uri>
    </provider>
  </searchPath>
	
  <locator searchPathRef="default" pattern=".*" />
	
</rmap>

[edit] Component Versioning

Tigerstripe components that are discovered via the project reference definition will not currently support versioning without "hints" supplied in a .cspec file. In order to resolve a specific version of a "referenced" Tigerstripe component a user will need to define a .cspec in the primary model project (or in a separate "meta" project) and explicitly define the dependency and version in the cspec. See the example below.

This .cspec would reside in the Equipment-model project.

<?xml version="1.0" encoding="UTF-8"?>
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0" name="Equipment-model" componentType="buckminster" version="1.0.0" versionType="OSGi">
    <cs:dependencies>
        <cs:dependency name="common-model" componentType="tigerstripe" versionDesignator="[3.0.0,3.0.0]" versionType="OSGi"/>/>
    </cs:dependencies>
</cs:cspec>

For more information on CSPEC files see the Component Specifications section of the Buckminster Introduction.