JakartaEE(JavaEE)中国区技术讨论组

Jeff Zhang | October 12, 2018

一 JakartaEE现状

JakartaEE是JavaEE的继承者,Oracle公司讲JavaEE的API定义,文档,参考实现,测试TCK和套件都转移给Eclipse开源组织。 目前转移工作已经接近尾声,预计会在本月举行的EclipseCon欧洲大会上宣布移交工作完成。

JakartaEE工作组于4月份成立,目前国外知名Java领域软件公司几乎都已经加入,除了JavaEE领域Oracle,IBM,Redhat等大公司,连Microsoft,Pivotal, Lightbend这些过去的竞争性公司也都加入了,我们公司永源中间件也与今年5月加入该工作组,目前是国内唯一加入的公司。

半年中,国外领域专家积极做了很多推动工作,除了知识转移,平台搭建,规范定义等工作以外,还为下一步的发展进行了多轮讨论协商,重要的有响应式接口的适配,包名兼容性,模块化兼容性等技术范畴。

目前打包为jakarta.*的API已经陆续开始进入maven中央仓库,下一步会发布Glassfish 5.1,使用全新的Eclipse授权声明和三方包,就标志着JakartaEE正式发布。 JakartaEE的TCK也已经开源在github之上,之前从事JavaEE应用服务器工作的朋友知道这个测试套件的商业价值。 另外JakartaEE活跃成员,同时也在为Microprofile技术规范积极共享,后续这两个Eclipse旗下的项目应该会合并。

二 成立JakartaEE(JavaEE)中国区技术讨论组

为了更好的在国内普及JEE技术知识,促进Java语言在企业软件和互联网应用的发展,我倡导成立JakartaEE中国区技术讨论组。 这个讨论组为开放式技术讨论群体,围绕JakartaEE/JavaEE技术,当然也包含Spring等JavaEE框架相关技术内容,也可以探讨业界前沿技术,如Java,Go,Javascript等语言特性,云计算,容器技术,服务化组件,云原生开发等当前热点技术话题。

讨论组目标

  1. 学习,讨论和普及JakartaEE技术知识,通过讨论组,微信群等方式进行不定期技术沟通,参与优秀技术文章的翻译。
  2. 参与国际JakartaEE技术标准的讨论,API制定,软件实现,在开发时采纳JakartaEE技术。
  3. 积极宣传JakartaEE和Java有关技术知识和正确的方案选型技术导向。
  4. 乐观看待一切围绕JakartaEE(JavaEE)的技术方案,开源项目和产品,包括应用服务器,Spring框架,微服务方案,延伸的响应式技术架构等,立足技术理性讨论。

讨论组章程:

  1. 若干名倡导者作为讨论组开始时主要的参与者,完善章程,商议学习目标,帮助宣传讨论组并扩展讨论组成员。
  2. 鼓励成员分享技术文章,案例,开源项目等等。
  3. 使用jeecn@googlegroups.com作为讨论组正式交流论坛,可以通过web和邮件沟通。也会建立微信群。未来会创建git仓库存放相关资料。
  4. 欢迎各地开发者加入,鼓励开展不定期技术线下沙龙。未来会举办定期的跨地域技术交流活动。

技术大类划分(初始阶段):

  1. JakataEE规范集合一(Spring适应或者采纳) 包含规范Servlet, JPA, Websocket, BV, JMS, JaxRS, JaxWS, JSP, JCA, JTA
  2. JakataEE规范集合二 其他规范如EJB, CDI, JSF, Security,Concurrency, JBatch, JNDI, Interceptor, EL, JavaMail等
  3. Microprofile规范集合 Config, HealthCheck, Metrics, Fault Tolerance, RestClient, OpenAPI, JWT Authentication, OpenTracing
  4. Glassfish RI实现 JakartaEE的参考实现,Glassfish 5.1版本
  5. JakartaEE TCK 开源TCK
  6. 实现项目和其他类似项目的技术跟踪 如Wildfly, TomEE以及SpringBoot,Reactor等

说明: jeecn@googlegroups.com为托管在谷歌公司groups之上讨论组,可以用邮件订阅,发送,也可以翻墙用web方式来交流。

微信群二维码如下:

JakartaEE讨论组微信群

如果群已经满了,加好友useopencom并说明为Java爱好者申请加群

三 JakartaEE项目组成

可以分为API, RI实现,测试和例子等项目。 网址为 https://github.com/eclipse-ee4j

O. Parent: ee4j ee4j-website

A. JakartaEE API

* servlet-api
* jpa-api
* ejb-api
* jaxrs-api
* jms-api
* jta-api
* jsp-api
* jax-ws-api
* jsonp
* websocket-api
* interceptor-api
* jsonb-api
* security-api

jca-api
jaxb-api
javamail
concurrency-api
common-annotations-api
jstl-api
saaj-api
management-api
jacc
jaspic
jaf
jws-api

management-api
jaxr-api
jaxr-api

B. JakartaEE RI

* jersey
* glassfish
* jaxb-ri
* eclipselink
* yasson
* glassfish-hk2
* mojarra
* grizzly
* openmq
* tyrus
* soteria

concurrency-ri
orb
glassfish-hk2-extra
metro-policy
metro-xmlstreambuffer
enterprise-deployment
metro-package-rename-task
el-ri
grizzly-thrift
grizzly-memcached
glassfish-jsftemplating
metro-mimepull
jaxb-fi
jaxb-stax-ex
jaxb-dtd-parser
jaxb-istack-commons
orb-gmbal-pfl
orb-gmbal-commons
metro-jax-ws
glassfish-maven-embedded-plugin
glassfish-shoal
metro-jax-ws
metro-wsit
glassfish-ha-api
jax-rpc-ri
orb-gmbal
glassfish-fighterfish
glassfish-logging-annotation-processor
metro-saaj
glassfish-woodstock
glassfish-spec-version-maven-plugin
grizzly-ahc
eclipselink-workbench
eclipselink-oracleddlparser
grizzly-npn
genericjmsra

C. Test and sample

* jakartaee-tck

metro-ws-test-harness 
ditck-porting
metro-jwsdp-samples
cditck-porting
jakartaee-tck-tools
bvtck-porting
javamail-tck
jaf-tck
debugging-support-for-other-languages-tck
glassfish-cdi-porting-tck
security-examples
eclipselink-examples

9月份转移进度图

转移进度图

四 JavaEE是企业软件开发知识宝库

原来Java的创建者Sun公司,后来的Oracle公司,维护着Java执行委员会JCP(Java Community Process),也是从2000年来Java语言推动的主要管理力量。其中的JSR(Java Specification Requests 规范提案)包含了20年来Java语言的规范文本和API定义。

目前编号到387(900以后的一些编号是当时例外),我查阅所有的JSR(https://www.jcp.org/en/jsr/all)做了一个统计: 共计414个JSR

  • Active活跃 17
  • Final正式 155
  • Maintenance维护 105
  • Rejected被拒绝 14
  • Withdrawn已撤回 98
  • Dormant停止的 25

正常的 17+155+105=277 其中JavaEE 69个,占比 25%

2010年300号(300-387)以后正常JSR共计67个 (Active12 Final 39 Maintenance维护16),占比 67 / 88 = 76%

所以可以看出JavaEE规范在Java语言中有重要的地位

那么问题是为什么Oracle公司放弃控制权,转移给Eclipse开源组织呢? 我个人觉得有很多种原因,其中云计算时代来临,原有JavaEE模式不是很赚钱,专注于JRE重点项目等都是主要的原因。

那么JakartaEE的前景如何?我想这么多软件公司加入工作组并支持就是很好的注解。

软件市场在不断的追逐热点,从Gartner group成熟度曲线就可以看出来一项技术的潮起潮落。有很多技术消亡了,也有很多技术成熟到瓜落,尽管已经深入到每个人的生活之中,但已经不再喧嚣。我想JavaEE/JakartaEE就是这样的吧。

但从技术人和技术国界的角度来看,成熟到沉寂的软件技术,也总的有人和有公司去做相关工作,那么我们就尽一些微薄之力吧。也希望有更多国内的Java开发者和公司关注和支持。

五 本月技术盛会

2018年10月,在全球三个大洲有三场技术盛会:18-20日上海举办的QCon Shanghai, 23-25日在德国路德维希堡举行的EclipseCon Europe,以及在22-25日在美国举办的Oracle Code One(也就是之前的JavaOne大会)

以下是我整理的Java中间件技术相关议题,有兴趣的朋友可以关注一下

QCon Shanghai Oct 18 - 20

Dubbo Mesh——Service Mesh的本质、价值与应用探索
李云 阿里巴巴 / 高级技术专家

构建Java API的艺术:Do's and Don'ts(英文演讲)
Jonathan Giles Microsoft / Senior Cloud Developer Advocate

使用Eclipse Vert.x开发响应式应用(英文演讲)
Julien Viet Red Hat / 首席软件工程师

从HTTP性能基准测试谈Vert.x高性能的秘密:从JIT编译到网络优化(英文演讲)
Julien Viet Red Hat / 首席软件工程师

Apache RocketMQ事务消息演进之路
王强 阿里巴巴 / 技术专家

Apache Kafka,从0.7到1.0:那些年我们踩过的坑(上,下)
王国璋 Confluent / Kafka Streams系统架构师和技术负责人

Eclipsecon Europe Ludwigsburg Oct 23-25

Java Modules meet Dependency Injection
Sebastian Zarnekow (itemis / independent)

Practical Cloud Native Java Development with MicroProfile
Alasdair Nottingham

Rethinking Data in Reactive Microservices with CQRS
Simon Chemouil (Lambdacube)

Gradual Migration from Java EE to MicroProfile
Rudy De Busscher

Secure JAX-RS
Rudy De Busscher

Developing cloud-native Java microservices with Eclipse MicroProfile
Jamie Coleman (IBM)

Cloud Native development with Eclipse MicroProfile on Kubernetes
Michal Szynkiewicz (Red Hat)

Build a 12-factor microservice using MicroProfile
Alasdair Nottingham

Invited Talk: Thorntail - A Micro Implementation of Eclipse MicroProfile
Michal Szynkiewicz (Red Hat)

Invited Talk: Distributed Tracing for MicroProfile Runtimes
Pavol Loffay (Red Hat)

Microservice Security via MicroProfile JWT
Jonathan Gallimore (Tomitribe)

Eclipse MicroProfile and Istio - a supplementary combination
Michael Hofmann

MicroProfile and Jakarta EE -- What's Next?
Kevin Sutter (IBM)

Jakarta EE - Not Your Parents' Java EE
Kevin Sutter (IBM)

MicroProfile: It's All Fun and Games
Andrew Guibert (IBM)

From Java EE to Jakarta EE: a user perspective
Jean-François James (Atos Worldine)

Invited Talk: From Java EE to Jakarta EE
Dmitry Kornilov (Oracle)

Invited Talk: Developing cloud-native microservices using project Helidon
Dmitry Kornilov (Oracle)

Oracle Code One San francisco Oct 22-25

Be reactive and micro with a microprofile stack
Ondro Mihalyi, Senior Engineer, Payara

Build a 12-factor microservice with microprofile
Emily Jiang, Liberty Architect for MicroProfile and CDI, IBM

Building a fault-tolerant microservice in an hour
Antoine Sabot-Durand, Senior Software Engineer, Red Hat

CDI from MOnolithic application to java 11 jlink images
Antoine Sabot-Durand, Senior Software Engineer, Red Hat

chasing the restful trinity: lient cli and docs
Roberto Cortez, Senior Software Engineer, Tomitribe

Cloud native Java EE with microprofile
Edson Yanaga, Director of Developer Experience, Red Hat

Cloud Native, service-meshed Java Enterprise with istio
Sebastian Daschner, Developer, Sebastian Daschner - IT-Beratung

Coroutines for microservices
Eugene Petrenko, Developer, JetBrains

Deconstruction and evolving REST security
David Blevins, Founder & CEO, Tomitribe

Deep dive into gRPC
Vladimir Dejanovic, Founder, AmsterdamJUG

Develeping asynchronous, Message Driven microserivce
Chris Richardson, Software Craftsman, Eventuate, Inc

EventDriven microservice with JakartaEE
Ondro Mihalyi, Senior Engineer, Payara

Full-stack reactive Java with Project Reactor and Spring Boot 2
Mark Heckler, Principal Technologist/Developer Advocate, Pivotal

GraalVM and Microprofile: A polyglot microservice solution
Roberto Cortez, Senior Software Engineer, Tomitribe

Helidon Deep Dive: An up-close look at helidon Java API for microservice
Joe Dipol, Consulting Member of Technical Staff, Oracle

Integration Vert.x 
Kirk Pepperdine, Director, Kodewerk Ltd.

QCon上海站,我主持Java专题中,来自阿里巴巴,微软,红帽的技术专家将带来世界一流的技术经验分享。其他两场盛会也会给技术爱好者和技术管理人带来年度盛宴。