Содержание


Переход на Liberty Profile

Часть 1. Определение пригодности приложения к миграции с помощью инструментария Liberty Technology Preview

Серия контента:

Этот контент является частью # из серии # статей: Переход на Liberty Profile

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Переход на Liberty Profile

Следите за выходом новых статей этой серии.

В сравнительно недавней спецификации Java EE 6 была введена концепция профилей (profile). Согласно этой спецификации, профиль – это совокупность технологий и API-интерфейсов Java EE, удовлетворяющая потребности определенных сообществ разработчиков и типов приложений. Были определены следующие профили.

  • Full Platform – рассчитан на разработчиков, которым требуется полный комплект технологий и API-интерфейсов Java EE для создания приложений корпоративного класса.
  • Web Profile – содержит веб-технологии, образующие подмножество профиля Full Platform. Рассчитан на разработчиков, которым не требуется полный комплект API-интерфейсов Java EE.

Существующий профиль сервера в продукте IBM WebSphere Application Server всегда обеспечивает реализацию спецификации Java EE 6 Full Platform, поэтому в настоящее время он носит название Full Profile (Полный профиль), чтобы отличать его от нового профиля Liberty Profile.

Профиль Liberty Profile использует компоненты из той же базы кода, что и профиль WebSphere Application Server Full Profile. Он исполняет эти компоненты на новом ядре в отдельном процессе сервера. Кроме того, его можно инициализировать лишь с теми функциями, которые требуются развернутым на нем приложениям. Это освобождает пользователей от необходимости развертывания своих приложений в контейнере, который имеет больше функций, чем требуется этим приложениям.

Профиль Liberty Profile сертифицирован как сервер, совместимый с профилем Java EE 6 Web Profile. Кроме того, профиль Liberty Profile поддерживает некоторые технологии Java EE, которые доступны только в профиле Java EE 6 Full Platform. Другими словами, профиль Liberty Profile позволяет создать пользовательский профиль (совокупность технологий и API-интерфейсов Java), функциональность которого может быть меньше, равна или больше, чем у профиля Java EE 6 Web Profile. Таким образом, Liberty Profile – это профиль сервера Java EE 6 Web Profile.

В прошлом обычной практикой для многих ИТ-организаций была разработка приложений для облегченных контейнеров (таких как Liberty Profile) и развертывание этих приложений в контейнерах Java EE Full Platform. Для этого варианта использования характерно небольшое количество проблем портирования, поскольку при этом приложение, разработанное с использованием подмножества API-интерфейсов, перемещается в контейнер, поддерживающий надмножество этих API-интерфейсов. По поводу этого варианта использования написано большое количество статей (см. раздел Ресурсы).

В последнее время в ИТ-отрасли наблюдается тенденция замены существующих серверов Java EE Full Platform облегченными контейнерами. С этой целью приложения, разработанные с использованием технологий и API-интерфейсов Java Full Platform, перемещают в облегченные контейнеры. В зависимости от используемых API-интерфейсов перемещение этих приложений может быть как достаточно легким, так и очень сложным – возможны трудности при выявлении используемых API-интерфейсов, поскольку первоначальные разработчики уже могли уйти из компании, а массив кода может включать в себя сотни тысяч строк кода. Это обуславливает потребность в инструментарии, который помогал бы предприятию определить пригодность приложений к перемещению до того, как приступать к замене имеющихся серверов Java EE Full Platform облегченными контейнерами.

Эта статья посвящена миграции приложений со сторонних серверов Java EE на сервер Liberty Profile. В статье представлен комплект Liberty Java Technology Rule Set, который уже доступен в рамках пакета Technology Preview. Комплект Liberty Technology Rule Set выявляет использование технологий и API-интерфейсов Java, которые могут присутствовать на серверах Full Platform, но на данный момент отсутствуют в Liberty Profile, и предлагает рекомендации по изменению приложения (если оно использует какой-либо из таких API-интерфейсов Full Platform) с сохранением его функциональности.

Базовая информация и терминология

IBM предоставляет инструмент WebSphere Application Server Migration Toolkit, который помогает предприятиям быстро и экономически эффективно переместить имеющиеся у них приложения Java EE со сторонних серверов Java EE Full Platform на сервер WebSphere Application Server Full Profile.

Для миграции с существующих конкурирующих продуктов инструмент Migration Toolkit предоставляет несколько наборов (коллекций) правил rule sets. Инструмент Migration Toolkit использует эти правила при сканировании дескрипторов развертывания (XML-файлов), исходных JSP-файлов и исходных Java-файлов на наличие непереносимого кода. Он передает отчет о проблемах миграции в представление Software Analyzer вашей IDE-среды на основе Eclipse и предоставляет рекомендации по устранению этих проблем. Наборы правил поддерживают миграцию со следующих конкурирующих Java-серверов на продукт WebSphere Application Server V8.5.x Full Profile.

  • Apache Tomcat Server (версии 6.0 и 7.0)
  • JBoss Application Server (Java EE 5 и более ранние версии)
  • Oracle Application Server (Java EE 5 и более ранние версии)
  • WebLogic Server (Java EE 5 и более ранние версии)

Существующие наборы правил миграции с конкурирующих продуктов применяются и при миграции приложений на профиль Liberty Profile, однако некоторые правила при этом отсутствуют. Например, существующие наборы правил миграции с конкурирующих продуктов не учитывают различий между технологиями и API-интерфейсами Java, которые доступны в сторонних серверах Java EE, и теми, которые недоступны в профиле Liberty Profile. Чтобы заполнить этот разрыв, был выпущен новый инструмент IBM WebSphere Application Server Migration Toolkit – Liberty Technology Preview.

Сочетание существующих наборов правил миграции с конкурирующих продуктов и инструмента Liberty Technology Preview (например, JBoss Application Server Rule Set плюс Liberty Technology Preview) позволяет выявить большинство проблем портирования, связанных с перемещением существующих приложений Java EE от сторонних серверов Java EE на сервер Liberty Profile.

Сравнение редакций продукта WebSphere Application Server

Продукт WebSphere Application Server версии V8.5.x доступен в нескольких различных редакциях. Эти редакции сгруппированы по моделям программирования и по другим включенным в них функциям. Все редакции этого продукта содержат функции профиля Liberty Profile, но конкретный набор доступных функций индивидуален для каждой редакции (см. раздел Ресурсы):

  • WebSphere Application Server – совместимая с профилем Java EE 6 Full Platform реализация, доступная в четырех редакциях.
    • WebSphere Application Server Express
    • WebSphere Application Server Base
    • WebSphere Application Server Network Deployment (ND)
    • WebSphere Application Server for z/OS®
  • WebSphere Application Server Liberty Core – другая редакция с базовым набором функций, который обеспечивают реализацию, совместимую с профилем Java EE 6 Web Profile. Она не включает в себя редакцию WebSphere Application Server Full Profile.
  • Liberty Profile – поставляется как функция редакций WebSphere Application Server Express/Base/ND/z/OS. Liberty Profile – это не отдельный продукт, а среда исполнения с функциональными возможностями, определяемыми конкретной редакцией WebSphere Application Server. Профили Liberty Profile в редакциях WebSphere Application Server имеют следующие различия (рис. 1).
    • Liberty Profile в редакциях WebSphere Application Server Express и WebSphere Application Server Base содержит одинаковый набор функций. Этот набор включает в себя функциональность редакции Liberty Core плюс следующие возможности: веб-сервисы, JMS, MongoDB и т. д.
    • Liberty Profile в редакции WebSphere Application Server ND (Network Deployment) включает функции профиля Liberty Profile, который поставляется с редакциями WebSphere Application Server Express и WebSphere Application Server Base, плюс возможность кластеризировать сервер Liberty.
    • Liberty Profile в редакции WebSphere Application Server z/OS включает функции профиля Liberty Profile, который поставляется с редакцией WebSphere Application Server ND, плюс определенные функции редакции WebSphere Application Server z/OS.
    Рисунок 1. Набор функций Liberty
    Liberty feature set
    Liberty feature set

Сравнение Java-технологий

Как показано на рис.1, набор функций Liberty Profile включает в себя многие технологии и API-интерфейсы Java. Набор функций Liberty V8.5.x является надмножеством спецификации Java EE Web Profile, но подмножеством Java-технологий, которые имеются в серверах Java EE Full Platform.

В таблице 1 Java-технологии, которые поддерживаются в Liberty Profile, сравниваются с технологиями Java, которые поддерживаются серверами приложений Java EE Full Platform. Если приложения используют Java-технологии из этой таблицы, они являются отличными кандидатами на исполнение в среде Liberty Profile.

Приложения, являющиеся хорошими кандидатами на миграцию, могут тем не менее иметь определенные проблемы портирования при использовании этих Java-технологий. Такие приложения отмечены в таблице; установить типы проблем и способы их исправления можно путем выполнения – в качестве второго шага – одного из существующих наборов правил миграции с конкурирующих продуктов (например, набора JBoss Application Server Rule Set) для конкретного приложения.

В разделе Ресурсы приведена ссылка на полный список поддерживаемых моделей программирования, API-интерфейсов и функций профиля Liberty Profile для разных редакций. В таблице 1 показаны некоторые из наиболее популярных функций, доступных в версии Liberty Profile V8.5.x. Ниже Ниже показан список неподдерживаемых API-интерфейсов и реализаций, а также способы преодоления проблем в случае, если ваши приложения используют их.

Таблица 1. Ресурсы Java и Liberty Profile
Java-технологияLiberty ProfileСерверы приложений Java EEПримечания
Java APIs for RESTful Web Services (JAX-RS) 1.1 ДаДа
Java APIs for XML Based Web Services (JAX-WS) 2.2ДаДа
Java Architecture for XML Binding (JAXB) 2.2ДаДа
Java Servlet 3.0ДаДа
JavaServer Pages (JSP) 2.2 ДаДа
Enterprise JavaBeans (EJB) 3.1 Lite subsetДаДа
Java Persistence API (JPA) 2.0ДаДаLiberty поддерживает поставщика OpenJPA и альтернативных поставщиков JPA, в том числе Hibernate и TopLink. Чтобы использовать альтернативных JPA-поставщиков, объявите класс поставщика в файле persistence.xml и убедитесь в том, что поставщик JPA развернут на сервере Liberty (соответствующие JAR-файлы указаны в переменной classpath).
Java Message Service (JMS) 1.1 и Message Driven Beans (MDB) 3.1ДаДаВ приложениях редко требуются изменения в технологиях JMS и MDB. Однако вам придется сконфигурировать JMS-ресурсы согласно требованиям MDB-контейнера.
Java Transaction API (JTA) 1.1ДаДа
Java Database Connectivity (JDBC) 4.0ДаДаВ приложениях редко требуются изменения в технологии JDBC. Однако вам придется сконфигурировать драйвер и указать местоположение его JAR-файла в файле server.xml.
Java Management Extensions (JMX) 2.0ДаДаЕсли приложение создает имена ObjectName с использованием специфических доменов сервера Java EE, их придется подвергнуть миграции. Такие имена ObjectName невозможно использовать для ссылки на JMX MBean-компоненты в среде Liberty. Для получения информации по работе с MBean-компонентами в среде Liberty обратитесь к разделу Ресурсы.
Java Naming and Directory Interface (JNDI) ДаДаЕсли приложение создает контексты InitialContext с использованием специфических свойств сервера Java EE, их придется подвергнуть миграции. Такие контексты InitialContext невозможно использовать для поиска с помощью JNDI в среде Liberty.

Работа инструмента

Комплект Liberty Technology Rule Set базируется на инструменте Migration Toolkit. Migration Toolkit включает в себя несколько наборов правил для сканирования приложений Java EE на предмет использования дескрипторов развертывания от конкретного поставщика, JSP-файлов с закрытыми (проприетарными) API-интерфейсами и Java-кода с закрытыми API-интерфейсами (см. раздел Ресурсы).

  • JBoss to WebSphere Application Migration Tool
  • Oracle AS to WebSphere Application Migration Tool
  • Tomcat to WebSphere Application Migration Tool
  • WebLogic to WebSphere Application Migration Tool

Как и другие инструменты, Liberty Technology Preview поставляется в виде Eclipse-плагина, который позволяет сканировать и оценивать исходный Java-код и XML-дескрипторы развертывания. Эти правила сканируют приложения на предмет использования технологий и API-интерфейсов Java, которые не поддерживаются в среде Liberty Profile.

Комплект Liberty Technology Rule Set, используемый совместно с другими пакетами Migration Toolkit Rule Set, продемонстрировал свою эффективность при выявлении основных источников проблем переносимости в приложениях Java EE, перемещаемых в среду Liberty Profile.

В таблице 2 для каждого из этих правил показаны соответствующие рекомендации, а также уровень сложности миграции на версию Liberty Profile V8.5.x. Правила с низким уровнем сложности распознают проблемы, которые можно устранить путем внесения небольших изменений в код приложения или вообще без изменения этого кода. Такие приложения очень хорошо подходят для исполнения в среде Liberty Profile. Правила с высокой степенью сложности распознают проблемы, которые требуют более масштабных изменений, чем изменение номера порта. Соответственно вам нужно принять решение о том, стоит ли тратить время и силы на переписывание этих приложений с целью их исполнения в Liberty Profile.

Следующие правила соответствуют технологиям и API-интерфейсам Java, недоступным в версии Liberty Profile V8.5.x. По мере добавления новых технологий и API-интерфейсов Java в профиль Liberty Profile некоторые из этих правил, вероятно, будут удалены. Это означает, что приложения, не подходящие для миграции на версию Liberty Profile V8.5.x, могут оказаться подходящим для миграции на более поздние версии Liberty Profile.

Таблица 2. Правила
Правило относительно технологии LibertyРекомендация Сложность миграции
Вызовы асинхронных методов для Enterprise JavaBeans (EJB) недоступныАсинхронные методы EJB не поддерживаются в Liberty Profile и в Liberty Core.

Если в вашем приложении используются асинхронные методы EJB, выберите один из следующих вариантов:

  • Оцените, соответствуют ли экземпляры ManagedExecutorService требованиям для асинхронных методов EJB. Если да, то эта возможность Java EE обеспечивается функцией concurrent-1.0 в Liberty Profile и в Liberty Core.
  • Разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.
Высокая
Remote-интерфейсы для EJB недоступныRemote-интерфейсы EJB не поддерживаются в Liberty Profile и в Liberty Core.

Если ваше приложение использует Remote-интерфейсы, выберите один из следующих вариантов:

  • Определите и используйте интерфейсы Local для Remote EJB, которые вызывает ваше приложение.
  • Разверните Remote EJB-компоненты в среде WebSphere Application Server Full Profile и выполняйте удаленные вызовы из Liberty Profile. Этот вариант требует JAR-файлов EJB-клиента и тонкого клиента IBM для EJB-компонентов.
  • Представьте методы EJB-компонента с помощью веб-сервисов с целью их удаленного использования из среды Liberty Profile. Проект WAR Router не требуется в среде Liberty Profile для представления EJB-компонентов в виде веб-сервисов. Этот вариант порождает проблемы, если между JVM-машинами необходимо распространять контекст транзакции или контекст защиты.
Примечание. Первый вариант является решением низкой степени сложности.
Высокая
Спецификации EJB 1.x/2.x недоступныСпецификации EJB 1.x/2.x не поддерживаются в Liberty Profile и в Liberty Core.

Если ваше приложение использует модули EJB 1.x/2.x, выберите один из следующих вариантов:

  • Разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.
  • Модернизируйте приложение до уровня, позволяющего использовать спецификацию EJB 3.1 Lite.
Примечания относительно второго варианта:

Модернизация компонентов типа session bean и message-driven bean осуществляется достаточно просто, однако клиентские приложения могут давать сбои из-за различий в клиентском представлении EJB-компонентов в спецификациях EJB 1.x/2.x и EJB 3.

Обновление компонентов типа entity bean является сложным мероприятием, однако его можно упростить, если ваше приложение использует такие шаблоны проектирования, как DTO, session facade и DAO.

Высокая
Timer Service для EJB недоступенEJB Timer Service не поддерживается в Liberty Profile и в Liberty Core.

Если ваше приложение использует EJB Timer Service, выберите один из следующих вариантов:

  • Разверните эту часть своего приложения в WebSphere Application Server Full Profile.
  • Воспользуйтесь другими сторонними библиотеками диспетчеризации.
Примечание. Хотя второй вариант отнесен к категории сложных подходов, его можно упростить, если задействовано небольшое количество таймеров.
Высокая
API-интерфейс JavaMail недоступенAPI-интерфейс JavaMail и ссылки на его ресурсы не поддерживаются в Liberty Profile и в Liberty Core Liberty Profile и в Liberty Core.

Если вашему приложению требуется JavaMail, можно в приложении программно создать Mail Session и поместить JAR-файлы соответствующей реализации JavaMail в место, видимое классу classloader приложения, например, в каталог WEB-INF/lib.

Примечание. Если у вас нет библиотек JavaMail, можно загрузить и использовать реализацию JavaMail API Reference.

Низкая
API-интерфейс Java EE Connector Architecture (JCA) недоступен API-интерфейс JCA, ссылки на ресурсы и определения адаптера ресурса не поддерживаются в Liberty Profile и в Liberty Core.

Если в вашем приложении используется JCA, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
API-интерфейс Java EE Application Deployment недоступенAPI-интерфейс Java EE Application Deployment не поддерживается в Liberty Profile и в Liberty Core.

Если в вашем приложении используется API-интерфейс Java EE Application Deployment, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
API-интерфейс Java EE Management недоступенAPI-интерфейс Java EE Management не поддерживается в Liberty Profile и в Liberty Core.

Если в вашем приложении используется API-интерфейс Java EE Management, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
API-интерфейс Java Authorization Contract for Containers (JACC) недоступенAPI-интерфейс JACC не поддерживается в Liberty Profile и в Liberty Core.

Если в вашем приложении используется API-интерфейс JACC, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
API-интерфейс Session Initiation Protocol (SIP) недоступенAPI-интерфейс Session Initiation Protocol (SIP) Servlet и его дескрипторы развертывания не поддерживаются в Liberty Profile.

Если в вашем приложении используется API-интерфейс SIP, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
API-интерфейс Java Portlet недоступенAPI-интерфейс Java Portlet и его дескрипторы развертывания не поддерживаются в Liberty Profile и в Liberty Core.

Если ваше приложение использует API-интерфейс Java Portlet, выберите один из следующих вариантов:

  • Разверните эту часть своего приложения в WebSphere Application Server Full Profile.
  • Воспользуйтесь новыми функциями Java Porlet Liberty, доступными в репозитарии WASdev (только для использования при разработке).
Высокая
API-интерфейс Java PortletJava API for XML-based RPC (JAX-RPC) недоступенAPI-интерфейс JAX-RPC не поддерживается в Liberty Profile и в Liberty Core.

Если ваше приложение использует API-интерфейс JAX-RPC, выберите один из следующих вариантов:

  • Используйте продукт WebSphere Application Server Full Profile с его нативным механизмом JAX-RPC.
  • Преобразуйте веб-сервисы на базе JAX-RPC в веб-сервисы на базе JAX-WS.
  • Используйте профиль Liberty с механизмом Apache AXIS 1 JAX-RPC Engine.
Примечание. Третий вариант является решением низкой степени сложности.
Высокая
API-интерфейс Java API for XML Registries (JAXR) недоступенAPI-интерфейс JAXR не поддерживается в Liberty Profile и в Liberty Core.

Если в вашем приложении используется API-интерфейс JAXR, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
Метод getRealPath() возвращает значение null из нераскрытого WAR-файлаМетод getRealPath() возвращает значение null, если приложение было развернуто из WAR-файла (web archive).

Чтобы обойти это ограничение спецификации Java EE, приложение можно развернуть как раскрытое веб-приложение; например, разархивировав его в каталог с таким же именем, как у WAR-файла.

Если ваше веб-приложение содержится в EAR-файле (Enterprise Archive), вам необходимо раскрыть и EAR-файл, и соответствующий WAR-файл.

Низкая
API-интерфейсы Java APIs for XML Messaging (JAXM) недоступныAPI-интерфейсы JAXM не поддерживаются в Liberty Profile и в Liberty Core.

Если в вашем приложении используются API-интерфейсы JAXM, разверните эту часть своего приложения в среде WebSphere Application Server Full Profile.

Высокая
Механизм Extensible Stylesheet Language (XSLT) 2.x недоступенСпецификация XSTL 1.0 поддерживается во всех редакциях WebSphere Application Server.

Если вашему приложению требуется механизм XSLT 2.0, можно поместить JAR-файлы соответствующей реализации XSLT 2.0 в место, видимое классу classloader приложения, например, в каталог WEB-INF/lib.

Убедитесь в том, что механизм XSLT соответствует версии в вашем файле преобразования .xsl или .xslt. Например, в Saxon 9.5 реализована спецификация XSLT 2.0.

Низкая
Спецификация JavaServer Faces (JSF) 1.x недоступнаLiberty Profile поддерживает спецификацию JavaServer Faces (JSF) 2.0. Спецификация JSF 2.0 обратно совместима со спецификациями JSF 1.2 и 1.1. Однако более старые JSF-приложения могут испытывать проблемы совместимости при исполнении в среде Liberty Profile.

Если ваше веб-приложение испытывает такие проблемы совместимости, вы можете включить в это приложение собственную реализацию JSF 1.1/1.2. Например, поместите JAR-файлы реализации JSF в каталог WEB-INF/lib. Возможно, вам также придется удалить функциональность jsf-2.0 из конфигурации сервера.

Если у вас нет библиотек JSF 1.1/1.2, вы можете загрузить версию реализации JSF , соответствующую версии JSF, которая указана в вашем файле faces-config.xml.

Низкая
Java EE Application Client недоступенМодули Java EE Application Client не поддерживаются в Liberty Profile и в Liberty Core.

Если ваше приложение использует модули Java EE Application Client, выберите один из следующих вариантов:

  • Преобразуйте эту часть своего приложения в отдельное Java-приложение с удаленным доступом к сервисам Java EE.
  • Разверните эту часть своего приложения в WebSphere Application Server Full profile.
Высокая

Использование инструмента

В этом разделе показано, как приступить к использованию пакета Liberty Technology Rule Set для установления пригодности ваших приложений к миграции со сторонних серверов Java EE и к их исполнению на Liberty Profile.

Комплект Liberty Technology Rule Set требует, чтобы инструмент Migration Toolkit был установлен на одной из протестированных платформ Eclipse и IBM Rational Application Developer, к которым относятся следующие:

  • Eclipse 3.6.2, 3.7, 4.2, 4.3
  • IBM Rational Application Developer версии с 7.5 по 9.0
  • IBM Rational Software Architect версии с 7.5 по 8.5

Чтобы проанализировать приложение на пригодность к миграции, его необходимо импортировать в IDE-среду на основе Eclipse. Если приложение еще не находится в среде Eclipse, с помощью функции импорта Eclipse его можно легко импортировать и организовать в виде проектов, отражающих его структуру (EAR-файлы, WAR-файлы и EJB-файлы).

  1. Импортируйте выбранные приложения в IDE-среду.
    1. Выберите в меню File > Import.
    2. Если нужное приложение упаковано в виде EAR-файла, выберите Java EE > EAR file. Если приложение упаковано в виде WAR-файла, выберите Web > WAR file.
    3. Создайте проекты для всех EJB-модулей и веб-модулей.
    4. Создайте проекты для всех служебных JAR-файлов Java, содержащих ваш код.
    5. Не создавайте проекты для сторонних библиотек.
  2. Импортируйте исходный код в IDE-среду.
    1. После того как проекты будут созданы, необходимо перенести в рабочее пространство исходный Java-код. Точный набор файлов Java, подлежащих импорту, определяется классами в папке ImportedClasses.
    2. С помощью инструмента ProjectUtils импортируйте исходный Java-код в надлежащие местоположения в проектах. Вы будете исполнять этот код из IDE-среды на основе Eclipse путем указания проекта Eclipse и местоположения дерева исходного кода. ProjectUtils ищет в дереве исходного кода классы, находящиеся в папке ImportedClasses проекта (см. раздел Ресурсы.)

Получение инструмента

Пакет Liberty Technology Rule Set можно загрузить бесплатно.

Чтобы установить пакет Liberty Technology Preview, выполните следующие шаги.

  1. Загрузите Liberty Technology Preview.
  2. Запустите свою IDE-среду на основе Eclipse.
  3. В строке меню Eclipse выберите Help > Install New Software.
  4. В окне Available Software нажмите Add.
  5. В раскрывающемся меню Add Repository введите следующие сведения:
    • Name: имя для инструмента, например, Liberty Technology Preview.
    • Location: местоположение загруженного файла zip, например, C:\LibertyMigrationTool\WebSphere_Migration_Toolkit_Liberty_v3.5.3.zip.
  6. В окне Available Software выберите Liberty Technology Preview и нажмите Next.
  7. Нажмите Finish для начала установки.
  8. Перезапустите Eclipse.

Для исполнения пакета Liberty Technology Rule Set с приложениями выполните следующие шаги.

  1. В IDE-среде запустите Liberty Technology Rule Set для анализа.
    1. Выберите в меню Run > Analysis.
    2. Создайте новую конфигурацию Software Analyzer.
      • Name: имя для конфигурации, например, Liberty Technology Rules.
      • На вкладке Scope выберите опцию Analyze entire workspace, чтобы просканировать все проекты в рабочем пространстве, или опцию Analyze selected projects, чтобы просканировать выбранные проекты в рабочем пространстве.
      • На вкладке Rules выберите Java Technology Support for Other Liberty Editions с помощью списка Rule Sets и нажмите кнопку Set.
    3. Нажмите кнопку Analyze. Инструмент проанализирует приложение, а затем сформирует список существующих и потенциальных проблем в представлении Software Analyzer Results.
  2. Просмотрите проблемы в представлении Software Analyzer Results. Не забудьте просмотреть проблемы на вкладках XML File Review и Java Code Review. Каждая из проблем будет классифицирована по степени ее сложности.
    1. Дважды нажмите на результат проблемы, чтобы увидеть строку кода с этой проблемой.
    2. В представлении результатов выберите F1, чтобы открыть вкладку Help. После открытия справочной системы выбирайте каждый результат – система отобразит конкретные рекомендации для каждого правила, помогающие устранить эту проблему.
    3. Оцените рекомендации и проблему, чтобы определить пригодность приложения к миграции и найти исправление, необходимое для исполнения этого приложения в среде Liberty Profile.
Рисунок 2. Предварительный просмотр кода
Code review
Code review

Как показано на рис. 2, в корневом окне имеются следующие панели.

  • Analysis Results – отображается представлением Software Analyzer Results View; содержит результаты всех правил, найденных в ходе статического анализа..
  • Analysis Type – группирует результаты анализа на основе различных типов проанализированных ресурсов.
  • Help Contents – предоставляет базовую и подробную справочную информацию по проблемам миграции.
  • Rule Categories – организует правила на основе областей анализа и сложности.
  • Rule Groups – выявленные проблемы миграции.
  • Rule Result – экземпляр проблемы миграции, найденной в приложении.
  • Result Options – опция View Result, отображающая проблему миграции в представлении редактора.

Заключение

В статье описывается новый инструмент, с помощью которого можно установить пригодность приложений для исполнения в среде Liberty Profile. Этот инструмент сканирует приложение Java EE и отображает сведения о найденных проблемах в представлении Software Analyzer вашей IDE-среды на основе Eclipse.

  • Если инструмент не сообщает ни о каких проблемах, это значит, что ваше приложение использует технологии и API-интерфейсы Java, которые поддерживаются профилем Liberty Profile. Подобные приложения являются отличными кандидатами на перемещение в среду Liberty.
  • Если инструмент сообщает о проблемах низкой степени сложности, это означает, что исправление можно осуществить ценой небольших изменений программного кода или вообще без каких-либо изменений Примером такого рода изменений является добавление альтернативных реализаций JavaMail, JSF и XSTL в classpath вашего приложения.
  • Если инструмент сообщает о проблемах высокой степени сложности, это означает, что потребуются более масштабные изменений, чем изменение номера порта. Однако если такие проблемы встречаются лишь несколько раз или если их отрицательные последствия ограничены, эти приложения также могут быть хорошими кандидатами на исполнение в среде Liberty Profile.

Кроме того, в статье указано, что существует несколько наборов правил в инструментарии Migration Toolkit. Эти наборы можно использовать для выявления проблем в дескрипторах развертывания, в Java-коде и в JSP-страницах. После нахождения приложений, подходящих для исполнения в среде Liberty Profile, необходимо запустить пакеты Migration Toolkit Rule Set для нахождения остальных проблем портирования. Если ваше приложение не использует большого количества закрытых API-интерфейсов или JMX MBean-компонентов, оно подходит для переноса в среду Liberty Profile.

В заключительной статье данного цикла будет показано, как осуществить миграцию всех ресурсов, необходимых для исполнения приложения Java EE в среде Liberty Profile, а также будут изложены инструкции по миграции приложений Java EE и их ресурсов в среду Liberty Profile.

Благодарности

Авторы благодарят Ярека Гавола (Jarek Gawol), Синди Хай (Cindy High) и Алекса Малхолланда (Alex Mulholland) за ценный вклад и содействие при написании этой статьи.


Ресурсы для скачивания


Похожие темы

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere, Облачные вычисления
ArticleID=1012915
ArticleTitle=Переход на Liberty Profile: Часть 1. Определение пригодности приложения к миграции с помощью инструментария Liberty Technology Preview
publish-date=08102015