Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

TigerstripeAtEclipseSummit08

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

Overview

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.

Presentation

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.
    • The ability to leverage Buckminster and Maven to facilitate simplified workspace resolution and continuous build.
  • 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 downloaded from this link: EclipseSummit Nov08 5.ppt.zip.

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

Content

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.
  • Buckminster Configuration: the files required to resolve the tutorial projects to an Eclipse workspace. These include the .cquery, .cspec, and .rmap, and ANT XML files.

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

  • EclipseSummit08_annotations: the .ecore files, Java code and configuration files requires to define an Eclipse plugin that leverage the Tigerstripe ext. points used during the presentation.

Additional Information

Back to the top