今年JavaOne發(fā)出的消息相當(dāng)大:Java EE正在向Eclipse 基金會轉(zhuǎn)型。 David Heffelfinge將告訴你JavaOne發(fā)生了哪些變化。
JavaOne 2017上周在舊金山舉行。David Heffelfinger是會議的發(fā)言者,與其他演講嘉賓共享舞臺,例如Oracle的Java EE傳播者David Delabassee、 JVC規(guī)范主管和專家委員會成員Ivar Grimstad、杰出的Jeddict NetBeans插件的作者Gaurav Gupta、Payara創(chuàng)始人Steve Millidge、巴西SouJava Java用戶組(JUG)的Michael Nascimento Santos。
Java EE 8小組由SOUJava的Elder Moraes和Oracle Cloud Evangelist組織,小組成員包括David Heffelfinger、Adam Bien、Ed Burns、Ivar Grimstad、Steve Millidge、Reza Rahman、Antoine Sabot-Durand、Bruno Souza、Kevin Sutter、Ruslan Synytsky和Edson Yanaga。
Java EE轉(zhuǎn)型到Eclipse
大會的相關(guān)新聞是Java EE向Eclipse 基金會的轉(zhuǎn)型,總的來說,Java EE社區(qū)對這一消息表示歡迎。Java社區(qū)提出許多問題,但這是一個新事件,很多細節(jié)沒被解決,很多問題也沒有明確的答案。
Heffelfinger匯集了社區(qū)中提出的最常見的問題,以及來自轉(zhuǎn)型期參與者的初步答案。本文中的任何內(nèi)容僅供參考,因為至今Oracle、Eclipse 基金會和參與轉(zhuǎn)型期的Java EE社區(qū)成員都沒有明確的答復(fù)。Heffelfinger聲明沒有內(nèi)部資料,文中所寫的全部內(nèi)容都是關(guān)于在轉(zhuǎn)型期參與者和Java EE社區(qū)的公開聲明。
Java EE的新名稱?
由于知識產(chǎn)權(quán)(IP)的問題,一旦轉(zhuǎn)型到Eclipse基金會上后,Java EE將被重新命名。近期宣布Java EE將被重新命名為“Java Eclipse Enterprise”,該技術(shù)的新縮寫將是EE4J。
Java EE社區(qū)的許多成員都不喜歡這個名字。Oracle的代表解釋,“為Java EE這樣廣泛使用的技術(shù)選擇一個新名稱并不是一件簡單的事情,這個名稱即需要引人注意,也不能被注冊過。”
簡而言之,命名是困難的,由成千上萬的開發(fā)人員組成的委員會來命名這幾乎是不可能的。此外,Eclipse基金會的執(zhí)行主任Mike Milinkovich在一篇博客文章中說,“EE4J”是Eclipse基金會的頂級項目的名稱,而實際的技術(shù)在未來可能會有所不同。
SOUJavaJUG領(lǐng)袖和JCP成員Bruno Souza認為命名為EE4J是有道理的, 因為知識產(chǎn)權(quán)關(guān)注的新名稱不能以“Java”開頭,基金會商標(biāo)指南指出,在引用Eclipse項目時,首先和最突出的參考項目被引用為Eclipse [項目名稱],例如Eclipse Enterprise for Java。著名的Java EE顧問Adam Bien也表示對新名字的支持。
Heffelfinger參加的一個EE4J小組在會議上提出了命名的主題。 Tomitribe的創(chuàng)始人David Blevins是小組成員之一。雖然他沒有表明對這個名字的立場,但他表示,不應(yīng)該專注于名稱,而應(yīng)該重點關(guān)注未來版本的Java EE。他用一個很好的比喻來說明他的觀點:“我不在乎樂隊的名字,我關(guān)心的只是音樂”。
Heffelfinger同意David Blevins的看法,我們有比這個名字更需要去關(guān)心的事情。 “Eclipse Enterprise for Java”中的“Eclipse”是指Eclipse 基金會。然而,在較大的Java社區(qū)中,許多人將“Eclipse”這個詞與Eclipse IDE聯(lián)系起來。在名稱中使用“Eclipse”這個詞可能會導(dǎo)致一些人認為這僅適用于Eclipse IDE的用戶,但事實上絕不是這樣。
如前所述,Eclipse 基金會商標(biāo)使用指南要求其管理下的所有項目的官方名稱以“Eclipse”命名為其項目名稱。如果“Eclipse”這個詞不屬于縮略詞的一部分,這樣可能避免這種情況。CDI規(guī)范的領(lǐng)導(dǎo)者Antoine Sabot-Durand建議將名稱改為“JEclipse Enterprise Java for Java”。 保留EE4J的首字母縮略詞,刪除“Eclipse”。
Java EE API包名稱空間問題
目前,Java EE API包名稱使用的是javax頂級包。 所有與Java EE相關(guān)的類和接口都放置在以javax開頭的java包中,例如JAX-RS的javax.ws.rs和JPA的javax.persistence。 目前的計劃是將現(xiàn)有的Java EE技術(shù)保留在以Java EE包命名空間中,但將新的EE4J技術(shù)移到尚未確定的新包命名空間中。
javax包命名空間意味著Java EE是Java語言的組成部分。 Java EE社區(qū)的一些重要人士表示擔(dān)心,將EE4J軟件包移動到不同的軟件包命名空間可能會導(dǎo)致某些軟件將EE4J視為“另一個框架”,而不是Java的組成部分。 其他人認為,將現(xiàn)有API保留在當(dāng)前命名空間中并將新API添加到新命名空間是一個不錯的折衷。
Java EE的Java社區(qū)流程管理
在Oracle的管理下,Java EE的詳細計劃書已經(jīng)提交給Java社區(qū)進程(JCP)了。 JCP是Sun Microsystems被Oracle收購之前組建的。用于組織和個人共同為Java語言和Java EE提出并實現(xiàn)的新功能。
在遷移到Eclipse 基金會之后,關(guān)于JCP是否會繼續(xù)任職Java EE的管理員存在一些問題。 Java EE社區(qū)的一些成員非常希望通過JCP繼續(xù)來改進和更新Java EE。通過JCP并不意味著Oracle必須引導(dǎo)詳細的計劃。畢竟,Bean驗證和CDI規(guī)范都并非由Oracle領(lǐng)導(dǎo)。
Java社區(qū)的其他成員認為,在遷移到Eclipse基金會之后,Java EE的管理應(yīng)該從JCP轉(zhuǎn)移。JCP的成與Java EE社區(qū)的杰出成員Bruno Souza表示, JCP是最好的機制,我們必須允許社區(qū)對本質(zhì)上屬于Oracle的一套專有的詳細計劃做出貢獻;現(xiàn)在Java EE正在全面開放,通過JCP向前推進并沒有任何意義。他認為,Java EE應(yīng)該轉(zhuǎn)移到 其他機構(gòu),例如Eclipse基金會內(nèi)部。
其他社區(qū)成員對JCP處理知識產(chǎn)權(quán)的方式表示擔(dān)憂,指出JCP的規(guī)則將有力的支持Oracle。
Oracle對Java EE失去了興趣?
Java社區(qū)中的一些人認為將Java EE捐贈給Eclipse基金會是一個表明Oracle正在失去對Java EE興趣的跡象。Heffelfinger稱,關(guān)于這個話題,Oracle沒有公開聲明。然而,Java EE社區(qū)的杰出成員認為Oracle的動機并不重要,重要的是最終結(jié)果:開源Java EE是一個非常積極的結(jié)果。
技術(shù)兼容包和Java EE認證
在Oracle的管理下,符合Java EE標(biāo)準(zhǔn)的應(yīng)用服務(wù)器供應(yīng)商必須通過所謂的“技術(shù)兼容工具包”(TCK)驗證。Java EE應(yīng)用程序供應(yīng)商必須支付Oracle才能訪問TCK,以便他們的產(chǎn)品可以通過Java EE兼容認證。而TCK的無公開可用性,也曾給開源Java EE應(yīng)用服務(wù)器造成了問題。
Heffelfinger稱,還沒有聽說過任何關(guān)于TCK可用性的官方公開聲明,但是基于目前的討論,這意味著TCK將在Eclipse基金會完成后免費提供。將允許通過沒有TCK的當(dāng)前應(yīng)用程序服務(wù)器,以及打開新的Java EE實現(xiàn)大門。
與MicroProfile共存
MicroProfile計劃是一年前由一系列的Java EE供應(yīng)商和Java用戶組啟動的。該計劃是對Oracle在Java EE 8上進展缺乏的回應(yīng)。對Oracle之外的組織而言,這種方式可以自己掌握命運,也可以在沒有Oracle參與的情況下將Java EE向前推進。
現(xiàn)在,Java EE正在向Eclipse基金會轉(zhuǎn)型,一些Java EE社區(qū)成員表示MicroProfile計劃可能會變得冗余,因為Oracle并沒有像擁有該技術(shù)一樣掌握Java EE,但目前還沒有關(guān)于這些問題的明確答案。
Red Hat的Mark Little表示,關(guān)于處理MicroProfile的決定必須由MicroProfile和EE4J社區(qū)自己做出,Eclipse基金會不會決定結(jié)果。 David Blevins表示希望MicroProfile計劃可以繼續(xù)成為EE4J的子項目并繼續(xù)下去。MicroProfile之后會添加新技術(shù),并在技術(shù)成熟之前轉(zhuǎn)移到EE4J上。
近年最好的JavaOne
查看Java Champions和JUG領(lǐng)導(dǎo)人的推文和郵件后,一般的看法是這是近幾年來最好的JavaOne。Heffelfinger認為,Oracle已經(jīng)做出使Java能夠繼續(xù)前進的重要的決定,以滿足那些需要新功能的開發(fā)人員和需要穩(wěn)定部署的開發(fā)人員。 隨著這些變化,Java將繼續(xù)是全球最受歡迎的軟件平臺。