I want to use the Java Advanced Imaging library jars in a close-source commercial application. In Wikipedia (http://en.wikipedia.org/wiki/Java_Advanced_Imaging) it says the license is "Java Research License" and so the library cannot be used in commercial applications.
But in the txt files that go with the jars (see here: http://download.java.net/media/jai/builds/release/1_1_3/) "Java Research License" is not mentioned. Nor any other known to me license.
My question is: What is the JAI's license ? Can the JAI library be used in a commercial close-sourced application?
What is the JAI's license ?
The JAI license is in the LICENSE-jai.txt file.
Can the JAI library be used in a commercial close-sourced application?
The license says:
"1. LICENSE TO USE. Sun grants you a non-exclusive and non-transferable license for the internal use only of the accompanying software and documentation and any error corrections provided by Sun (collectively "Software"), by the number of users and the class of computer hardware for which the corresponding fee has been paid."
Assuming that your "commercial" application is going to be used for something other than "internal use only" ... as intended by the license, then the answer is No.
Disclaimer: IANAL. If you need professional legal advice, ask a lawyer. If you intend to ignore the clear intent of the JAI license, you need professional legal advice. Alternatively contact Oracle to discuss alternative licensing arrangements.
UPDATE
The LICENSE.TXT in the source code repository for the "jai-core" sub-project says this:
This software is licensed by Sun:
i) for research use under terms of the Java Research License (JRL) as
specified in the LICENSE-JRL.txt file and on the web at
"http://jai.dev.java.net/jrl.html"; or
ii) for commercial use under the terms of the Java Distribution License
(JDL) as specified in the LICENSE-JDL.txt file and on the web at
"http://jai.dev.java.net/jdl-jai.pdf".
The links are incorrect, but you can find the linked documents in the source repo; e.g.
https://java.net/projects/jai/sources/svn/content/trunk/www/jdl-jai.pdf?rev=1433
To view these files, you will need to create a "java.net" account.
I'll leave you (and your lawyer!) to read them, and figure out what it all means. You should NEVER rely on the "expertise" of random people on the internet to interpret legal things for you.
Related
In light of the recent apparent crackdown of Oracle on Java users (read here), I'm wary about my continued use of Oracle's JDK - or anything Oracle for that matter. The above article warns:
“If you download Java, you get everything – and you need to make sure
you are installing only the components you are entitled to and you
need to remove the bits you aren’t using,” our anonymous expert
warned.
I'm only using the OracleJDK for personal use, on my personal laptop. I haven't given the code to anyone. Period.
Is there a simple way to check if I have any of the commercial features enabled? I use IntelliJ IDEA CE. I don't want to accidently activate them so I'm seeking your help. Thank you.
So oracle's java BCLA states the following.
This means that you can pretty much do what ever you want with the software as long as you are the one using it and you arn't violating any of the later clauses such as reverse engineering / decompiling to provided software.
Now who does pay Oracle for the JDK? Well let's look at the highlighted section. Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. The first part non-exclusive this means that you are not the only person granted the license. Non-transferable this means that you may not give your license to another person. limited license this means Oracle can take your license away and that you are not unlimited with your relation to the intellectual property. without fees Free! to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. This means that you can use the jdk your self to run your java code. So if you were say a school that charged tuition and used the jdk as part of the curriculum you would owe royalties consequence of providing the jdk to external consumer (the student) as part of a package delivered for a fee.
Now it's the next part that has you worried. THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES. Digging deeper for a description of the commercial features we find this page. which includes the following portion that would have anyone a little worried.
While this may seem alarming you would have had that talk with oracle when you were downloading Java SE advanced or Java SE suit. Earlier in the page under [vanilla] Java SE it says 'Java SE can be used for free internally to run applications and may be redistributed in accordance with the Oracle Binary Code License Agreement for the Java SE Platform Products (the “Java BCLA”)'
To address your initial question as to weather the commercial features are enabled or not you can look at the vm options that you are using at run-time, as this is where the commercial addon's are enabled.
Do not modify the software Oracle distributes to you as the license provided to you is for use of the software 'complete and unmodified'.
I'm currently looking at the Metro stack on my search for a nice SOAP web service stack that should be used in a closed source project, but i dont fully understand metros license terms that can be found here:
glassfish.java.net - license
So my questions are:
Can the Java Metro stack be used in closed source projects?
If yes - what am I allowed to do with the libraries if I want to keep my own code closed source?
Best regards
After some more research I found that the Netbeans framework is licensed with the same construct (GPLv2 and CDDL) and luckily the guys at Netbeans took the time to explain the how what and why a bit:
Netbeans license FAQ
Here is what they say about dual-licensing:
Dual-licensing is the practice of distributing identical software under two (or more) different sets of terms and conditions. When software is dual-licensed, recipients can choose which terms under which they want to obtain the software. The two usual motivations for dual-licensing are business models and license compatibility. [...]
Additional search for details about CDDL brought me to this site containing a nice summary:
why the dislike for cddl
Here is one of the parts relevant that is to my question:
CDDL is a file-based license. This means that if you make any changes to CDDL-licensed software, any existing files that you modify need to remain under CDDL, but any new files that you create can be under whatever license you want as long as that license isn't incompatible with CDDL.
Conclusion (note that I'm not a lawyer and this is no legal advice - just my personal interpretation based on the available information):
Metro seems to be useable for commercial closed source projects but changes to the existing source have to be made available under the same license as the original source.
So as long as one is just using the libraries the own source code can be kept completely closed source.
At least if CDDL is chosen.
I'm looking for 2 or 3 of the most common/industry wide used libraries for the Java platform for the creation of PDFs on the fly.
The one requirement I'm focusing on is the ability to use specific formatting such as page layout and font sizes and typefaces (this will be a dynamically created legal document with frustratingly specific type standards).
I'm not actually going to be the one implementing this (I'm not a Java developer), but am trying to get the ball running and need to pass along some things to have our dev team to start investigating.
I'm investigating iText at the moment, which seems to be a well established option. I'm not yet sure how robust/flexible the templating abilities are, though.
EDIT: I just realized that there's probably no one 'right' answer for this question so maybe htis is better as part of the Wiki.
iText is probably the best all around free tool.
PDFLib is another choice if you are willing to pay for the license. It has a bit more features and has a native implementation backing the Java API.
There is always FOP (from apache) if you are willing to deal with XSLT and XSL-FO, but I believe they haven't updated those engines in a while.
I agree that iText is a great tool. However, the current version of iText is not free if you intend to use it in a closed source project. See Wikipedia:
In the end of 2009, iText version 5 is released under Affero GPL license. This license is drastically different from the previous license that iText had been distributed under, in that it requires anyone using iText 5 under a free license to provide the users with the full source of their application. Projects that do not want to provide their source code are required to purchase a commercial license for a non-disclosed price or they cannot upgrade to iText 5.
However, you may still use iText 4 under the LGPL license.
Take a look at Apache FOP. Very powerful.
IText will probably serve most of your purposes. However, if you are looking to convert from rtf or doc to pdf, you can use a java plugin for open source tools like OpenOffice( openoffice.org)
Hope this is helpful,
R
iText is probably your #1 standard in this area. You might also consider JODReports or Docmosis since they can do template-based reporting using standard word processor documents as templates.
Have you considered http://jasperforge.org/
I would like to make my plugin require a license to run similar to the maven clover plugin. Is there some utility out there that I can generate licenses with that will also allow me to integrate that into the plugin?
I need to do the following steps.
Modify the existing plugin to validate the license file
Generate the license file online and store the information for retrieval later.
Thanks,
Walter
If you use something too weak, it will always be possible to decompile the invoking class, remove the verification, compile the new class and add it back to the jar. So, unless you have some method of inline code in a lot of methods to do a complex validation of a string from the license data, use a tool that does something more.
You could try for example:
Easy Licenser from Agilis Software (uses Java so integration is straightforward)
[...] Java is our native language so integration is straightforward, and we are familiar with the issues you need to consider when protecting Java applications. Our license management solutions include protections such as digital library signatures (to make sure the libraries haven't been 'spoofed' or tampered with), guidelines on how to use exception-based flow of control to conceal the license check call itself, as well as protection against clock roll-back on time-limited licenses.
LM-X License Manager from X-Formation (uses JNI so make your application platform dependent)
But mostly the entry point to the license manager is vulnerable. With decompilers you can remove those calls from the software. Obfuscators make it a lot harder, but not impossible.
The mentioned solutions don't seem too be very expensive. However, if you decide to build your own solution, this open-source library might help: TrueLicense Library Collection.
In all cases, I don't think these tools offer the "web integration" you're looking for (something a la Atlassian if I understood well your requirement). It looks like you'll have to implement a custom solution for that.
I'm searching for a free EDI to XML converter in Java.
I need to convert EDI 940 to xml and convert XML to EDI 945. The catch is that this will be used for a commercial project, I've found some projects on sourceforge but they are under GNU General Public License which if I read it correctly means I would need to pay to use it for a commercial project. Any links are appreciated. Thanks.
GPL allows you to sell copies of your appliaction but you have to give access to your source code and anyone that purchased a copy is free to give the software away for free. Depending on your business this might not really be a problem. Imho "closed source" for commercial projects is overrated, there are several examples of companies that do well with open source projects.
Another point is how you include the GPL software in your project. If you do not link to the software directly you also do not need to make your software GPL (at least this is my understanding; you would need to verify this properly once you know how to use the GPL software).
Maybe more problematic is if you have to use other libraries that are not GPL compatible, system libraries on the other hand are not really a problem (so called "system library exception").
More information on GPL is here.
If you distribute your application to users, then the GPL would require you also make available your source.