tthuem / VariantSync-SPLC-16-Example-Workspace

Complete workspace that was used during the demonstration of VariantSync at SPLC'16 in Beijing, China

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VariantSync-SPLC-16-Example-Workspace

Complete workspace that was used during the demonstration of VariantSync at SPLC'16 in Beijing, China

VariantSync Demo

This is an example for VariantSync. The following instructions are a guide for this example. For a step by step guide please consider the available screencasts.

  1. Import all projects into your Eclipse Workspace. All Notepad projects should be marked as VariantSync projects (little green V icon) except for NotepadH. You might want to switch to the VariantSync perspective to open all necessary windows for the following examples.
  2. Run variants A to D. You will see different implementations of notebooks, which are already developed with VariantSync.
  3. Open the feature model in the variantsyncFeatureInfo project.
  4. Create a new configuration NotepadH with the features FormatRaw and Undo in variantsyncFeatureInfo/configs.
  5. Right click project NotepadH and click Configure > Add As Variant to enable VariantSync support for this project.
  6. First example:
    • Set the context to TextStyled and start recording.
    • Open the Notepad.java in variant B.
    • After line 252, add a new line with the following content: textPane.setText("Hello VariantSync users");. When saving the file you will see the line annotated with feature TextStyled. As variant B is the only feature implementing this feature (visible in the Configuration Map) no synchronization has to be performed.
    • Stop recording.
  7. Second example:
    • Set the context to Toolbar and start recording.
    • Open the Notepad.java in variant C.
    • In line 331, change the string North to South.
    • Compare variants C and E with the Eclipse compare view.
    • Open the Notepad.java in variant E.
    • Synchronize the variants with the source-focused view.
    • Look at the corresponding line of the Notepad.java in variant E
  8. Third example:
    • Set the context to Undo and start recording.
    • Open the UndoAction.java in variant E.
    • Change the super call in the constructor from Undo to Undo Edit.
    • Synchronize the variants with the source-focused view.
    • Look at the results in variants A,C, and F (As NotepadH does not have feature MenuBar the change is not visible in the application). You can see all configurations implementing a feature in the configuration map of FeatureIDE.
  9. Fourth example:
    • Set the context to Base and start recording.
    • Open the Notepad.java in any variant.
    • In the constructor, change the value 300 to 400.
    • Synchronize the variants with the source-focused view.
    • Look at the results in variants with and without merge conflicts.

Instructions for Resproductions of the Screencast

To reproduce the screencasts dedicated branches are available when a certain setup is required:

About

Complete workspace that was used during the demonstration of VariantSync at SPLC'16 in Beijing, China


Languages

Language:Java 100.0%