Java APIs have copyright.
On May 9, the U.S. Court of Appeals for the Federal Circuit decided the important question of the copyrightability of Application Program Interfaces (APIs) in a case which pitted two giants of the computer world Oracle and Google against each other. The Federal Circuit overruled a district court decision that Oracle's API packages in its JAVA language were not eligible for copyright protection. Oracle America, Inc. Google Inc. CAFA 2013-102.
Oracle had created the Java programming language and as part of that language had developed 37 API packages. Each package consisted of two types of source code: (1) “declaring code” and (2) “implementing code”. Google admitted copying 7,000 lines of “declaring code” but had written its own implementing code when developing its Android language.
Google argued that the implementing code was expression, which it had not copied, and that the declaring code was a non-copyrightable idea or was a “command structure” excluded from copyright as a method of operation or process under section 102 (b) 17 U.S.C.
Oracle claimed copyright in both the literal elements of its API packages that had been copied (the 7,000 lines of code) and the non-literal elements- the structure, sequence and organization which they asserted was necessarily copied when Google wrote its own implementing code.
Google argued three grounds as to why the API packages are not protected by copyright: 1. merger, 2. short phrases and 3. scenes a faire. The Federal Circuit rejected all three grounds. The Federal Circuit held that the District Court had misapplied the merger doctrine to the question of protectable subject matter. Applying 9th circuit law, the Court held that the merger doctrine applied only to considerations of infringement and not copyrightabiliy. The Court of Appeals held that the merger doctrine did not exclude the declaring code from copyright protection but could apply to excuse certain copying where there was only one way to express the underlying idea. However in any event the District Court had misapplied the merger doctrine by failing to focus its analysis on the options available to the original author who had alternative ways to express the idea.
Similarly the scenes a fair doctrine failed because this doctrine also is a component of an infringement analysis and not a question of copyrightable subject matter which was the issue before the court. Significantly also the court pointed out that the analytical focus must be on the external factors that dictated Oracle/Sun’s selection of classes, methods and code- not upon what Google encountered at the time it chose to copy those groupings and that code, quoting Nimmer, “the scenes a faire doctrine identifies and excludes from protection against infringement expression whose creation flowed naturally from considerations external to the author’s creativity.” Google had failed to make a sufficient factual showing that the groupings and code chosen for the 37 Java API packages were driven by external factors or premised on features that were either commonplace or essential to the idea being expressed.
Oracle argued. and the Federal Circuit accepted, that the structure, sequence, and organization of the APIs were entitled to copyright protection and that section 102(b) did not automatically prohibit copyright protection for functional elements of a computer program.
The Federal Circuit also concluded that the District Court erred in invoking interoperability in its copyrightability analysis. There is no interoperability exception to copyright infringement, the court concluded, and in any event Google designed Android so that it would not be compatible with Java.
The jury at the District Court level had been unable to agree on whether Google’s use was “fair use”. Although it was undisputed that Google’s use of the API packages is commercial, the parties disagreed on whether Google’s use is transformative. The Federal Circuit remanded the case back to the District Court for further consideration of this issue.