Obfuscation requirements when distributing yFiles classes |
| Applies to: yFiles 2.3, yFiles 2.2, yFiles 2.1, yFiles 2.0 |
Categories this article belongs to:
| yFiles for Java | > Deployment | |
| yFiles for Java | > Licensing | |
| yFiles for Java | > Licensing | > Obfuscation |
| yGuard |
The yFiles License Terms state that the yFiles classes need to be obfuscated before they are delivered as part of your own application to a third party.
With obfuscation we mean name obfuscation. Name obfuscation changes class, field and method names in a consistent but nonsensical way that does not change the functionality of the software but makes decompiled java code harder to read and publicly available API description of the original code inapplicable to the obfuscated code.
Licensee is entitled to deliver (parts of) yFiles together as part of his/her own programs only if the yFiles classes have been protected by obfuscation via a Java obfuscator. Minimum requirement on the obfuscation process is that all essential class, method, and field names of the classes belonging to yFiles are obfuscated. With the obfuscation it shall no longer be possible to use the functionality of yFiles via the publicly available yFiles API.
The obfuscation of yFiles may be performed by any obfuscator fulfilling the minimum requirement as defined above. yWorks provides the cost free obfuscator yGuard that fulfils this minimum requirement.
The private and package private features of the yFiles developer distribution are already obfuscated, but its public and protected features are not, otherwiese it wouldn't be possible to use the public yFiles API for programming. It is the responsibility of the licensee to obfuscate the public and protected yFiles features before distributing them as part of an application.
Since the names of all yFiles features need to be obfuscated, it is necessary that any of the classes that make use yFiles features, need to be adjusted by the obfuscator as well. This includes licensee's own classes as well.. The adjustment of the classes only effect the so-called constant pool of a binary class. Within the constant pool the names the yFiles classes will be replaced by their obfuscated form. No class, method or field name of licensee's own code needs to be obfuscated, even though we strongly suggest that you do so to protect your own code.
For an example on how to obfuscate the yFiles portion of your application using our free obfuscatior yGuard, see the obfuscation demo located in the yFiles folder <yFilesDir>/demo/obfuscation.
| Keywords: |


