Skip to content
jeremiaheinle edited this page Apr 21, 2021 · 32 revisions

Welcome to the VariantSync wiki!

The page Main should be read after this page.

Example use of VariantSync:

https://www.youtube.com/playlist?list=PLBZnGZWZgEBZ8Me6WDQGdQRg438_Z4sl_

The following terms are important:

Variant, Marker.

Session:

A session gets started when a Feature gets selected in the control panel and the play button gets pressed.

Project:

Usually multiple Projects are in the workspace. These represent the different Variants of a project. VariantSync can synchronize features between them.

FeatureIDEProject:

There exists a single FeatureIDEProject that is necessary to keep track of features. VariantSync uses the FeatureIDE Library to represent Features inside of the different Variants.

Views:

The views that can be seen in the examples are the following:

TargetFocus, SourceFocus, ResourceChanges are tabs inside of the eclipse workspace.

FeatureContext, can be seen when the button with the FeatueIDE logo inside of the control panel gets pressed. Then a window pops up with the title Feature Context Manager.

PartAdapter (can not be seen directly). Creates and updates the VariantSync markers inside of the editor.

Inside of the view.Context package :

The ActiveContextHandler creates the start/stop button in the control plane.

The SelectContextContribution creates the combobox for selecting features in the control plane.

The DynamicContextPopupItems creates the ability to map features with a right click option.

Representation inside of project:

  • A File in the workspace is represented by the eclipse class IFile.

  • A Project in the workspace is represented by the eclipse class IProject.

  • A FeatureIDEProject is represented by FeatureIDE the class as IFeatureProject.

Build this project

You should build the project using the ./vsBuild.sh script. And refresh your workspace after. To get more information go to the page maven in this wiki.

Usage of this wiki:

This wiki uses the actual names of the VariantSync classes. This means classes can be searched by their names directly.

The class names can be entered in the search bar in the top left. Then search "In this repository" has to be selected.

The results will look like this.

Every class should have at least one entry