# TopLink

TopLink ist ein Persistenz- und ORM-Framework für Java. Es implementiert die Standards JPA 1.0 und 2.0.
TopLink Essentials war die Open-Source-Edition von TopLink, Referenzimplementierung der Jakarta Persistence API (JPA) 1.0 und Persistenzmechanismus des Sun GlassFish 1.0 Application Servers.
Ab Oracle TopLink 11g wurde TopLink Essentials durch das Persistenzframework EclipseLink ersetzt. Ebenso wird ab Version 3.0 GlassFish EclipseLink statt TopLink Essentials einsetzen. EclipseLink ist die Referenzimplementierung von JPA 2.0.

## Geschichte und Verbreitung

TopLink war ursprünglich ein von The Object People Anfang der 1990er Jahre in Smalltalk entwickeltes Persistenzframework. Von The Object People leitet sich auch das TOP in TopLink ab, welches auch ursprünglich TOPLink geschrieben wurde. Das Produkt wurde auch 1994 als TopLink for Smalltalk erstmals verkauft.
In den Jahren 1996 bis 1998 wurde eine Java-Version, TopLink for Java entwickelt. Der interne Codename für die Version 1.0 war Wallace and Gromit. Wallace war der Name des in Ottawa, Canada entwickelten Frameworks, Gromit der Name der in Raleigh, North Carolina entwickelten Mapping Workbench.
April 2000 wurde The Object People an zwei Firmen verkauft, der Berater-Teil an BEA Systems und der Produkt-Teil, und somit auch TopLink an WebGain (die davor Visual Cafe von Symantec gekauft hatten). Im Juni 2002 wurden TopLink und die damit beschäftigten 90 Mitarbeiter von Oracle gekauft. Seit damals wird TopLink als Teil der Oracle Fusion Middleware Produktfamilie weiterentwickelt.
2006 spendete Oracle einen Teil des Sourcecodes von TopLink dem Open-Source-Projekt GlassFish. Dieser Teil wurde TopLink Essentials genannt, fungierte als Persistenzmechanismus für GlassFish und war die Referenzimplementierung von JPA 1.0. TopLink Essentials ist eine reduzierte Version von TopLink 10.1.3 – z. B. fehlten Query Caches, Cache-Synchronisierung und einige Cache-Invalidierungs-Policies.
2007 spendete Oracle erneut Sourcecode von TopLink der Eclipse Foundation. Daraus wurde das EclipseLink-Projekt. Diese Beistellung entsprach der TopLink-Version 11g bis auf die EJB 2 Container Managed Persistence und wenige für den Oracle Application Server spezifische Integrationen. Sie enthält auch die TopLink Mapping Workbench UI für das grafische Mappen von Objekten zu Tabellen. Es wurden lediglich die Packagenamen geändert und ein Teil des Codes und der Konfiguration verschoben.
TopLink hat eine Reihe von Preisen gewonnen. Darunter:
* Java Report Writers’ Choice Award for The Hottest and Coolest Products of 1999.
* Java Pro Readers’ Choice Award for Best Java Data Access Tool or Driver (Juli 2003).
* Editor’s Choice JavaWorld 2003 Award for Best Java Data Access Tool (2003).

## Funktionalitäten

Neben den Persistenz- und ORM-Funktionalitäten bietet TopLink noch folgende Möglichkeiten:
* Abfrageframework für die objektorientierte Suche mittels Query by Example (QBE), EJB QL, SQL und Stored Procedures
* Transaktionsframework auf Objektebene
* Erweiterte Caching-Funktionalität zur Wahrung der Objektidentität
* Direktes und relationales Mapping
* JAXB Unterstützung, sowie Objekt-nach-XML-Mapping
* EIS & JCA Unterstützung für nicht-relationale Datensourcen
* Editor für das grafische Mappen von Objekten auf Tabellen, die "Mapping Workbench"
* Eingeschränkte Unterstützung für Queries im Speicher