I går inleddes ännu en rättegång för att avgöra om Google hade rätt att använda Oracles Javaimplementation i Android, utan att betala licensavgifter till Oracle.

Men hur kan Oracle bråka om det här när källkoden för mobilversionen av Java, Java ME (Java Platform, Micro Edition), varit släppt som en öppen standard sedan 22 december 2006, liksom även Java SE 6 (Java Platform, Standard Edition) som släpptes tidigare samma månad? Android släpptes inte förrän 23 September 2008. Hur ligger det till egentligen?

Läs också: Därför kan Javabråket mellan Oracle och Google få stora konsekvenser

Den Javaimplementation som fanns i Android från början baserades på den öppna Javaimplementationen Harmony från Apache Software Foundation. Harmony baserades på standardversionen J2SE 5.0 som inte var öppen. Men de api:er som ingår i Harmony ska ha utvecklats med en så kallad "clean-room implemented"-metod, alltså utan att utgå från originalet, vilket är tänkt att ge immunitet mot juridiska problem.

Men, det gäller kanske bara själva implementationerna av funktionaliteten i api:erna. Till dem tillkommer olika typer av kod för deklarationer, till exempel för namn på metoder, hur parametrar ska deklareras, hur resultat returneras och överhuvudtaget hur api:erna är organiserade. Och den koden påstår sig Oracle ha copyright för, för 37 api:er.

Sammanlagt ska det röra sig om 7 000 rader deklarationskod. Eftersom Google har använt sig av den koden anser sig Oracle ha rätt till en ersättning på 8,8 miljarder dollar, cirka 71,6 miljarder kronor. Vad de båda företagen hävdar i frågan beskrivs i följande dokument.

Läs också: 1 700 Java-utvecklare fick lyssna på Oracles försvarstal

Enligt Oracle är användningen av api:erna väldigt central för Androids framgångar. Google hävdar att api:erna inte är så betydelsefulla. Google hävdar vidare att deras implementation av api:erna ska falla under sedvanan ”fair use”, alltså fall av kopiering av lösningar som är godkänd enligt amerikansk lag. Det tycker inte Oracle.

I den rättegång som inleddes i går och planeras pågå i fyra veckor ska det avgöras om Googles användning av Oracles Javalösningar är att betrakta som ”fair use” eller inte. Om inte, ska det fastställas hur stort skadestånd Oracle har rätt till.

När begreppet api används i de juridiska beskrivningarna verkar det vara synonymt med ”paket” (packages), vilket är ett begrepp i Java för en samling programkod. Det kan vara en samling klasser, med metoder, som hör ihop. Api är alltså ett tekniskt begrepp i sammanhanget. Det säger egentligen inget om hur funktionalitet är avgränsad i olika api:er, även om man kan hoppas att det finns någon vettig logik bakom indelningen.

Fakta

Den skarpsynte kanske reagerar på att den äldre standardversionen av Java var version 2 (J2SE), medan den senare inte blev version 3, utan att versionssiffran i namnet helt sonika togs bort. Det är nog bäst att helt enkelt acceptera att versionsnumreringen för Javaplattformen inte alltid varit helt konsekvent.