* Copyright (C) 2005-2013 Schlichtherle IT Services.
* All rights reserved. Use is subject to license terms.
interface. License keys pass the following life cycle phases:
... as defined by the
A Free Trial Period (FTP) is
with a license consumer manager in order to ease the conversion of prospects
License consumer managers can also get
in order to unlock application features based on the purchased license keys.
A license is an instance of the
This class follows the Java Bean pattern and defines common properties for
the licensing subject, issue date, issuer, holder, consumer type/amount,
validity period and custom data.
These properties get
whenever a license key gets created.
They also get validated whenever a license key gets installed or verified.
A license key gets created from an instance of the
License class by
applying the following function composition:
When installing or verifying a license key, a duplicate of the original
License object gets derived by applying the following (almost
inverse) function composition (note that there is no initialization and
hence no duplication required):
The validation step is skipped when a license key is just viewed.
Encryption is done via JCA with a configurable password based encryption
Authentication is done via JCA with a configurable key store type and
Encoding is done with
schema-less, yet resilient long term archival.
Applications use the
their starting point for configuring a license vendor or consumer manager.
This class can get subclassed to customize special aspects, such as
performing additional license validation steps, providing an authoritative
clock et al.
However, TrueLicense 2 has been designed so that typical applications don't
need to subclass or implement any class or interface of its API.
For security, passwords are represented as an instance of the
Other security critical string (algorithms, paths, etc.) are annotatable
processible with the TrueLicense Maven Plugin for simple, reliable
obfuscation of constant string values in the byte code for license
Warning: To protect against reverse engineering and modification of your application, it is strictly necessary to generally process all byte code which is comprised in your deployment unit with a tool for byte code obfuscation. TrueLicense does not provide general byte code obfuscation because there exist good quality third party tools, e.g. ProGuard.