pure::variants Connector for Source Code Management Manual

Similar documents
pure::variants User's Guide pure-systems GmbH

pure::variants Server Support Plug-In Manual

pure::variants Eclipse Plug-in User's Guide Version 2.0 for pure::variants 2.2

pure::variants User's Guide Version 3.0 for pure::variants 3.0

HPE Security Fortify Plugins for Eclipse

Mend for Eclipse quick start guide local analysis

pure::variants Connector for Version Control Systems Manual

DS-5 ARM. Using Eclipse. Version Copyright ARM. All rights reserved. ARM DUI 0480L (ID100912)

JSF Tools Reference Guide. Version: M5

Tutorial on text transformation with pure::variants

Desktop & Laptop Edition

Business Insight Authoring

CCH INCORPORATED 05/03

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, January 2018

News in RSA-RTE 10.2 updated for sprint Mattias Mohlin, May 2018

Drools Tools Reference Guide. Version: CR1

In order to support developers, there needs to be a number of tools available which may be involved in the ultimate solution.

Module 4: Advanced Development

TeamViewer Manual Manager

WebStudio User Guide. OpenL Tablets BRMS Release 5.18

Help for Authors. Table of Contents

Eclipse/Websphere. Page 1 Copyright 2004 GPL License. All rights reserved.

GETTING STARTED WITH ECLIPSE Caitrin Armstrong

Access Gateway Client User's Guide

Using the VMware vcenter Orchestrator Client. vrealize Orchestrator 5.5.1

Server Edition USER MANUAL. For Mac OS X

INTRODUCTION... 3 INSTALLATION GUIDE FOR ECLIPSE 3.1 AND INSTALLATION GUIDE FOR ECLIPSE 3.3 TO

In this lab, you will build and execute a simple message flow. A message flow is like a program but is developed using a visual paradigm.

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

EMC Documentum Composer

Source Management (Version Control) Installation and Configuration Guide. Version 8.0 and Higher

Module 3: Working with C/C++

Creating a new CDC policy using the Database Administration Console

ACA 1095 Reporting - File Manager Overview. File Manager

Generating Variants Using XSLT Tutorial

Get Started. Estimating Explorer

Teiid Designer User Guide 7.5.0

Weidmüller Configurator (WMC) User manual

ARM DS-5. Eclipse for DS-5 User Guide. Version 5. Copyright ARM. All rights reserved. ARM DUI0480Q

CREATING CUSTOMER MAILING LABELS

Managing Templates and Data Files

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

User Guide for the TITAN Designer for the Eclipse IDE

JSF Tools Reference Guide. Version: beta1

Using the VMware vrealize Orchestrator Client

Eclipse workspace for JSimMAST

Outlook Quick Start Guide

Database Explorer Quickstart

VikiLABS. July 8, 2017

EUSurvey Installation Guide

GNATbench for Eclipse User s Guide

Release Notes. PREEvision. Version 6.5 SP11 English

Perforce Getting Started with P4V

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, April 2017

ARM DS-5. Eclipse for DS-5 User Guide. Version 5. Copyright ARM Limited or its affiliates. All rights reserved.

BackupVault Desktop & Laptop Edition. USER MANUAL For Microsoft Windows

Working with CVS in Eclipse

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

Bentley Building Application Deployment Guide:

Workbench User's Guide

Asset Keeper Pro - File Manager Overview. File Manager

MS Word MS Outlook Level 1

South Dakota Department of Transportation January 10, 2014

EMC Documentum Composer

Source Control: Subversion

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, July 2017

Contents. Anaplan Connector for MuleSoft

MAIL MERGE DIRECTORY USE THE MAIL MERGE WIZARD

WPS Workbench. user guide. To help guide you through using WPS Workbench to create, edit and run programs. Workbench user guide Version 3.

Cupid Documentation. Release 0.2 (ESMF v7) Rocky Dunlap

Reporting and Printing Guide

Release Notes Evolve TARGET VERSION: OVERVIEW

Introduction. Purpose. Objectives. Content. Learning Time

ClassiX Software GmbH. A description for installing and using the program BIRT to generate Reports. in GESTIN-77

Git version control with Eclipse (EGit) Tutorial

EMC Documentum Composer

Reporter Tutorial: Intermediate

Analyzer and Reports Guide

How to Mail Merge PDF Documents

Folder Sync Instruction Manual

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, March 2017

User guide. PRISMAdirect Order processing

BubbleSheet 2/19/2015. BubbleSheet. BubbleSheet

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

Getting Started with Code Coverage/Eclipse

HPE Security Fortify Plugins for Eclipse Software Version: Installation and Usage Guide

Laboratory Assignment #3 Eclipse CDT

Contents. Add a Form Element to a Group Box Add a Field to a Form... 22

EUSurvey OSS Installation Guide

migration from iq.suite Store to contentaccess

Show all text and icon decorations Preferences->Team->IBM Rational ClearTeam Explorer->ClearCase decorations: Enable Text and Icon Decorations

PC-3000 EXPRESS / UDMA / PORTABLE

CHAPTER 6. Java Project Configuration

Parallel Tools Platform for Judge

CaliberRM 5.1 Integration for Describe Enterprise

EDAConnect-Dashboard User s Guide Version 3.4.0

News in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017

KYOCERA Net Viewer User Guide

Agile Product Lifecycle Management

User Guide. Introduction. Requirements. Installing and Configuring. C Interface for NI myrio

Transcription:

pure::variants Connector for Source Code Management Manual pure-systems GmbH Version 4.0.12.685 for pure::variants 4.0 Copyright 2003-2018 pure-systems GmbH 2018 Table of Contents 1. Introduction... 1 1.1. Software Requirements... 1 1.2. Installation... 1 1.3. About this manual... 2 2. Using Connector... 3 2.1. Starting pure::variants... 3 2.2. Import a Directory Tree into a Family Model... 3 2.3. Updating Models from Directory Tree... 6 3. Using Relation Indexer... 6 3.1. Adding the Relation Indexer to a Project... 7 3.2. The Relations to the Source Code... 7 3.3. The Preferences... 8 1. Introduction pure::variants Connector for Source Code Management (Connector) enables developers to manage source code variability using pure::variants. The Source Code Management of pure::variants provides a flexible opportunity to synchronize directory structures and source code files easily with pure::variants models. Thereby variants management can applied practicable even to complex software projects. Furthermore connections between pure::variants features and source code may be managed easier with the builder and are highly accessible via the Source Code Management. 1.1. Software Requirements The pure::variants Connector for Source Code Management is an extension for pure::variants and is available on all supported platforms. 1.2. Installation The pure::variants extension module is distributed in a ZIP archive updatesite.purevariants.sourcecode.x.x.x.zip. This zip contains an archived updatesite for Eclipse. To install from this zip start Eclipse and select Find and Install in the Software Updates sub menu of menu Help. Mark Search for new features to install and press Next. On the next page click on New Archived Site and browse to the zip file. After closing the dialog, the update site is shown (see Figure 1, Eclipse Installation Wizard (1) ) and automatically selected. On the next page ( Figure 2, Eclipse Installation Wizard (2) ) select the only feature listed and agree to the license and install on the next pages. After a restart of Eclipse (recommended) the Connector will be available. 1

Figure 1. Eclipse Installation Wizard (1) Figure 2. Eclipse Installation Wizard (2) A full-featured pure::variants must also be installed in this Eclipse before installing the Connector. See the pure::variants documentation for installation instructions. Installation of the pure::variants extension model in Eclipse can be easily verified. Simply open the Preferences menu in Eclipse. Unfold the items below Variant Management. An entry Connector for Source Code Management will appear when the installation has been successful. The installation menus may differ slightly in Eclipse 3.0. 1.3. About this manual The reader is expected to have basic knowledge about and experiences with pure::variants. Please consult its introductory material before reading this manual. The manual is available in online help as well as in printable PDF format here. 2

2. Using Connector 2.1. Starting pure::variants Depending on the installation method used either start the pure::variants-enabled Eclipse or under Windows select the pure::variants item from the program menu. If the Variant Management perspective is not already activated, do so by selecting it from Open Perspective->Other... in the Window menu. 2.2. Import a Directory Tree into a Family Model Before importing a directory tree into a Family Model, a variants project has to be created. Also it is suggestive to have features defined in an Feature Model already. Please consult the pure::variants documentation for help about these steps. The actual import is started by selecting the Import... action either in the context menu of the Projects view or with Import... menu in the File menu. Select Variant Models or Projects from category Variant Management and press Next. On the following page select Import a Family Model from source folders and press Next again. Choose type of source code to import The import wizard appears (see Figure 3, Page of the import wizard to select the type of source code that may be imported ). Select a project-type to import and press Next. Each type contains of a predefined set of file types to import to the model. Figure 3. Page of the import wizard to select the type of source code that may be imported Select Source and Target On the next wizard page (Figure 4, Page of the import wizard to select the source and the target for the import ) the source directory and the target model must be specified. Press the Browse... button to select the directory where the source code exists that should be imported. By default the current workspace is selected because this might be a useful point to start navigating. Below you can specify include and exclude pattern. These pattern have to be java regular expressions. Each input path, relative to the source root folder, is checked with these pattern. If the include pattern match, a folder is imported, if the exclude pattern does not match. Meaning the include pattern does pre select the folders to import, the exclude pattern does restrict this preselection. After selecting the source code directory a target model must be defined. Therefore select a variant project or a folder where the model should be stored and enter a model name. The file name is extended automatically with 3

the.ccfm extension if it is not given in this dialog. By default it will be set to the same name as the model name itself. This is the recommended setting. After an expedient source folder and the desired model name are specified, the dialog might be finished by pressing Finish. If the Next button is pressed, a further page is coming up where additional settings can be done. Figure 4. Page of the import wizard to select the source and the target for the import Change Import Preferences On the last wizard page (Figure 5, Page of the import wizard to define an individual configuration ) there are preferences that can be done to customize the import behaviour for the imported software project. The dialog page shows a table where the file types are defined, that will be considered by the import process. Each line consists of four fields. The Description field contains a short descriptive text to identify the file type. The File name pattern field is used to select files to be imported when they match to the fields value. The field uses the following syntax: 1. The most common usecase may be a file extension. The usual syntax is.ext, where EXT is the desired file extension (e.g..java). 2. Another common situation is a special file, like a makefile. Therefore, it is possible to match on the exact file name. To do this, just enter the file name into the field (e.g. build.xml). 3. In some cases the mapping desires are more specific, so only files that match to a special pattern should be imported. To fit this requirement it is possible to use regular expressions in the File name pattern field. Describing the syntax of regular expressions would exceed the intend of this help. Please consult the regular expressions section of the reference chapter in the pure::variants user's guide (e.g..*). The Mapped element type field sets the mapping between a file type and a pure::variants family element type. The family element type is a descriptor for the source file to provide further information to the mapped element in the imported model. Typical selections are ps:class or ps:makefile. The Mapped file type field sets the mapping between a file type and a pure::variants file type. The file type in pure::variants is a descriptor for the source file to provide further information to the mapped element in the imported model. Typical selections are impl for implementations or def for definition files. 4

Figure 5. Page of the import wizard to define an individual configuration New file types may be added by using the Add Mapping button. All fields are filled in with the value undefined and must be filled in by the user. To edit a value in a field, just click into the field with the mouse. The value becomes editable and can be changed. It is not possible to change the default file name patterns of the table. To make a customization flexible, it is possible to deselect a file type by deselecting the row. Deselected file name patterns stay in the configuration but will not be used by the importer. User defined file types may be removed again by using the Remove Mapping button. By default an Other files file name pattern is available in the table but deselected. Typically it is not wanted to import all files but this can be easily changed by selecting the according row. There are three general import options to customize the behavior of the importer. Do not import directories without matching files (e.g. CVS directories). If the importer finds a directory where no matching file is in it and where no subdirectory has a matching file, the directory will not be imported. This is often useful, if projects are managed by version management systems like CVS. For CVS, each relevant directory contains a CVS-directory where irrelevant files are stored. If this option is selected and the CVS-files do not match to any file type defined above, the directory will not imported as a component into the Family Model. Sort files and directories. Enable this option to sort files and directories each in alphabetical order. Import path handling. For further synchronization the importer needs to store the original path of all imported elements into the model. In many cases Family Models are shared with other users. The directory structure may be different for each user. To support most common usage scenarios the importer can work in different modes: Absolute Relative to Workspace Relative to Project The absolute path to the imported element will be stored into the model. For later synchronization and during the transformation the files have to placed on the exactly same location as during the first import. The paths are stored relative to the workspace folder. For synchronization the files has to be part of the Eclipse workspace. The transformation has to use the Eclipse workspace as input directory. The paths are stored relative to the project. For synchronization the files are part of the project inside Eclipse. The transformation has to use the project folder as input directory. 5

Relative to Path The paths are stored relative to the given path. For synchronization the files have to be placed on the exactly same location. The transformation input directory is the same as the relative path during the import. All preferences of this dialog are stored persistently. The personal customizations must not redone each time the import runs. This makes the import workflow easy and fast. 2.3. Updating Models from Directory Tree Press the Synchronize button to synchronize an imported model with its directory path. The root path of the project is stored in the model so it will synchronize to the same directory as before. To enable the Synchronize button, open the model and select any element. After pressing the Synchronize button a Compare Editor is opened where the current Family Model and the model of the current directory structure is opposed (see Figure 6, Model update from Directory Tree in Compare Editor ). Figure 6. Model update from Directory Tree in Compare Editor The compare editor is used throughout pure::variants to compare model versions but in this case is used to compare the physical directory structure (displayed in the lower right side) with the current pure::variants model (lower left side). All changes are listed as separate items in the upper part of the editor, ordered by the affected elements. Selecting an item in this list highlights the respective change in both models. In the example, a added element is marked with a box on the right hand side and connected with its feasible position in the model on the left hand side. The Merge toolbar between upper and lower editor windows provides tools to copy single or even all (non-conflicting) changes as a whole from the directory tree model to the Feature Model. Note The synchronization is done with the last used importer settings. This makes it possible to update the model with other settings as made while the import was done. 3. Using Relation Indexer The Connector for Source Code Management enhances the Relations View with information about connections between pure::variants model elements and source code. Relations are added for features which are used in conditions of the ps:condxml and ps:condtext elements. For ps:flag and ps:flagfile elements the location of preprocessor constants in C/C++ source files are shown. In addition the locations of matching preprocessor constants are shown for a selected feature by using the mapping between feature unique names and preprocessor constants. 6

3.1. Adding the Relation Indexer to a Project The relation indexer can be activated on a special project property page. Select the project and choose the Properties item in the context menu. In the upcoming dialog select the Relation Indexer page. Figure 7. Project Property Page for the Relation Indexer The relation indexer is activated for the project by selecting the Enable Relation Indexer option (1). After enabling the indexer there are some more options to define the project specific behavior. The indexing of pure::variants Conditions and C/C++ Preprocessor Constants can be activated separately (2). The list with file name patterns (3) is used to select the files for indexing. Only files which match one of the patterns are scanned. Add the "*" as pattern to scan all files of a project. After activating the indexer for a project a builder is added to the project. This builder scans changed files for new relations to pure::variants model elements automatically. 3.2. The Relations to the Source Code With activated relation indexer the Relations View contains additional entries. These entries shows the name of the file and the line number of the variant point. The tool tip shows the appropriate section of the file. By double-clicking the entry the file will be opened into an editor. pure::variants Conditions The pure::variants condition can be used to include or exclude sections of a file depending on a feature selection. The Condition Indexer scans for such rules and extracts the referenced features. If such a feature is selected in the editor the Relations View will show all files and lines where a condition with the selected feature is located (see Figure 8, Representation of a Condition in the Relations View ). Figure 8. Representation of a Condition in the Relations View 7

To get a detailed explanation on how to define conditions, consult the section ps:condtext of chapter 4.1.2 of the pure::variants users guide. C/C++ Preprocessor Constants The C/C++ Preprocessor Indexer scans files for constants used in preprocessor rules (e.g. #ifdef, #ifndef,...). If a ps:flag or ps:flagfile element is selected the Relations View shows the usage of the defined preprocessor constant. The Relations View also shows preprocessor constants connected to features by using mapping patterns. For this the patterns are expanded with the data of the selected feature. The resulting symbols are used to search for matching preprocessor constants. Figure 9, Representation of a C/C++ Preprocessor Constant in the Relations View shows an example with the pattern fame{name}. The pattern is expanded with the unique name of the feature to famenative. In the indexed code there are 76 locations where the preprocessor constant famenative is used. This locations are shown in the Relations View. The patterns can be defined in the preferences (see Section 3.3, The Preferences ). Figure 9. Representation of a C/C++ Preprocessor Constant in the Relations View 3.3. The Preferences To change the default behavior of the indexer open the Eclipse preferences and select the Relation Indexer page in the Variant Management category. The page shows two lists. Figure 10. Relation Indexer Preference page 8

The upper list contains the default file patterns for the indexer (1). This list is the initial pattern setting for newly enabled projects. The lower list contains the mapping between features and preprocessor constants (2). This mapping is used for all projects. Table 1, Supported Mapping Replacements shows all possible replacements. Table 1. Supported Mapping Replacements Wildcard Description Example: FeatureA Name the Unique Name of the selected feature FLAG_{Name} - FLAG_FeatureA NAME name the upper case Unique Name of the selected feature FLAG_{NAME} - FLAG_FEATUREA the lower case Unique Name of the selected feature flag_{name} - flag_featurea 9

10