Use of proprietary code

The Signomix platform’s open-source code contains references to Java classes from the non-public (proprietary) portion.
The absence of these classes in the compiled code disables certain features.

This document describes how to use proprietary code—if it is available to the person building the platform.

Development environment configuration

The code not available in the open-source version is located in the additional signomix-extensions library.
The library can be used in selected microservices by declaring a dependency in the pom.xml of the selected microservice (see: signomix-reports,signomix-ta-account):

<dependency>
      <groupId>com.signomix</groupId>
      <artifactId>signomix-extensions</artifactId>
      <version>1.0.1</version>
</dependency>

The library MUST be built (e.g., using the build-images.sh script), so the relevant repository must be downloaded from GitHub. The open-source version of this library (required for the platform to build) is downloaded by the init-dev-environment.sh script.

When building a proprietary version of the platform, after running init-dev-environment.sh, perform the following steps:

  1. Delete the created signomix-extensions folder.
  2. Download the library code from the appropriate repository to the signomix-extensions folder—see the example command below.
git clone https://github.com/some-account/my-signomix-extensions.git signomix-extensions

Using proprietary classes in code

Example of using an extension class in code:

import com.signomix.common.proprietary.*;

// ...

try{
    AccountTypesIface accountTypes = (AccountTypesIface)ExtensionConfig.getExtension("com.signomix.proprietary.account.AccountTypes");
    if(accountTypes != null){
        // use extension instance
    }
}catch(Exception e){
    // handle exception
}
© 2023-2025 Grzegorz Skorupa