Введение
Проект сервера приложений — это программный продукт. GlassFish — это проект сервера приложений платформы Jakarta EE с открытым исходным кодом, начатый Sun Microsystems, затем спонсируемый Oracle Corporation, а теперь находящийся под эгидой Eclipse Foundation и поддерживаемый OmniFish, Fujitsu и Payara. Версия, поддерживаемая Oracle, называлась Oracle GlassFish Server. GlassFish является свободным программным обеспечением и изначально распространялся под двумя лицензиями: Common Development and Distribution License (CDDL) и GNU General Public License (GPL) с исключением Classpath. После передачи в Eclipse Foundation, GlassFish остался под двойной лицензией, но лицензия CDDL была заменена на Eclipse Public License (EPL).
a software product
GlassFish is an open source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).
Обзор
GlassFish — это реализация Eclipse Jakarta EE (ранее эталонная реализация от Oracle) и, следовательно, поддерживает Jakarta REST, Jakarta CDI, Jakarta Security, Jakarta Persistence, Jakarta Transactions, Jakarta Servlet, Jakarta Faces, Jakarta Messaging и т. д. Это позволяет разработчикам создавать переносимые и масштабируемые корпоративные приложения, которые интегрируются с устаревшими технологиями. Для расширения функциональности можно устанавливать дополнительные компоненты. GlassFish построен на модульном ядре, работающем на базе OSGi, и функционирует непосредственно поверх реализации Apache Felix. Он также совместим с окружениями Equinox OSGi и Knopflerfish OSGi. HK2 абстрагирует систему модулей OSGi, предоставляя компоненты, которые также можно рассматривать как сервисы. Эти сервисы могут быть обнаружены и внедрены во время выполнения. GlassFish основан на исходном коде, выпущенном Sun и системой персистентности TopLink от Oracle Corporation. В качестве контейнера сервлетов для обслуживания веб-контента используется производная от Apache Tomcat, дополненная компонентом Grizzly, который использует неблокирующий ввод-вывод Java (NIO) для обеспечения масштабируемости и производительности.
Релизы
Октябрь 2003 года Sun Microsystems выпустила Sun ONE Application Server 7, поддерживающий спецификацию J2EE 1.3. Он основан на веб-сервере iPlanet и эталонной реализации J2EE. Базовая версия бесплатна для загрузки, но не является проектом с открытым исходным кодом. Март 2004 года Sun Microsystems выпустила Sun Java System Application Server 8, поддерживающий спецификацию J2EE 1.4. В июне 2004 года выпущено обновление 1. Базовая версия бесплатна для загрузки, но не является проектом с открытым исходным кодом. 8 февраля 2005 года Sun Microsystems выпустила Sun Java System Application Server 8.1, поддерживающий спецификацию J2EE 1.4. Эта версия представила крупное обновление безопасности веб-сервисов (предшественник более поздних JASPIC и Jakarta Authentication), улучшения графического интерфейса консоли администратора, поддержку JavaServer Faces 1.1 (на тот момент еще не являющуюся частью J2EE), улучшения производительности и поддержку Java SE 5.0. Базовая версия бесплатна для загрузки, но не является проектом с открытым исходным кодом. 6 июня 2005 года Sun Microsystems запустила проект GlassFish, опубликовав проверенный исходный код Sun Java System Application Server. Сборки этой ранней версии идентифицируют себя в журнале как "sun appserver pe9.0". 31 января 2006 года Sun Microsystems выпустила Sun Java System Application Server 8.2. Эта версия представила включение базы данных Derby и Fast Infoset для веб-сервисов. Базовая версия бесплатна для загрузки, но не является проектом с открытым исходным кодом. 4 мая 2006 года проект GlassFish выпустил версию 1.0 (также известную как Sun Java System Application Server 9.0), поддерживающую спецификацию Java EE 5. 15 мая 2006 года выпущен Sun Java System Application Server 9.0, полученный из GlassFish 1.0. 8 мая 2007 года проект SailFin был анонсирован на JavaOne как подпроект в рамках проекта GlassFish. Проект SailFin направлен на добавление функциональности сервлета протокола инициирования сеанса (SIP) в GlassFish. 17 сентября 2007 года сообщество GlassFish выпустило версию 2.0 (также известную как Sun Java System Application Server 9.1) с полными возможностями кластеризации предприятия и совместимыми веб-сервисами Microsoft. 21 января 2009 года Sun Microsystems и сообщество выпустили версию GlassFish 2.1 (также известную как Sun GlassFish Enterprise Server 2.1), которая служит основой для Sailfin 1.0 (также известного как Sun Communication Application Server 1.0). 28 октября 2009 года SailFin 2.0 (также известный как Sun Communication Application Server 2.0) был выпущен, использующий GlassFish 2.1.1 (также известный как Sun GlassFish Enterprise Server 2.1.1) и добавляющий ряд функций, включая высокую доступность, последовательное обновление, гибкую сетевую топологию, улучшенную защиту от перегрузки, поддержку Diameter, улучшенную диагностику, файлы DCR на основе Java для балансировщика нагрузки и многое другое. 10 декабря 2009 года GlassFish 3.0 (также известный как Sun GlassFish Enterprise Server 3.0) был выпущен. Являясь эталонной реализацией Java EE, это был первый сервер приложений, полностью реализовавший Java EE 6 JSR 316. Однако JSR 316 был одобрен с оговорками. В этой версии GlassFish добавляет новые функции для облегчения миграции из Tomcat в GlassFish. Другие основные новые функции связаны с модульностью (GlassFish v3 Prelude уже поставляется с Apache Felix OSGi), временем запуска (несколько секунд), развертыванием при изменении (предоставляемым плагинами NetBeans и Eclipse) и сохранением сеанса при переразвертывании. 25 марта 2010 года вскоре после приобретения Sun Microsystems Oracle выпустила дорожную карту для версий 3.0.1, 3.1, 3.2 и 4.0 с темами, связанными с кластеризацией, виртуализацией и интеграцией с Coherence и другими технологиями Oracle. Сообщество открытого исходного кода остается нетронутым. 28 февраля 2011 года Oracle Corporation выпустила GlassFish 3.1. Эта версия представила поддержку подготовки на основе ssh, централизованного администрирования, кластеризации и балансировки нагрузки. Она поддерживает как Web Profile, так и полные спецификации платформы Java EE 6. 28 июля 2011 года Oracle Corporation выпустила GlassFish 3.1.1. Это исправленная версия GlassFish 3.1 с несколькими обновлениями компонентов (Weld, Mojarra, Jersey, EclipseLink и др.), поддержкой JDK 7, поддержкой AIX и многое другое. 29 февраля 2012 года Oracle Corporation выпустила GlassFish 3.1.2. Этот релиз включает исправления ошибок и новые функции, включая улучшения консоли администрирования, восстановление транзакций из базы данных и новые свойства пула потоков. 17 июля 2012 года Oracle Corporation выпустила GlassFish 3.1.2.2. Это "микро" релиз для устранения некоторых исключительных проблем в продукте. 12 июня 2013 года Oracle Corporation выпустила GlassFish 4.0. Этот крупный релиз обеспечивает поддержку Java Platform, Enterprise Edition 7. 9 сентября 2014 года Oracle Corporation выпустила GlassFish 4.1. Этот релиз включает в себя множество исправлений ошибок (более тысячи) и последние MR-релизы CDI и WebSockets. 7 октября 2015 года Oracle Corporation выпустила GlassFish 4.1.1. Этот релиз включает в себя множество исправлений ошибок и исправлений безопасности, а также обновления многих базовых компонентов. 31 марта 2017 года Oracle Corporation выпустила GlassFish 4.1.2. Этот релиз включает исправления ошибок. 21 сентября 2017 года Oracle Corporation выпустила GlassFish 5.0. Этот релиз включает в себя Java EE 8 Open Source Reference Implementation и спецификацию Java EE 8 и все базовые спецификации (JAX RS 2.1, Servlet 4.0, CDI 2.0, JSON B 1.0, Bean Validation 2.0 и т. д.) были окончательно утверждены. 29 января 2019 года Eclipse Foundation выпустила GlassFish 5.1. Этот релиз технически идентичен Oracle's GlassFish 5.0, но полностью построен из исходного кода, который Oracle передала Eclipse Foundation и который впоследствии был перелицензирован на EPL. Как и GlassFish 5.0, 5.1 сертифицирован Java EE 8, но не имеет статуса RI. Основная цель этого релиза - доказать, что весь исходный код был передан и действительно может быть построен в полностью соответствующий продукт. 31 декабря 2020 года Eclipse Foundation выпустила GlassFish 6.0.0. Эта версия функционально в значительной степени идентична GlassFish 5.1, но реализует Jakarta EE 9. Jakarta EE 9 функционально идентична Jakarta EE 8 (которая функционально идентична Java EE 8), но имеет измененные пакеты и различные константы с javax. * на jakarta. *. 5 мая 2021 года Eclipse Foundation выпустила GlassFish 6.1.0. Эта версия функционально идентична GlassFish 6.0.0, но реализует Jakarta EE 9.1. Jakarta EE 9.1 функционально идентична Jakarta EE 9 (которая функционально идентична Jakarta EE 8 и Java EE 8), но имеет поддержку JDK 11. Этот релиз требует JDK 11. 28 августа 2021 года Eclipse Foundation выпустила GlassFish 6.2.1. Эта версия имеет улучшенную поддержку JDK 17 и включает новый компонент Eclipse Exousia, автономную реализацию Jakarta Authorization. GlassFish 6.2.1 компилируется с JDK 11 до JDK 17. 14 декабря 2022 года Eclipse Foundation выпустила GlassFish 7.0.0. Это первая версия, содержащая масштабный рефакторинг и очистку кода, большое количество исправлений ошибок, а также новые функции. Реализует новую спецификацию Jakarta Concurrency и поддерживает JDK 11, но рекомендует использовать JDK17.
5 May 2021 the Eclipse Foundation released GlassFish 6.1.0. This version is functionally identical to GlassFish 6.0.0 but implements Jakarta EE 9.1. Jakarta EE 9.1 is functionally identical to Jakarta EE 9 (which is functionally identical to Jakarta EE 8 and Java EE 8) but has support for JDK 11. This release requires JDK 11. 28 August 2021 the Eclipse Foundation released GlassFish 6.2.1. This version has improved support for JDK 17 and includes a new component Eclipse Exousia, the standalone Jakarta Authorization implementation. GlassFish 6.2.1 compiles with JDK 11 to JDK 17
14 December 2022 the Eclipse Foundation released GlassFish 7.0.0. This is the first version containing larger refactoring and code cleanup, large amount of bugfixes and also new features. Implements new Jakarta Concurrency specification, and supports JDK 11 but recommends usage of JDK17.
Дорожная карта и прекращение коммерческой поддержки Oracle
Коммерчески поддерживаемая версия GlassFish была известна как Oracle GlassFish Server, ранее Sun GlassFish Enterprise Server, а до этого – Sun Java System Application Server (SJSAS). Она имеет историю, восходящую к Netscape Application Server, как и другое программное обеспечение iPlanet. Это включает в себя код от других компаний, например, Oracle Corporation для TopLink Essentials. Поддержка SIP Servlet от Ericsson также включена, её версия с открытым исходным кодом – SailFish, разрабатываемая в соответствии со спецификацией JSR 289. К 2010 году разница между коммерческой и версией с открытым исходным кодом уже была незначительной. Коммерческим клиентам рекомендовалось перейти на альтернативный продукт Oracle – Oracle WebLogic Server. В ответ на объявление Oracle о прекращении коммерческой поддержки GlassFish был создан форк под названием Payara Server и выпущен в октябре 2014 года. Payara Server является программным обеспечением с открытым исходным кодом, распространяемым под теми же лицензиями, что и GlassFish, но с возможностью получения коммерческой поддержки. Разработка GlassFish с открытым исходным кодом продолжалась под управлением Oracle до версии 5.0 (референтная реализация Java EE 8), после чего исходный код был передан Eclipse Foundation, которая выпустила технически идентичную, но перелицензированную версию 5.1. Разработка GlassFish 7 была в значительной степени спонсирована эстонской компанией OmniFish, которая также вновь предоставляет коммерческую поддержку GlassFish.