El Java Community Process (JCP) , establecido en 1998, es un mecanismo formal que permite a las partes interesadas desarrollar especificaciones técnicas estándar para la tecnología Java. Para convertirse en miembro del JCP se requieren sólidos conocimientos del lenguaje de programación Java, sus especificaciones y las mejores prácticas en el desarrollo de software. La membresía en el JCP implica una revisión detallada del perfil del candidato, incluida una evaluación por parte de los miembros actuales. Por lo general, se invita a los profesionales a unirse al JCP en función de sus contribuciones y reputación dentro de la comunidad Java.
Una vez invitado, el nuevo miembro se somete a una evaluación por parte del Comité Ejecutivo del JCP, que garantiza que puede contribuir de manera efectiva a las Solicitudes de especificaciones de Java (JSR). Estos documentos formales describen las especificaciones y tecnologías propuestas que se agregarán a la plataforma Java . Se alienta a los nuevos miembros a participar activamente y desempeñar un papel crucial en el apoyo a la comunidad Java y sus lanzamientos. Es esencial que los miembros posean experiencia y conocimientos técnicos profundos, combinados con una sólida experiencia profesional, para contribuir significativamente al crecimiento y uso del lenguaje Java .
La membresía para organizaciones y entidades comerciales requiere el pago de cuotas anuales, pero es gratuita para individuos. Los JSR se someten a revisiones públicas formales antes de convertirse en definitivos, y el Comité Ejecutivo del JCP vota sobre su aprobación. Un JSR finalizado proporciona una implementación de referencia , que es una implementación gratuita de la tecnología en forma de código fuente, y un Kit de compatibilidad de tecnología para verificar la especificación de la API.
El propio JCP se describe mediante un JSR. A partir de 2020 [actualizar], el JSR 387 describe la versión actual (2.11) del JCP.
Existen cientos de JSR. Algunos de los JSR más visibles son:
JSR # | Especificación o tecnología | Implementaciones de referencia | Otras implementaciones |
---|---|---|---|
1 | Especificación en tiempo real para Java (RTSJ) 1.0 | ||
3 | Extensiones de administración de Java (JMX) 1.0, 1.1 y 1.2 [1] | ||
5 | API de Java para procesamiento XML (JAXP) 1.0 | ||
8 | Especificación de la pasarela de servicios abiertos OSGI | ||
9 | Jiro (Especificación de arquitectura de gestión federada) 1.0 | ||
12 | Objetos de datos de Java (JDO) 1.0 | ||
13 | BigDecimal mejorado ( plataforma Java, edición estándar#java.math ) | ||
14 | Añadir tipos genéricos al lenguaje de programación Java (a partir de J2SE 5.0) | ||
16 | Arquitectura del conector Java EE (JCA) 1.0 | ||
19 | JavaBeans empresariales (EJB) 2.0 | ||
22 | Especificación API JAIN SLEE (JSLEE) 1.0 | ||
30 | Configuración limitada de dispositivo conectado (CLDC) 1.0 para Java ME | ||
31 | Arquitectura Java para enlace XML (JAXB) 1.0 | ||
32 | Especificación de la API de SIP de JAIN (JSIP) 1.0, 1.1 y 1.2 para Java ME | ||
36 | Configuración de dispositivo conectado (CDC) 1.0 para Java ME | ||
37 | Perfil de dispositivo de información móvil (MIDP) 1.0 para Java ME | ||
40 | Interfaz de metadatos de Java (JMI) 1.0 | ||
41 | Una facilidad de aserción simple (a partir de J2SE 1.4) | ||
47 | Especificación de API de registro (a partir de J2SE 1.4) | ||
48 | Especificación de servicios WBEM (a partir de J2SE 1.4) | ||
51 | E/S sin bloqueo (NIO) (a partir de J2SE 1.4) | Oso pardo , Netty | |
52 | Biblioteca de etiquetas estándar de JavaServer Pages (JSTL) 1.0 y 1.1 [2] | ||
53 | Especificaciones de Java Servlet 2.3 y JavaServer Pages (JSP) 1.2 | ||
54 | Conectividad de base de datos Java (JDBC) 3.0 | ||
56 | Protocolo y API de lanzamiento de red Java (JNLP) 1.0, 1.5 y 6.0 [3] ( Java Web Start ) | ||
58 | Plataforma Java 2, edición empresarial (J2EE) 1.3 | ||
59 | Plataforma Java 2, edición estándar (J2SE) 1.4 (Merlin) | ||
63 | API de Java para procesamiento XML (JAXP) 1.1 y 1.2 [4] | ||
68 | Plataforma Java, edición micro (Java ME) 1.0 | ||
73 | API de minería de datos de Java (JDM) 1.0 | ||
75 | Paquetes opcionales de PDA para la plataforma J2ME | ||
77 | Gestión J2EE | ||
80 | API USB de Java | ||
82 | API de Java para Bluetooth | ||
88 | Implementación de aplicaciones Java EE | ||
91 | API de tickets de problemas de OSS | ||
93 | API de Java para registros XML (JAXR) 1.0 | ||
94 | API del motor de reglas de Java | ||
102 | Modelo de objetos de documento de Java (JDOM) 1.0 | ||
110 | API de Java para WSDL (WSDL4J) 1.0 | ||
112 | Arquitectura del conector Java EE (JCA) 1.5 | ||
113 | API de voz Java 2 (JSAPI2) | ||
114 | Implementaciones de conjuntos de filas de conectividad de bases de datos Java (JDBC) | ||
116 | API de servlet SIP 1.0 | ||
118 | Perfil de dispositivo de información móvil (MIDP) 2.0 para Java ME | ||
120 | API de mensajería inalámbrica (WMA) | ||
121 | API de aislamiento de aplicaciones | ||
127 | JavaServer Faces (JSF) 1.0 y 1.1 [5] | ||
133 | Revisión de la especificación de subprocesos y modelos de memoria de Java | ||
135 | API de medios móviles de Java (MMAPI) para Java ME | ||
139 | Configuración limitada de dispositivos conectados (CLDC) 1.1 para Java ME | ||
140 | API del Protocolo de localización de servicios (SLP) para Java | ||
141 | API del Protocolo de descripción de sesión (SDP) para Java | ||
151 | Plataforma Java 2, edición empresarial (J2EE) 1.4 | ||
152 | Páginas JavaServer (JSP) 2.0 | ||
153 | JavaBeans empresariales (EJB) 2.1 | ||
154 | Especificaciones de Java Servlet 2.4 y 2.5 [6] | ||
160 | API remota de extensiones de administración de Java (JMX) 1.0 | ||
163 | Arquitectura de perfiles de la plataforma Java (JPPA), que incluye (entre otras especificaciones) la especificación de la interfaz de herramientas de máquina virtual Java | ||
166 | Utilidades de concurrencia (a partir de J2SE 5.0java.util.concurrent y )java.util.concurrent.atomic java.util.concurrent.locks | ||
168 | Especificación de portlet 1.0 | ||
170 | API de repositorio de contenido para Java (JCR) 1.0 | ||
172 | Especificación de servicios web para Java ME | ||
173 | StAX (API de transmisión para XML) | ||
175 | Una herramienta de metadatos para el lenguaje de programación Java | ||
176 | Plataforma Java 2, edición estándar (J2SE) 5.0 (Tiger) | ||
177 | API de servicios de seguridad y confianza para J2ME (SATSA) | ||
179 | API de ubicación 1.0 para Java ME | ||
180 | API del Protocolo de inicio de sesión (SIP) para Java ME | ||
181 | Metadatos de servicios web para la plataforma Java | ||
184 | API de gráficos 3D móviles para Java ME 1.0 y 1.1 | ||
185 | Tecnología Java para la industria inalámbrica (JTWI) | ||
187 | Mensajería instantánea ( Java ME y Java SE ) | ||
198 | Una API de extensión estándar para entornos de desarrollo integrados | ||
199 | API del compilador de Java | ||
200 | Formato de transferencia de red Pack200 para archivos Java | ||
201 | Ampliación del lenguaje de programación Java con enumeraciones, autoboxing, bucles for mejorados e importación estática (a partir de J2SE 5.0) | ||
202 | Actualización de la especificación de archivos de clase Java | ||
203 | Más E/S sin bloqueo (Java) (NIO2) | ||
204 | Compatibilidad con caracteres suplementarios Unicode (a partir de J2SE 5.0 se agrega compatibilidad con Unicode 3.1) | ||
205 | API de mensajería inalámbrica 2.0 (WMA) 2.0 | ||
206 | API de Java para procesamiento XML (JAXP) 1.3 | ||
208 | Integración empresarial con Java (JBI) 1.0 | ||
211 | API de manejo de contenido | ||
215 | Proceso de la comunidad Java (JCP) 2.6 | ||
218 | Configuración de dispositivo conectado (CDC) 1.1 para Java ME | ||
219 | Perfil de la Fundación 1.1 | ||
220 | JavaBeans empresariales (EJB) 3.0 | ||
221 | Conectividad de base de datos Java (JDBC) 4.0 | ||
222 | Arquitectura Java para enlace XML (JAXB) 2.0 | ||
223 | Creación de scripts para la plataforma Java para Java SE 6 | ||
224 | API de Java para servicios web XML (JAX-WS), sucesor de JAX-RPC | ||
225 | API XQuery para Java (XQJ) | ||
226 | API de gráficos vectoriales escalables en 2D para Java ME | ||
229 | API de pago (PAPI) | ||
231 | Enlaces de Java para OpenGL | ||
234 | API de complementos multimedia avanzados para Java ME | ||
235 | Objetos de datos de servicio (SDO) | ||
239 | Enlaces de Java para OpenGL ES | ||
240 | Especificación de API JAIN SLEE (JSLEE) 1.1 | ||
241 | El lenguaje de programación Groovy | ||
243 | Objetos de datos de Java (JDO) 2.0 | ||
244 | Plataforma Java, edición empresarial (Java EE) 5 | ||
245 | Páginas JavaServer (JSP) 2.1 | ||
247 | API de minería de datos de Java (JDM) 2.0 | ||
248 | Arquitectura de servicios móviles | ||
249 | Arquitectura de servicios móviles 2 | ||
250 | Anotaciones comunes para la plataforma Java (para la función Metadatos para Java ) | ||
252 | JavaServer Faces (JSF) 1.2 | ||
253 | API de telefonía móvil (MTA) | ||
255 | Extensiones de administración de Java (JMX) 2.0 | ||
256 | API de sensores móviles | ||
257 | API de comunicación sin contacto ( NFC ) | ||
260 | Actualización de la tecnología de etiquetas Javadoc | ||
269 | API de procesamiento de anotaciones conectables (para la función de metadatos de Java ) | ||
270 | Plataforma Java, edición estándar (Java SE) 6 (Mustang) | ||
271 | Perfil de dispositivo de información móvil (MIDP) 3.0 para Java ME | ||
274 | El lenguaje de programación BeanShell | ||
275 | Especificación de unidades (ver Unidades de medida ) | ||
276 | Metadatos en tiempo de diseño para componentes de JavaServer Faces | ||
277 | Sistema de módulos Java | ||
280 | API XML para Java ME | ||
281 | API de servicios IMS (Ver IMS ) | ||
282 | Especificación en tiempo real para Java (RTSJ) 1.1 | ||
283 | API de repositorio de contenido para Java (JCR) 2.0 | ||
286 | Especificación de portlet 2.0 | ||
289 | API de servlet SIP 1.1 | ||
290 | Integración del lenguaje Java y el marcado de interfaz de usuario XML (XML-UI) | ||
291 | Compatibilidad de componentes dinámicos con Java SE (consulte OSGi ) | ||
292 | Compatibilidad con lenguajes tipados dinámicamente en la plataforma JavaTM | ||
293 | API de ubicación 2.0 para Java ME | ||
294 | Soporte de modularidad mejorado en el lenguaje de programación Java | ||
296 | Marco de aplicación Swing (Java SE 7) | ||
299 | Contextos e inyección de dependencias para la plataforma Java EE (CDI) | Soldar | OpenWebBeans |
301 | Puente de portlets JSF | ||
303 | Validación de Bean | Validador de Hibernate | |
307 | API de movilidad de red y datos móviles (no oficial a partir del 20 de julio de 2007, pero su lanzamiento oficial está previsto para el segundo trimestre de 2008) | ||
308 | Anotaciones sobre tipos de Java (Java SE 8) | ||
311 | JAX-RS : La API de Java para servicios web RESTful (1.0 y 1.1) | ||
314 | JavaServer Faces (JSF) 2.0 | Caras de Mojarra JavaServer | Apache MyFaces |
316 | Plataforma Java, edición empresarial (Java EE) 6 | ||
317 | API de persistencia de Java (JPA) 2.0 | Enlace Eclipse | Hibernación , openJPA |
322 | Arquitectura del conector Java EE (JCA) 1.6 | ||
325 | Facilitadores de comunicación IMS (ICE) (Ver IMS ) | ||
330 | Inyección de dependencia para Java | ||
336 | Contenido de la versión de Java SE 7 | [OpenJDK 7] | ? |
337 | Contenido de la versión de Java SE 8 | [OpenJDK 8] | ? |
338 | API de persistencia de Java (JPA) 2.1 | Enlace Eclipse | Hibernación , openJPA |
339 | JAX-RS 2.0 : La API de Java para servicios web RESTful | ||
343 | Servicio de mensajes Java 2.0 (JMS) | ||
352 | Procesamiento por lotes de Java | IBM Java Batch [ enlace roto ] | JBeret, promoción de primavera |
354 | API de dinero y divisas de Java | ||
356 | API de Java para WebSocket | ||
365 | Contextos e inyección de dependencias para Java 2.0 | Soldar | |
367 | API de Java para vinculación JSON (JSON-B) | Eclipse Yasson | Jackson |
370 | API de Java para servicios web RESTful (JAX-RS) 2.1 | Proyecto Jersey | |
374 | API de Java para procesamiento de JSON 1.1 | Eclipse JSON-P Archivado el 31 de mayo de 2019 en Wayback Machine | Jackson |
376 | Sistema de módulos de la plataforma Java (reemplaza al 277) | ||
380 | Validación de Bean 2.0 | Validador de Hibernate | |
901 | La especificación del lenguaje Java, tercera edición (JLS) (a partir de J2SE 5.0 incorpora cambios de las JSR 14, 41, 133, 175, 201 y 204) | ||
907 | API de transacciones Java (JTA) 1.0 y 1.1 | ||
912 | API 1.3 de Java 3D | ||
913 | Proceso de la comunidad Java (JCP) 2.0, 2.1 y 2.5. [7] | ||
914 | API 1.0 y 1.1 del servicio de mensajes Java (JMS) | ||
924 | Especificación de la máquina virtual Java , segunda edición (JVM) (a partir de J2SE 5.0). [8] | OpenJDK | |
926 | API 1.5 de Java 3D |
La junta ejecutiva del JCP ha sido caracterizada como una " organización que se limita a certificar las cosas " desde que Oracle adquirió Sun Microsystems (el desarrollador original del lenguaje Java ). [9]
La Apache Software Foundation renunció a su puesto en la junta directiva en diciembre de 2010 porque Oracle no estaba dispuesto a otorgar licencia del Kit de compatibilidad tecnológica para la versión de Java de Apache. [10]
Fuente: [11]
Otorgar | Candidato | Contribuciones | Detalles | JSR # | ¿Ganar? |
---|---|---|---|---|---|
Miembro/Participante del año del JCP | Comunidad Java de Londres y SouJava | ¡Adopte un programa JSR! | Apoyo a los desarrolladores de Java a través del JCP. | ¡Ganar! | |
Esteban Colebourne | API de fecha y hora para Java . | Amplio y avanzado. Trabajo incansable. | 310 | ||
Markus Eisele | Trabajo activo dentro de la comunidad Java alemana y en el grupo de expertos JSR 342. | 342 | |||
JUG Chennai | Convertirse en la organización JCP más activa en la India y una organización de servicios competitiva en el mercado comercial. | ||||
Werner Keil | Increíble energía y participación en siete JSR así como en el Comité Ejecutivo. | ||||
Antoine Sabot-Durand |
| ||||
Líder de especificaciones excepcional | Víctor Grazi, | API de dinero y divisas de Java | Experiencia dedicada y enfocada en resolver problemas de representación de dinero y monedas . | 354 | ¡Ganar! |
Michael Ernst | Anotaciones sobre tipos de Java | Un enfoque sensato; un gran ejemplo de un JSR bien gestionado. | 308 | ||
Nigel Deakin, | Servicio de mensajes Java 2.0 | Un trabajo excepcional, minucioso e inteligente que mantiene el JMS 2 EG abierto y avanzando a un gran ritmo. | 343 | ||
Pete Muir, | Contextos e inyección de dependencias para Java EE 1.1 | A finales de 2011, se actualizó voluntariamente a 2.8 y se mantuvieron métodos que ya eran transparentes en el funcionamiento de su Grupo de Expertos. | 346 | ||
JSR más significativo | Jitendra Kotamraju | API para procesamiento de JSON | Un paso importante para llevar Java al mundo de la web moderna. | 353 | |
Víctor Grazi, | API de dinero y divisas | Nuevas formas de manejar cantidades monetarias y cálculos monetarios . Corrección de errores críticos de representación y formato de números en Java más allá de los valores monetarios. | 354 | ||
Mitch Upton | Gestión del estado de Java | El potencial para mejorar el aspecto que tendrán los servidores de aplicaciones y los servicios distribuidos en el futuro cercano, así como para simplificar la implementación en entornos PaaS y de nube. | 350 | ||
Nigel Deakin | Servicio de mensajes Java 2 | Modernice JMS a un ritmo rápido. | 343 | ||
Patrick Curran | JCP.Siguiente | Establecer la dirección y los procedimientos para el JCP de próxima generación. | 348 355 358 | ¡Ganar! |