How to get the libraries

We publish libraries of hiconfit-core in Maven packages hosted by GitHub Packages. In this page, you’ll find how to import these Maven libraries into your Java project.

Table of Contents

  1. Authenticating to GitHub Packages
  2. Connecting to our repositories
  3. Installing the libraries
  4. Dependency of libraries

Authenticating to GitHub Packages

In your Maven project, please add the below script in the settings.xml file.

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>github-maven-repository</id>
            <username>USERNAME</username>
            <password>TOKEN</password>
        </server>
    </servers>
</settings>

Replacing USERNAME with your GitHub username, and TOKEN with your personal access token (see Creating a personal access token).

Connecting to our repositories

Add also the below script into the pom.xml file:

1
2
3
4
5
6
7
8
9
10
11
<profiles>
    <profile>
        <id>github-maven-repository</id>
        <repositories>
            <repository>
                <id>github-maven-repository</id>
                <url>https://maven.pkg.github.com/HiConfiT/*</url>
            </repository>
        </repositories>
    </profile>
</profiles>

Installing the libraries

Add the library dependencies to the dependencies element of your project pom.xml file.

1
2
3
4
5
<dependency>
    <groupId>at.tugraz.ist.ase</groupId>
    <artifactId>ARTIFACT_ID</artifactId>
    <version>VERSION</version>
</dependency>

Replacing ARTIFACT_ID and VERSION with the corresponding information from the following table. Legend: stable version latest version

artifact_id versions description
common 1.0 1.1.0-alpha-1 provides utility functions
csp2choco 1.0 1.1.0-alpha-1 provides a translator converting CSP constraints into Choco Solver commands
eval 1.0 1.1.0-alpha-1 provides a performance evaluator, including counters and timers, to measure the performance of algorithms
fm 1.0 1.1.0-alpha-1 provides the management functionalities for basic feature models
kb 1.0 1.1.0-alpha-1 provides classes managing CSP (Choco) representations of a knowledge base/feature model
ca-cdr-core 1.0 1.1.0-alpha-1 provides core classes for representing user requirements and solutions of a configurator as well as for managing test cases and test suites
cdrmodel 1.0 1.1.0-alpha-1 provides a programmatic approach to manage/prepare the constraints/test cases for consistency-based algorithms
ca-cdr 1.0 1.1.0-alpha-1 provides implementations of Consistency-based Algorithms for Conflict Detection and Resolution (CA-CDR) and a ChocoConsistencyChecker
heuristics 1.0 1.1.0-alpha-1 provides an implementation of Matrix Factorization Based Variable and Value Ordering Heuristics for Constraint Solving and a wrapper for Matrix Factorization algorithm on the basis of the Mahout library
configurator 1.0 1.1.0-alpha-1 provides a compact knowledge-based configurator supporting Matrix Factorization based Configuration and Recommendation
fma 1.0 1.1.0-alpha-1 provides a mechanism to automatically generate property-based test cases for feature models and allows the automated determination of faulty constraints in the feature model

Dependency of libraries

flowchart BT
    subgraph hiconfit-core
        A([common]) --> B([csp2choco])
        A --> C([fm])
        A --> D([eval])
        D --> F([kb])
        C --> F
        F --> G([ca-cdr-core])
        G --> H([cdrmodel])
        B --> H
        G --> I([heuristics])
        H --> J([ca-cdr])
        I --> L([configurator])
        J --> L
        J --> K([fma])
    end
    subgraph Third-party libraries
        E([sxfm]) --> C
    end