From Eclipsepedia

Revision as of 19:48, 4 November 2008 by Erdillon.cisco.com (Talk | contribs)

Jump to: navigation, search


This page contains a few resources related to the Tigerstripe presentation at Eclipse Summit Europe'08.


The goal of the presentation at Eclipse Summit'08 is to provide a quick jump-start on Tigerstripe, what it is and how it can be used.

All examples that are used or mentioned in the presentation are available from our CVS Repository. See below to download it.


The presentation is structured in 2 parts:

  • Quick project overview and highlight of Tigerstripe Workbench, the end-user integrated MDE environment. Various key concepts in Tigerstripe are introduced:
    • The notion of Tigerstripe Model Projects that host models and can cross-reference other model projects, thus allowing to "componentize" a model the same way you would componentize software.
    • The notion of Tigerstripe Modules, that are read-only, "zipped-up" versions of a model, similar to the notion of .jar for software in Java. (allowing here again for model componentization)
    • The granularity at which the model is persisted in projects: 1 file per model artifact. This makes it very friendly to use with Source Control Systems and reduces the number of potential merge conflicts even when models are developed by large distributed team.
    • Model scoping: because multiple artifacts will be generated from a single model, it is necessary to have a powerful scoping mechanism to only consider the sub-models that are relevant for code/content generation. For example, documentation should on be generated for model artifacts corresponding to public APIs, yet code must be generated for model artifacts corresponding to both internal and external APIs.
    • Generation is driven by the model (class-level generation), but also by instantiations of model artifacts (Instance-based generation) allowing for example to generate test data in sync with the model.
  • A walk-through customizing the Tigerstripe framework to address a specific real-life scenario:
    • The model needs to be annotated for multiple purposes
      • for Code generation (multiple targets)
      • for internal (proprietary) documentation
      • for external (partners and customers) documentation.
    • The model is shared with partners and customers to allow them to use Model-Driven techniques to ease enterprise integration and value added-solutions.
    • The platform should enforce conventions and rules defined to ensure the model is consistent even when developed across distributed teams.

Throughout the presentation we are using 3 Tigerstripe Model projects with cross references to illustrate how models can be componentized. We show how to build 2 annotations namespaces through .ecore and customize both the modeling palette and the model auditing rules to enforce conventions.

Slides can be download HERE.

Sample code

All code presented (even briefly) during the presentation is available from our CVS repository through anonymous access.

CVS Anonymous Access

To access the sample project/code used during the presentation, make sure you set up anonymous access to the Tigerstripe section of Eclipse's CVS repository.

  • Host: dev.eclipse.org
  • Repository Path: /cvsroot/technology
  • User: anonymous
  • Password: <blank>
  • Connection Type: pserver


All content relevant to this presentation is located in the org.eclipse.tigerstripe/samples/EclipseSummit08 directory.

The directory contains Tigerstripe Projects:

  • base-defs: a Tigerstripe model that contains basic type definitions. It has been exported as a Tigerstripe Module in the presentation and directly referenced in the common-model (see below)
  • common-model: a Tigerstripe model that contains "common" artifacts that are meant to be extended. In a real-size scenario, an Enterprise Model would be componentized with common definitions that make the "top level" inheritance tree, this is the intent of this simple model.
  • Equipment-model: a Tigerstripe model that is an extension of the "common-model" to model a Router and its Ports. This project contains a class diagram, an instance diagram and a facet definition.
  • ClassLevel-Generator: a Tigerstripe Class-Level Generator, that contains 2 rules. The first rule (global rule) creates a file that lists the content of the model. The second rule mimics the (simplistic) generation of Java classes for entities in the model.

The directory also contains Eclipse plugins that leverage Tigerstripe Extension Points to customize the Tigerstripe Framework:

Details are as follows: