www.pudn.com > ejbca_3_5_3(1).zip > LICENSE
EJBCA is released under the LGPL license (see LICENSE-LGPL or http://www.opensource.org/licenses/lgpl-license.html). A clarification about the relationsship between the LGPL and Java can be found on: http://www.gnu.org/licenses/lgpl-java.html In short, LGPL works exactly the same way in Java or in C. I.e. using a library (jar) from an application does not make the application a derivatve work that must be licensed under the LGPL. To clarify the case for EJBCA, this means that: The code itself (java code, tools, jars, etc) can NOT be changed without changes beeing put under the same licence as EJBCA. Using the interfaces to use or integrate EJBCA in another project, without modifying EJBCA code is allowed and does not put any constraints on the product (the derived work). Any modification to java code which is part of EJBCA should fall under LGPL. For example creating a new MyAlgSigningSession (implementing interface ISignSession) replacing the EJBCA RSASigningSession and deploying MyAlgSigningSession by modifying src/ca/META-INF/ejb-jar.xml to use the new MyAlgSigningSession should make MyAlgSigningSession a piece of LGPL code. Taking EJBCA and integrating it into a web application by using the interfaces to the RA (IUserAdminSession through rmi) to create users for EJBCA from another source (integrated with user registration in the application) does NOT put any constraints on the whole application itself. A notice that the application uses EJBCA and the possibility to get the source of EJBCA used in the application should be provided. Using the plug-in APIs it is possible to add functionality to EJBCA that does not fall under the LGPL. Implementing the plug-in API usually means implementing an interface in EJBCA and entering the classpath in a configuration page (for example custom publishers). A custom publisher would not have to be released as LGPL.