The TrueLicense Core module provides essential functionality for license management.


Using the TrueLicense Core you can…

  • Configure your software product’s licensing schema using an internal Domain Specific Language (DSL) with a fluent design.
  • Manually or automatically start a free trial period (FTP) for users.
  • Sell different types of license keys for different editions.
  • Install license keys to files, preferences nodes or any custom store.
  • Generate license keys by duplicating, initializing, validating, encoding, signing, encoding (again), compressing and encrypting license beans.
  • Encode arbitrary properties into license keys using XML.
  • Take advantage of a predefined set of common properties for the licensing subject, license issuer/vendor, license holder/consumer, license term, consumer type/amount and more.
  • Vend and consume version-1 (V1) or version-2-with-XML (V2/XML) license keys:
    • Use the V1 license key format in order to enable full compatibility with existing license keys for software products upgrading from TrueLicense 1.
    • Use the V2/XML license key format in order to take advantage of enhanced compression and encryption for new software products.
  • Exploit the Java Cryptography Architecture (JCA) for authentication and encryption with configurable algorithms and parameters.
  • Select custom strategies for hardware dongling:
    • Implement a custom license validation for testing the MAC addresses of the computer, or…
    • use a custom JCA provider for accessing a key store on a SmartCard, or…
    • use removable storage media for persisting key stores.
  • Take advantage of an internationalized API with English and German localizations.
  • Configure an authoritative clock to prevent against attacks on the validity period of installed license keys.
  • Configure caching of intermediate results of the processing chain for super fast license loading and verification.


For usage information, please have a look at the TrueLicense Maven Archetype. You can also check the Javadoc for the package net.truelicense.core.