# Java Specification Request

Ein Java Specification Request (JSR) ist eine Anforderung einer neuen Java-Spezifikation oder einer wichtigen Änderung einer existierenden Java-Spezifikation, die im Rahmen des Java Community Process (JCP) an das von Oracle betriebene Process Management Office (PMO) gestellt wird. Über dieses Verfahren werden neue Java-Standards definiert und Erweiterungen der Programmiersprache Java oder der Java-Laufzeitumgebung gemeinschaftlich entwickelt.
Um neue Sprachelemente aufzunehmen, APIs zu erweitern oder Revisionen vorzunehmen, wird ein neuer JSR angelegt. Ein JSR wird von einem Team aus Experten aus der Wirtschaft und Forschung geleitet, die sich in der jeweiligen Materie sehr gut auskennen bzw. die jeweilige Technologie vorantreiben wollen.

## Beispiele

Die folgende Tabelle enthält einige ausgewählte Java Specification Requests.
| Nummer | Name | Beschreibung |
| JSR 001 | Real-time Specification for Java | Erweitert die Java-Laufzeitumgebung um das Paket javax.realtime, das Schnittstellen und Klassen zur Verbesserung des Echtzeitverhaltens definiert. |
| JSR 002 | Boundary-Scan API | Definiert eine Programmierschnittstelle zum Durchführen von Boundary Scan Tests für Java Cards. |
| JSR 003 | Java Management Extensions (JMX) Specification | Softwarearchitektur und Programmierschnittstellen für die Verwaltung und Überwachung von Java-Anwendungen. |
| JSR 004 | ECperf Benchmark Specification | Spezifiziert eine bestimmte Arbeitslast (Benchmark), mit der die Leistung von EJB-Servern verglichen werden kann. |
| JSR 005 | Java API for XML Processing (JAXP) 1.0 | Legt die Java-Schnittstellen für DOM und SAX fest. |
| JSR 006 | Unified Printing API (Java Print Service API) | Definiert die erste Version der Java-Druckschnittstelle, die mit Version 1.2 Bestandteil der J2SE wurde. |
| JSR 012 | Java Data Objects (JDO) Specification 1.0 | Standard zur Realisierung transparenter Objektpersistenz in Java |
| JSR 030 | J2ME Connected, Limited Device Configuration | Konfiguration für vernetzte Geräte mit begrenzten Fähigkeiten |
| JSR 056 | JNLP Java Network Launching Protocol | Ermöglicht Java Web Start |
| JSR 063 | Java API for XML Processing (JAXP) 1.1 & 1.2 | Erweiterungen zu JAXP |
| JSR 082 | Java APIs for Bluetooth | Programmierschnittstellen für Bluetooth |
| JSR 097 | JavaHelp System | Online-Hilfe für Java Applikationen |
| JSR 109 | Implementing Enterprise Web Services | Spezifiziert ein Programmiermodell und eine Runtime, um Webservices in Java zu implementieren |
| JSR 168 | Portlet Specification 1.0 | Spezifiziert Schnittstellen zwischen Portalen und darin enthaltenen Komponenten, den sogenannten Portlets. |
| JSR 170 | Content Repository for Java Technology API | Definiert eine Programmierschnittstelle javax.jcr für einen einheitlichen Zugriff auf Inhalte eines Content Repository. Der Nachfolger ist JSR 283. |
| JSR 173 | Streaming API for XML | Definiert eine Programmierschnittstelle javax.xml.stream zur effizienten Verarbeitung von XML-Dokumenten. |
| JSR 179 | Java Location API | Programmierschnittstelle zum internen GPS-Empfänger |
| JSR 208 | Java Business Integration 1.0 | Java-Implementierung einer Serviceorientierten Architektur (SOA). |
| JSR 220 | Enterprise JavaBeans 3.0 | Definiert diverse Erweiterungen der Enterprise Java Beans, beispielsweise die Definition von Deployment-Informationen über Annotations. |
| JSR 223 | Scripting for the Java Platform | Definiert Möglichkeiten für Scripte auf Java-Code zuzugreifen und Scripte in Java einzubinden. |
| JSR 235 | Service Data Objects | Definiert ein Framework für den einheitlichen Datenzugriff im Rahmen von serviceorientierten Architekturen. |
| JSR 241 | The Groovy Programming Language | Spezifiziert die Programmiersprache Groovy, die versucht, eine „geschliffene“ Fassung der Java-Syntax mit den Konzepten von Ruby zu verbinden. |
| JSR 243 | Java Data Objects 2.0 – an Extension to the JDO specification | Soll als Ergänzung zu JSR 012 JDO noch einfacher benutzbar machen. |
| JSR 250 | Java Common Annotations | Gebräuchliche Annotationen, bspw. für Bean Lifecycle und Security |
| JSR 283 | Content Repository for Java Technology API | Nachfolger von JSR 170. Definiert eine Programmierschnittstelle javax.jcr für einen einheitlichen Zugriff auf Inhalte eines Content Repository. |
| JSR 286 | Portlet Specification 2.0 | Spezifiziert Schnittstellen zwischen Portalen und darin enthaltenen Komponenten, den sogenannten Portlets. |
| JSR 299 | Contexts and Dependency Injection | Java-APIs für die Dependency Injection im Standard- und Enterprise-Programmiermodell. |
| JSR 303 | Java Bean Validation | JavaBean Validierung |
| JSR 312 | Java Business Integration 2.0 | Java-Implementierung einer Serviceorientierten Architektur (SOA). |
| JSR 330 | Dependency Injection for Java | Annotationen zur Java Dependency Injection |
| JSR 352 | Batch Applications for the Java Platform | Ein Programmiermodell für Batch-Anwendungen und eine Laufzeitumgebung für das Scheduling und die Ausführung von Jobs. |
| JSR 354 | Money and Currency API | API für die Behandlung von Geldbeträgen inkl. Währung. Die Referenzimplementierung Moneta ermöglicht korrekter Rechenoperationen und historische Wechselkurse. |
| JSR 356 | Java API for WebSocket | Implementierung einer API für WebSockets. |
| JSR 375 | Java EE Security API | Implementierung einer API für Authentifizierung und Autorisierung. |
| JSR 391 | Java SE 16 Platform JSR 391 | JavaSE Version 16. |