Geir Magnusson a profité de la sortie de la version 5.0 Milestone 4 d'Harmony pour réitérer ses critiques à l'égard de Sun. Harmony est le projet d'implémentation par la Fondation Apache de la plateforme Java Standard Edition. Mais avant de pouvoir prétendre à ce titre, Harmony devra passer les tests de compatibilité mis au point par Sun, le TCK (Test compatibility kit). C'est là que le bât blesse. Alors que, lors de l'ouverture de Java il y a un an, Geir Magnusson estimait que cela ne remettait pas du tout en cause les travaux sur Harmony, le leader du projet est aujourd'hui remonté. « La licence que Sun offre à Apache pour le TCK [nous] empêche de distribuer notre implémentation indépendante sous licence Apache », indique-t-il. Pour lui, Sun est en contradiction avec son propre processus d'élaboration des spécifications Java (le JCP) - ce qui pousse Apache à s'opposer aux spécifications émanant de Sun lors des votes du JCP. Sun craint qu'un Java sous licence Apache ne provoque des divergences Sun a répondu de son côté qu'Apache pouvait utiliser le programme TCK de son choix, y compris l'option gratuite pour les organismes à but non lucratif. Et un porte-parole a rappelé les propos de Rich Green, vice-président Software de Sun, qui expliquait en août dernier sur son blog que Sun savait que le choix de la licence GPL lors de l'ouverture de Java pourrait poser problème... mais que c'était comme cela, et puis c'est tout. « Nous savions quand nous avons choisi la GPL et un modèle gratuit pour la technologie Java que nous ne pourrions pas satisfaire les désirs de tout le monde. C'est le cas pour le projet Harmony de la Fondation Apache. » Pour Rich Green, permettre la sortie d'une implémentation de Java sous licence Apache présente des risques de divergence, le code pouvant alors être repris et modifié et finalement devenir incompatible avec le reste du monde Java. Quoi qu'il en soit, du code Harmony est déjà dans la nature : IBM a annoncé il y a quelques jours en avoir utilisé « une quantité significative » pour son Java SDK 6, installé dans « des centaines de produits IBM ».