WARNING: This Confluence article was automatically generated from Asciidoc. Any changes made to this document will be overridden!
This article describes
the tool set needed by the solution implementation individual for configuration of Pricefx application,
what the tool(s) are used for
how the tools cooperate.
The person implementing the solution uses variety of tools, each for different purposes.
Pricefx UI
IDE (Integrated Development Environment)
IntelliJ Idea
Pricefx Studio
JDK (Java Development Toolkit)
Groovy language
Version Control System (VCS)
Git
Git GUI (e.g. SourceTree, or IntelliJ)
DevOps platform / Source Collaboration
e.g. GitLab, Github or BitBucket
Note: Pricefx is using internally GitLab for its projects
Pricefx was originally developed so that all work on development can be done inside one UI. The Pricefx UI is capable of:
data tables configuration
various features configuration
logic development
system configuration (various settings)
Implementation tasks within the UI is really quick, because everything is in one place.
There are, however, some requirements which mandate usage of other external tools, like
need to version the configuration and logics
need for a more comfortable editor for Groovy code
The main motivation behind the IDE was more comfort/convenience when developing logics.
The editor in the IDE can provide many features, like:
code completion
instant syntax checking
integrated help
IntelliJ is a desktop application built on Java. It provides a cross-platform approach for building tools for any kind of language.
We use it, because:
it has a great editor for the Groovy programming language
the Community edition is for free
Note: it also has a GUI for VCS (e.g. Git), so you can also use it for Git operations.
Pricefx Studio is a plugin for IntelliJ that:
provides a graphical user interface for the:
creation and editing of Logics
testing of logics
fetch and deploy logics and other configuration metadata from/to Pricefx partitions
display tables metadata
improves the IntelliJ Groovy editor with:
code completion for Pricefx specific Groovy API
integrated Groovy API help
common Pricefx Groovy code templates
Java Development Toolkit is used by the Groovy editor to validate any usage of Java methods from within the logic code.
During regular coding and testing of logics it’s used only for real-time validation of the code you write in the editor.
You can either use the same version, which is used by the Pricefx backend server, or a higher one. However, if you use a higher one, there’s a (quite small) chance you might get deprecation messages about some methods which, while ok in current version, are deprecated in the latest JDK version.
The Groovy Development Kit (GDK), is used for real-time syntax check of the groovy code you’re writing in the IntelliJ editor.
During regular coding and testing of logics it’s used only for real-time validation of the code you write in the editor, not for compilation.
It will be used for compilation only in the event you use:
TDD4C ("Test Driven Development for Consultants") - framework used for Unit Testing of Logics and functions
Logic Debugging (i.e. not "Testing", but actual real debugging. Note: the debugging has limited usage)
You can either use the same version, which is used by Pricefx backend server, or a higher one. However, if you use a higher one, there’s:
a (slight) risk, that you will use some latest Groovy language feature which is unavailable on the backend Groovy version.
a (quite small) chance you might get deprecation messages about some methods which, while ok in current version, are deprecated in the latest JDK version.
is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers.
The GIT SCM tool is essential for:
manipulation of both local and remote repositories - i.e. for storing/retrieving versions of files to/from the repositories
the Git GUI tools which are using the GIT SCM as underlying engine. Both IntelliJ Git GUI and Sourcetree Git GUI are using the command line version underneath.
all operations with GIT. The command line version can do all Git commands.
On Pricefx solution implementation projects it is used to:
add new versions from the working project folder to local Git repository
push new versions to the remote Git repository
pull versions from other engineers to local Git repository
checkout selected versions of files from local repository to the working project folder
Sourcetree is a Git desktop client for developers. It serves as graphical user interface for the Git command line tool. It is:
well-arranged
good for many common daily operations with Git
easy to use
used by many people in Pricefx and also in the training environment
free
Note: Sourcetree installer also includes GIT SCM package, so you can potentially use that one pre-packaged with Sourcetree.
GitLab is a version control repository hosting service with web-based UI, for source code and development projects which use Git revision control systems.
GitLab is a tool for:
collaboration on source code
continuous integration
On Pricefx solution implementation projects GitLab is used to:
have one single source of truth - i.e. logics & configuration stored in Git are the "correct" versions
keep versions of the project configuration and logics
collaboration among the configuration engineers - everyone has their local versions, which they synchronize every day with the "remote" repository on GitLab
Git — (How to install)
Sourcetree (Git GUI) — (How to install)