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.
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!