v 4.9.2 - 10/25/2018

Framework and All Applications

v 4.9.1 - 08/24/2018

Protection! Framework

Enhanced Named User Licensing Model by allowing to use CPU ID and motherboard ID attributes to lock license to. Note:
this functionalty requires bundling the OSHI library and its dependencies; see deploy.html for more information.

Protection! Licensing Server

v 4.9.0 - 12/20/2017

Protection! Licensing Server

Ability to allocate licenses to the users fetched from a LDAP directory.
See the topics "3.3.2 Maintaining LDAP Connection" and "3.3.3 Edit License User Group | LDAP Members" of "Protection! Licensing Server Administrator Guide" for more information.

v 4.8.0 - 11/10/2017

Protection! Framework

Support of license updates from Licensing Server to follow changes of license/allocation.
See the topic "6.8.3 | Handling License Updates or Change Users Allocation" of "Protection! Developers Guide" for more information.

Protection! Licensing Server

Support of Main/Supplemental licensing model to allow extending of Number of Copies on the fly.
See the topic "6.8.3 | Main/Supplemental License Model" of "Protection! Developers Guide" for more information.

v 4.7.0 - 12/27/2016

Protection! Licensing Server

Automatic reloading of configuration files. To prevent concurrent modification and possible data corruption you must first create an empty lock file. Such lock file should be named as a file to alter, adding .lck extension. Certainly, any lock files must be removed after complete of update. Foe example, to update license users file (licenseUsers.xml) a licenseUsers.xml.lck file must be created. Note, file locks will be automatically cleared after 1 min of timeout. So any updates should be done within 1 min time range. The following files can be updated on the fly:

New metrics reports accessible via the "Licensing Statistics" dashboard: use "Download Reports" button. They are in CSV format so they can be easily imported to Excel to make any further analysis. Note: all those reports require fresh activities to be collected.

v 4.6.2 - 11/16/2011

Protection! Framework

v 4.6.1 - 11/09/2011

Protection! Control Center

Protection! Enterprise

Updated database structure - run <enterprise_home_dir>/server/<database>/update_from_4.6_to_4.6.1.sql script prior to the first use. Note: If you are upgrading from earlier versions see: <enterprise_home_dir>/server/<database>/ folder for applicable database update scripts.

Protection! Enterprise Manager

v 4.6 - 08/04/2011

Protection! Framework

Ability to eliminate the use of native libraries to obtain interface MAC address under Java 6 environment. To turn it ON either:
- in your code specify: LicenseHostPro.setUseJava6Context(true)
- or specify a System Property: com.jp.protection.pub.pro.LicenseHostPro.useJava6Context=true

Added Protection! Connect™ - a turnkey integration solution between Protection! Enterprise and third-party CRM and SFA applications. See the server/connect/doc/Protection_Connect_Administrator_Guide.doc for more information about it.

Protection! Enterprise Manager

Ability to configure Protection! Connect™ connection.

Ability to post change notifications to Protection! Connect™.

Ability to export products to Protection! Connect™.

Ability to export license actions and customers to Protection! Connect™.

Implementation of database access layer has been refactored to use Oracle TopLink Essentials instead of Oracle TopLink.

Protection! Enterprise Server

Ability to post change notifications to Protection! Connect™.

Protection! Licensing Server

Protection! Licensing Server - improved ability to manage server using Protection! Management Console when the server is running behind firewall. It can be done by specifying the mgmtPort and mgmtExportPort attributes to the server configuration (server.xml).

License Screen - added automated extraction of Activation Key from the clipboard buffer when pasting into the Activation Key field.

v 4.2 - 03/13/2009

Protection! Enterprise

Improved time zones support. License actions date and time are now stored as Greenwich Mean Time (GMT). Date and Time for the license action will be shown in Protection! Enterprise Manager properly converted to the user's current time zone.

Added option to refresh views if discovery of requested entity was not found.

Added quick filter search field to the License and Customer chooser dialogs.

Minor improvements and issue fixes.

v 4.0 - 09/15/2008

Framework

Support of right-to-left orientation (depending on default locale) for all the GUI components and dialogs.

Support of Simplified Chinese and Arabic languages.

Protection! Enterprise

Protection! Enterprise is a new product designed to bring real value to software publishers by providing full automation of licensing processes together with management of licenses, customers, and evaluators.

Protection! Enterprise consists of the following components:

Protection! Enterprise Server

Protection! Enterprise Server is a plug-in to Protection! Web Services Application, set of libraries and database DDL scripts necessary to create a database. The main features are:

Host an unlimited number of products

Generate, activate, deactivate and distribute an unlimited number of licenses for each hosted product.

Account based access control.

Ability to create an unlimited number of accounts with per account set of permissions for all licensing activities (license delivery type, license actions and license types).

Automated logging of all licensing activities.

License activation support with automated management of available activations.

Maintain number of available activations.

License deactivation support.

Trial licenses support with automatic ability to restrict customers from obtaining multiple trial licenses for the same product.

Serial Numbers support with automatic tracking of previously issued licenses.

v 3.5 - 03/10/2008

Framework

Added the HeadlessProtectionFactory class should be used to create and initialize Protection! objects for headless applications. It's strongly recommended to update existing headless applications to avoid some potential issues (related to AWT) that could happen under some configurations and/or containers.

Added ability to discover IP addresses and ports of available Licensing Servers for Licensing and License Lock Assistants.

Other

v 3.0 - 06/08/2007

Licensing Server Support

Licensing Server is a new Protection! subsystem responsible for distribution of licenses and for tracking of the concurrent use of licenses. The following components are included:

Licensing Sever Application

The Licensing Server application is a turnkey solution that is deployed inside the customer's network. It can be run as a Windows service or as a UNIX daemon. The main features of the Licensing Server are:

Support for Floating and Named User models by tracking licenses usage using the concept of license lock (acquire) and unlock (release).

License lock sessions expiration to allow correctly releasing of the license lock when the client application is not responding or the network (connection to the Licensing Server) is down.

Ability to host and to distribute an unlimited number of licenses for an unlimited number of products.

Ability to allocate licenses for specified users and/or user groups.

Ability to control access to the Licensing Server by using access control lists (whitelist and blacklist) for any types of operations.

Client Application Code

Client application code allows for seamless integration with the Licensing Server and has the following main features:

Automatically handling of the Named and Floating User licenses by acquiring and further maintaining license lock by using a scheduled polling connection to the Licensing Server.

Ability to receive notifications from the Licensing Server when the license lock is expired or revoked by the Licensing Server administrator.

License Lock Assistant Dialog that is shown when license lock could not be acquired. It helps in resolving the Licensing Server connection problems and allows client to postpone license acquisition and wait for the license lock availability. Optional ability to specify Licensing Server address helps choosing the right Licensing Server when it is not specified in the license.

New Licensing Assistant functionality responsible for end-user assistance in obtaining licenses from the Licensing Server, including the ability to discover available Licensing Servers over network.

Protection! Launcher

The Launcher concept allows placement of almost all of the Protection! initialization data (currently presented in standard code snippet) into the Launcher resource. Launcher can be loaded at runtime and used to initialize Protection! system. Use of the Launcher provides an easy way to update Protection! configuration (e.g. adding secret storages or changing some other configuration options) without the need to manually modify source code and therefore rebuild the application. The following are the main features of the Protection! Launcher:

Updated code snippets (GUI (Launcher) and Headless (Launcher)) to employ all of the new features.

License Storage

The License Storage allows holding and storing an unlimited number of licenses in one uniform location (container). License Storage is very useful in such situations when for example:

There is a need for keeping together all the licenses for different products from one vendor

There is a server application that contains a number of different modules which could be licensed independently.

The main features of the License Storage are:

Ready-to-use JAR archives based implementation.

License Storage Screen in Protection! Control Center intended for viewing and maintaining the License Storages:

Ability to view contents of the License Storage.

Ability to add new licenses, modify or remove existing licenses.

Ability to import licenses.

Integrity Subsystem

The Integrity (former CRC) subsystem is greatly improved allowing easier integration into client applications and a much simpler build process. The following are the main new features of the Integrity subsystem:

• Ability to specify JAR, classes and file entries that must be checked by Integrity subsystem.

• Ability to specify runtime configuration:

Source – deprecated configuration (pre v3.) where entries and digest are part of the source file.

Resource - entries and digest are placed in a resource which can be loaded and used at runtime.

File - entries and digest are placed in a file which can be loaded and used at runtime.

Support for building of Digest for obfuscated code. Zelix KlassMaster and RetroGuard obfuscators are currently supported.

Mapping of Digest entries for example to allow the building of Digest for classes (development) or for archives (deployment).

Ability to build Digest using specified configuration.

Updated code snippet of all of the Digest subsystem new features.

Protection! Builder Utility

This new command line utility allows building various Protection! resources. Protection! Builder Utility allows for use of various build systems (i.e., Ant) and scripts to automate assembling of protected applications. This utility allows building:

Products Storage Protection

This functionality allows protecting products storages for opening and modification. The main features are:

Ability to apply read-protection by specifying a password. If read-protection is applied to the products storage then the correct password must to be provided to be able to open such products storage. After read-protection is applied to the product storage, such products storage will be strongly encrypted. That in turn minimizes possible damages if products storage was stolen or lost.

Ability to apply write-protection by specifying a password. If write-protection is applied to the products storage then the correct password must be provided to be able to make any modifications to such products storage.

"Lock" decorations is introduced in the Product and Integrity screens when write-protected products storage is opened.

Ability to use double-clicks in the status bar to quickly lock/unlock write-protection.

Product Audit

This new functionality of Developer Control Center (Products Screen) allows checking selected product for errors, option conflicts and potential issues depending on selected target (Code Snippet). The following are the main features of the Product Audit subsystem:

Ability to view a list of audit results and review a detailed description for the selected audit topic using the Audit tab.

Ability to quickly fix audit issues using context menu or hyperlinks in the issue description or by invoking the default fix action by pressing the Enter key or mouse double click.

Ability to ignore specific audits and maintain an ignore list using the Edit Product dialog.

Control Center

Support for new User Licensing Models in the License Screen.

Added command line options to the Protection! Control Center to allow for specifying products storage to open and for printing license and system information during startup. Running Control Center –help displays all the available options.

Added ability to use specified License Alias to provide default license attributes during creation of new licenses.

Sales Control Center

This new command line utility allows building various Protection! resources. Protection! Builder Utility allows for use of various build systems (i.e., Ant) and scripts to automate assembling of protected applications. This utility allows building:

Developer Control Center

This new command line utility allows building various Protection! resources. Protection! Builder Utility allows for use of various build systems (i.e., Ant) and scripts to automate assembling of protected applications. This utility allows building:

Added ability to specify a License Alias to provide default license attributes during creation of new licenses.

Added auto restoring of the recently selected code snippet in the Products Screen.

Framework

Improved User Licensing Model which defines how to handle different users working with the same license. The following models are now supported:

"Uncounted" – any number of users can work concurrently with the license regardless of the license number of copies value.

"Floating" – only a certain number of users can work concurrently with the license according to the license number of copies value. Actual usage check is done using the network broadcast facility.

"Named" - only a certain number of users can work with the license according to the license number of copies value. This is done via activation and/or activation-and-lock facility.

"Floating - Licensing Server" – only a certain number of users can work concurrently with the license according to the license number of copies value. Actual usage check is done by contacting the Licensing Server and acquiring the license lock.

"Named - Licensing Server" – only a certain number of users can work with the license according to the license number of copies value. Actual usage check is done by contacting the Licensing Server and acquiring the license lock.

Added policy to the Network Check to allow for control when running several instances of protected applications on either the same or on different hosts.

Note the <install_dir>/lib/ bcprovs-131.jar is now required and must be deployed to run protected applications.

Full Internationalization Support

All Protection! Assistants and messages have been improved in Protection! 3 API to provide multilingual support. Currently the following languages are supported: Dutch, French, German, Italian, and Spanish. Additional languages would be available in the future releases.

Protection! Backend Deployment

Protection! Backend Deployment license is now named as “protection.backend.license”. Existing Protection! Backend Deployment licenses should be renamed accordingly to be compatible with the new 3 framework version.

Other

v 2.0

General

Licensing Model

Ability to lock license to the user, IP address, Number of CPUs and the host name.

Usage based license expiration and grace period support.

Grace period for Licenses Activation.

License Deactivation allowing deletion or transfer of the license to another computer.

Sales Application

Protection! now includes new Sales application (Protection! Sales) that is targeted to the sales stuff. This application provides Control Center with complete licensing functionality and hides all developer-oriented features. With Protection! Sales users are able to open and use only the existing products storages. For products creation and maintenance Protection! Developer must be used.

Assistants

Licensing Assistant now provides ability to get already activated license by Serial Number as one step process.

Deactivation Assistant that provides ability to deactivate license on the local computer and to notify vendor about Deactivation results.

Added Progress Page for all Assistants processes which deals with Protection! backend. This page indicates:

List of operations in queue to be completed

Status of completed/failed operations

Animated progress icon for operation being currently executed.

Now it’s possible to interrupt backend operation and close Assistant by pressing the Cancel button.

License Screen

Ability to specify customer attributes using the new Customer tab. Such attributes can be used:

To accompany license information during writing of the license generation log file.

To help compose e-mail message for license delivery via email (e.g. by using customer e-mail address or embedding customer’s attributes into the e-mail subject and/or body).

To allow for license delivery via Protection! Backend

It is possible to specify that customer attributes should be cleared during license operations:

For new licenses via the Options | Clear Customer for New Licenses menu item.

For opened licenses via the Options | Clear Customer for Opened Licenses menu item.

Support for default Custom Properties for each individual product. Such default custom properties will be automatically inserted into each newly created license. Default custom properties support includes an optional mandatory attribute handling and proper cell editors for the properties representing choice type.

Ability to parse license orders. License order parsing allows extracting license and customer information directly from the order notification received from online E-Commerce stores like element-5. License Order Parsing designed to reduce efforts and to eliminate errors during license generation and re-entering customer details from the original order confirmation.

To enable this functionality appropriate License Aliases should be created for each particular product listed in the online store. Order parsing can be invoked via the Edit | Parse Order or Edit | Parse Order from Clipboard menu items. By default only critical messages are shown during order parsing; but it is possible to show messages for any low priority issues via Options | Warn on Any Order Parse Error.

Note: currently only element-5 (www.element5.com) and share-it! (www.shareit.com) textual order notification formats are supported; more formats to come in the future.

Ability to specify licenses expiration based on application usage count. Grace period is added as well.

Ability to include license properties and license features for licenses delivered through Protection! Backend. Now, delivered licenses have exactly the same attributes as specified in the License Screen.

Ability to validate Deactivation Key by use of the Validate Deactivation Key dialog which can be invoked via License Screen | Options | Validate Deactivation Key.

Progress for all license delivery operations that is shown in the application’s status bar. It is also possible to cancel delivery by pressing the Cancel button in the status bar.

Ability to open existing licenses or parse order files via Drag&Drop. If dropped file is not recognized as a license (by its extension) the user will be prompted with a menu allowing the user to choose whether dropped file should be processed as a license or as an order.

Product Properties and Edit Product Dialog

The Product is extended to hold almost all properties and options required to precisely integrate Protection! via generated Code Snippets and to provide more defaults for generated licenses. The following properties are added:

Default properties for new licenses.

License host options.

Logo image for the About Dialog.

Assistants’ options and logos.

Protection! Backend connection attributes.

List of secret storages.

License agreement texts.

Property that marks a product as disabled to allow safely keep it in the products storage but eliminate ability to use it for licensing.

The Edit Product Dialog is completely redesigned and provides the following new features:

New pages navigation using tree selector.

Search over the whole dialog contents by typing search word and observe results as blue gauges in the tree nodes.

License Aliases

Protection! 2 introduces concept of License Alias which bundles together certain license, identifiers and additional properties. This provides a way to refer to a License Alias by one of its identifiers and further creation of license based on license alias. License Aliases can be used in various areas including:

Orders parsing to allow creation of certain licenses according to product identifier assigned by E-Commerce store. In this case each product identifier should have corresponding License Alias created.

Serial Numbers v2 support to allow creation of licenses according to the alias attribute encoded into Serial Number.

License Shortcuts shown in the Shortcuts Side Bar to allow quick creation of licenses with predefined set of attributes

Serial Numbers v2

Protection! 2 introduces v2 of Serial Numbers which are based on the concept of License Alias. Serial Numbers v2 contain encoded representation of the license number and license alias. Because Serial Numbers v2 refers back to the License Alias it is possible to associate exact set of license attributes with each Serial Number. This eliminates major limitation of Serial Numbers v1 where Serial Number v1 was able to hold only limited set of license attributes.

This change is relatively transparent to the customers as v1 Serial Numbers are still supported. However, version 1 of Serial Numbers is now deprecated/obsolite. Special attribute in the products storage defines which version of Serial Numbers should be used. This could be controlled via Products Screen | Options | Use Obsolete Serial Numbers menu item. All of the Serial Numbers dependent functionality including API and dialogs supports both versions of the Serial Numbers and provides specific implementation for currently selected Serial Number version.

Protection! Backend

A new method is added to Protection! Backend that allows getting licenses for limited set of attributes (product, edition, major and minor versions, type) that primarily intended to be used from within end-user applications.

A new argument is added to all backend methods to allow passing unlimited number of additional arguments as a set of key/value pairs.