Question

If I was to release a utility that does byte-code manipulation on core Java classes (sun.*), should I worry about licensing issues?

To provide a bit more context: In order to have an automated regression test suite running, we needed to inject our own MockSystem.currentMillis() implementation to wherever the original java.lang.System.currentMillis() was called.

As I think this small utility will be useful for many developers, I am now wondering if there are any licensing issues involved when my (going-to-be) MIT licensed code manipulates code licensed otherwise.

Was it helpful?

Solution

I am not a lawyer, but in general where licensing terms of third party code comes into affect is when you are shipping that third party code.

So if you use your utility and then ship the code modified by your utility, then there could well be issues...

But if you just ship your code, and somebody uses your code on their machine (for running their tests) and does not ship the code modified by your utility, then the licensing concern s are lowered.

The users of your utility need to ensure that they are complying with the license of your utility (MIT is basically a "here is the code, do what you want, but don't blame me if it blows up in your face" license, so they should be OK using your utility) and ensure that they comply with the license of the code they are running your utility on.

Of course if they tell nobody that they are breaking the 3rd party license, and nobody knows that they are, the risk to themselves is low... but they will have to answer to a higher power (if there is one) for being a bad person who did not comply with the license!

OTHER TIPS

There should be no problems. If there were legal problems with byte-code manipulation, then we'd have heard about it.

NullUserException wrote:

You'd probably be better off asking a lawyer.

If you want an answer that has a solid legal basis, that is true. But I don't think it is necessary in this case. A simple reading of the license should be sufficient; http://www.oracle.com/technetwork/java/javase/terms/license/index.html. And I can see nothing in there that prevents you from writing or releasing byte-code manipulation tools.

I got this from the java license. Read it as you like.

F. JAVA TECHNOLOGY RESTRICTIONS. You may not create, modify, or change the behavior of, or authorize your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun", “oracle” or similar convention as specified by Oracle in any naming convention designation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top