[Novalug] GPL with classpath exception question

Brandon Saxe brandon20va@yahoo.com
Mon Aug 26 11:19:58 EDT 2013


On a project at work, we are using the Java 7 WatchService API to monitor for new files from services using NFS mounts. The API says that the implementation should fall back to a polling mechanism if the native mechanism (e.g. inotify) is not available.
 
Recent testing shows that the Linux Oracle JVM’s implementation of the LinuxFilesystem does NOT fall back to a polling mechanism for NFS mounts. Based on research, inotify events may not be fired from an NFS mounted file system. 

Since there is no polling mechanism in the default implementation, we would be forced to write our own. The other option would be to use one that already implements the WatchService interface. I found that the SolarisFileSystem falls back onto a PollingWatchService in the OpenJDK 7 reference JVM implementation. This implementation is hidden from the API, so I cannot just instantiate it. 

The PollingWatchService is open source so instead of writing and refactoring a bunch of code, I grabbed it from the OpenJDK and changed the package name and then referenced it in my code. Seems to work thus far after wiring it it to my factories. 

Now, my question is this:How does using this code in our application affect the final product? Am I bound to release the source code to everything now?

This application is only used internally by my project team to automate server deployments in a cloud my company built and manages for our client. The client never sees the servers that run this code nor do they have access to even download and use this application.
 
The source file has a “GPLv2 Classpath Exception”. http://openjdk.java.net/legal/gplv2+ce.html 

Based on the terms of this license, it seems we are okay. 

Also, http://www.gnu.org/licenses/gpl-faq.html#InternalDistribution says that internal distribution is okay. Would you consider our Java program as “internal” only and not “distributed software”? 

My company owns this code. Not the client.

Source code is here: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/sun/nio/fs/PollingWatchService.java#PollingWatchService 
The text of the license is: 
/* 
* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. 
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 
* 
* This code is free software; you can redistribute it and/or modify it 
* under the terms of the GNU General Public License version 2 only, as 
* published by the Free Software Foundation. Oracle designates this 
* particular file as subject to the "Classpath" exception as provided 
* by Oracle in the LICENSE file that accompanied this code. 
* 
* This code is distributed in the hope that it will be useful, but WITHOUT 
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
* version 2 for more details (a copy is included in the LICENSE file that 
* accompanied this code). 
* 
* You should have received a copy of the GNU General Public License version 
* 2 along with this work; if not, write to the Free Software Foundation, 
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 
* 
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 
* or visit www.oracle.com if you need additional information or have any 
* questions. 
*/




More information about the Novalug mailing list