Работа с ant-сценариями J2C в Rational Application Developer V7Источник: IBM developerWorks Россия Ласло Бенедек, Айви Хо
В IBM Rational Application Developer V7.0 одной из самых полезных функций инструментария J2EE Connector (J2C) Tools является запись сеансов J2C. Создав bean-компоненты и привязки данных с помощью мастеров J2C, в новой версии вы можете сохранить параметры в ant-файле. После этого можно вызывать ant-сценарий из рабочей области (или из командной строки), чтобы сгенерировать bean-компоненты J2C и привязки данных. ВведениеВ данной статье рассказывается о том, как настроить ant-сценарий, созданный инструментами J2EE Connector Tools в Rational Application Developer V7. Приводятся также различные примеры ant-сценариев: от генерирования файлов привязки данных на основе исходного кода COBOL до создания готового bean-компонента J2C для доступа к транзакции CICS/IMS. Кроме того, из этой статьи вы узнаете, как запустить ant-сценарий из командной строки. Технология Ant - очень эффективный инструмент разработки процессов сборки и автоматизации. С помощью нескольких стандартных и нескольких пользовательских ant-задач в IBM Rational Application Developer V7 вы можете сгенерировать архитектурный bean-компонент Java 2 Platform, Enterprise Edition (J2EE platform) Connector для CICS/IMS. Преимущества использования Ant для создания J2C bean-компонентов и привязок данных:
ТребованияВ данной статье предполагается, что у вас установлена программа Rational Application Developer V7.0 с инструментарием J2EE Connector (J2C) Tools. Примеры ant-сценариев, которые вы найдете в этой статье, были созданы с помощью этих инструментов J2C. Предполагается также, что вы уже пользовались инструментами J2C в одной из предыдущих версий Rational Application Developer (например, в версии 6) для создания bean-компонентов и файлов привязки данных. Основное внимание в статье уделяется поддержке ant-функций, а детали использования инструментов J2EE Connector Tools не рассматриваются. Запись сеансов J2C Rational Application DeveloperОдной из новых функций в инструментарии J2C в Rational Application Developer V7.0 является возможность записи сеанса мастера. Это позволяет, воспользовавшись мастером один раз, записать пользовательские параметры и данные в файл ant-сценария. Генерирование ant-сценариев поддерживается в двух мастерах.
Генерирование ant-сценария в мастере CICS IMS data bindingМастер привязки данных CICS IMS Data Binding wizard позволяет сгенерировать файлы привязки данных на основе исходного кода cobol, C или PL/1. В процессе работы мастер предложит выбрать различные параметры, прежде чем вы сможете сгенерировать файлы привязки данных. Благодаря поддержке ant-сценариев все параметры будут сохранены в файле ant-сценария для генерации привязки данных. На рисунке 1 показано, как запустить мастер CICS IMS Data Binding wizard.
Рисунок 1. Мастер CICS IMS Data Binding wizard
Рисунок 2. Поддержка ant-технологии в мастере CICS IMS Data Binding wizard На странице сохранения свойств Saving Properties укажите имя файла привязки данных, а также имя проекта и пакета, в котором он будет сгенерирован. Можно также выбрать другие стили генерации файла. Установите флажок Save session as Ant script, чтобы использовать функцию ant-сценария. По умолчанию файлу ant-сценария привязки данных присваивается имя класса привязки данных. Папкой размещения по умолчанию для ant-сценария будет папка текущего проекта, в котором создаются файлы привязки данных. Имя и папку для ant-сценария можно изменить. Параметр Save All Settings может оказаться полезным, если вы захотите сгенерировать значения для всех параметров, которые были выбраны в процессе работы с мастером. Это похоже на создание шаблона для всех свойств. Если вы не установите флажок Save All Settings, то будут сгенерированы только те параметры, которые вы изменили или ввели заново при работе с мастером CICS IMS Data Binding wizard. Например, значение по умолчанию для параметра Generation Style - Default. Стиль генерации будет сгенерирован только в том случае, если вы выберете другой стиль, например, Shorten names. На рисунке 3 иллюстрируется поддержка ant-технологии в прецеденте Multiple Possible Output (MPO) для страницы Saving Properties мастера CICS IMS Data Binding wizard. Для прецедента MPO, шаги, которые нужно выполнить для запуска мастера CICS IMS Data Binding wizard и перехода на страницу Saving Properties очень похожи на те, что были перечислены выше. Единственная разница заключается в том, что вы выбираете преобразование COBOL MPO в Java, C MPO в Java или PL1 MPO в Java, когда находитесь на странице импорта данных Data Import. Для перехода на страницу Saving Properties в прецеденте MPO:
Примечание: Информация для Save session as Ant script, и Save All Settings не отличается от описанного не-MPO прецедента. Рисунок 3. Поддержка ant-технологии в мастере CICS IMS Data Binding (Прецедент MPO) wizard Генерирование ant-сценария в мастере J2C Java Bean wizardМастер J2C Java Bean wizard создает bean-компонент, который осуществляет обмен данными с Информационной системой предприятия (EIS). На рисунке 4 показано, что мастер J2C Java Bean wizard находится в папке J2C. Чтобы найти мастер J2C Java Bean wizard, показанный на рисунке 4:
Рисунок 4. Мастер J2C Java Bean Wizard На рисунке 5 показана поддержка параметра Save session as Ant script, на странице свойств вывода bean-компонента J2C Java Bean Output Properties. Чтобы перейти к этой странице:
Рисунок 5. Страница J2C Java Bean Output Properties На странице свойств J2C Java Bean Output Properties укажите имя файла интерфейса bean-компонента Java J2C и реализации, а также имя проекта и пакета, в котором он будет создан. Установите флажок Save session as Ant script, чтобы использовать функцию ant-сценария. По умолчанию файлу ant-сценария J2C Java Bean присваивается имя интерфейса bean-компонента Java J2C. Папкой размещения по умолчанию для ant-сценария будет папка текущего проекта, в котором создаются файлы привязки данных.Имя и папку для ant-сценария можно изменить. Параметр Save All Settings может оказаться полезным, если вы захотите сгенерировать значения для всех параметров, которые были выбраны в процессе работы с мастером. Неплохая мысль - фиксировать в целях сбора информации все выбранные значения, благодаря чему в дальнейшем будет проще изменить отдельные значения. Если вы не установите флажок Save All Settings, то будут сгенерированы только те параметры, которые вы изменили или ввели заново при работе с мастером J2C IMS Data Binding wizard. Установив флажок Save session as Ant script, нажмите кнопку Next, чтобы продолжить работу с другими страницами мастера и создать все остальное. Краткое описание ant-сценариев J2C
Компоновка ant-сценария привязки данныхДалее описывается ant-файл (показанный в листинге 1), который создается по результатам записи сеанса мастера CICS/IMS Data Binding. Сгенерированный сценарий привязки данных состоит из целей, задач, типов и свойств. У этого сценария одна пользовательская задача, Оба пользовательских типа содержат все необходимые для импорта языкового файла (COBOL, PL1, or C) данные и (bean-компонент привязки данных) генерации артефактов. Импорт и генерация выполняются собственными средствами, с помощью, соответственно, агента Discovery Agent и редактора Workspace Resource Writer. В зависимости от импортируемого языка и генерируемых типов артефактов, можно использовать различные реализации. Каждая реализация определяется по идентификатору (javax.xml.namespace.QName). Существуют реализации агента, например, для файлов COBOL, C и PL/1. В данном примере импортируемый тип - COBOL, поэтому используется агент Discovery Agent с идентификатором Импортируемые и записанные данные хранятся с помощью пользовательских типов свойств, таких, как Обратите внимание на то, что в конце сценария мы выполнили refreshLocal и incrementalBuild. Это нужно для того, чтобы дать возможность модулю Annotation builder повторно сгенерировать код в теле метода на базе всех доклетов Tag в bean-компоненте J2C и файле привязки данных, а также синхронизировать проект.
Компоновка ant-сценария службы J2CСледующий пример (он показан в листинге 2) описывает фрагмент ant-файла, соответствующий генерации bean-компонента J2C, который был создан по результатам записи сеанса bean-компонента Java J2C. Сценарий делится на различные цели, которые зависят друг от друга. Эти цели выполняются последовательно в соответствии с их зависимостями. Сценарий имеет одну задачу, Вторая часть идентична Наряду с уже описанными задачами ant-файл содержит две дополнительных вспомогательных задачи. Задача
Предварительно заданные переменныеСгенерированный сценарий включает также предварительно заданные ant-свойства, например, Множественные целиПоскольку ant допускает определение в одном файле нескольких целей, можно изменять содержимое файла и объединять два или более файлов в один. ВоспроизводимостьСгенерированный файл можно также использовать как шаблон для создания артефактов в дальнейшем. Например, если изменить файл COBOL, свойства импорта и имя целевого класса, то можно сгенерировать новую привязку данных без помощи мастера. Пользовательская настройкаДля настройки ant-сценариев J2C, нужно знать:
Некоторые свойства можно легко определить через интерфейс пользователя J2C, в котором можно просмотреть список допустимых значений в раскрывающемся списке. Пользовательская настройка ant-сценария привязки данныхИзменение типа проекта Можно установить один из трех типов проекта:
Для проектов Web и EJB необходимо указать строку runtimeName. Строка runtimeName - это строка, которую можно определить по значению рабочего цикла сервера Rational Application Developer.
Фрагмент кода, представленный в листинге 3 демонстрирует создание проекта с именем
Фрагмент кода, показанный в листинге 4, демонстрирует создание web-проекта.
Если при создании web-проекта вы указали Add To EAR, то кроме runtimeName нужно указать также параметры EARProjectName и addToEAR.
Фрагмент кода, показанный в листинге 5, демонстрирует создание web-проекта.
Если при создании проекта было задано add To EAR, то кроме runtimeName нужно указать также параметры EARProjectName и addToEAR.
Изменение стиля генерации Generation Style Параметр Generation Style (Листинг 6) находится на странице Saving Properties. его значение по умолчанию -
Допустимые значения свойства такие же, как и для мастера Data Binding wizard; это показано на рисунке 6. Рисунок 6. Пользовательский интерфейс свойства Generation Style Если вы выберете опцию Preserve case of names, то часть кода в ant-сценарии будет выглядеть примерно так, как показано в листинге 7.
Пользовательская настройка ant-сценария для Java bean-компонента J2C.
Изменение проекта коннектора В представленном ниже листинге 8 свойство
Изменение размещения адаптера ресурсов В представленном далее листинге 9 свойство
Изменение информации о соединении для управляемых подключений В листинге 10 показана часть информации о соединении в ant-сценарии J2C Java Bean. Вы можете изменить следующую информацию о соединении: ConnectionURL, ServerName, UserName, Password Можно также задать параметр TraceLevel для отладки.
На рисунке 7 показана страница Connection Properties в мастере J2C Java Bean wizard. Информация об управляемом соединении и параметр TraceLevel в приведенном выше ant-сценарии (Листинг 10) захватывается со страницы свойств соединения Connection Properties мастера J2C Java Bean. Рисунок 7. Страница Connection Properties
Свойства импорта На рисунке 8 показан фрагмент ant-сценария, описывающий свойства импорта. Информация захватывается со страницы Importer мастера J2C Java Bean wizard, а также мастера CICS IMS Data Binding wizard. Рисунок 8. Свойства импорта в ant-сценарии На рисунке 9 показано, что свойства модуля импорта находятся на странице Importer мастеров J2C wizards. Рисунок 9. Свойства импорта на странице Importer мастеров J2C
Интерактивные свойства На рисунке 10 показаны свойства InteractionSpec properties в ant-сценарии, сгенерированном из ant-сценария J2C Java Bean. Рисунок 10. Свойства InteractionSpec в ant-сценарии На рисунке 11 показано, где именно в мастере J2C Java Bean wizard можно найти свойства InteractionSpec. Они находятся на странице Java Method мастера J2C Java Bean wizard. Некоторые из свойств можно увидеть после нажатия кнопки Show Advanced . Рисунок 11. Свойства InteractionSpec в мастере J2C Java Bean wizard Некоторые из свойств задаются неявно и не отображаются пользовательским интерфейсом J2C. Один из примеров - идентификатор агента поиска discovery Agent ID. Пользовательский интерфейс не дает возможности увидеть имя агента В листинге 11 показано имя агента при выбранном преобразовании COBOL_TO_JAVA или COBOL_MPO_TO_JAVA. В листинге 12 показано имя агента при выбранном преобразовании C_TO_JAVA или C_MPO_TO_JAVA. В листинге 13 показано имя агента при выбранном преобразовании PL1_TO_JAVA или PL1_MPO_TO_JAVA. На рисунке 12 показано, где можно найти другие преобразования из мастеров J2C Java Bean или CICS IMS Data Binding wizard. Если будет выбрано другое преобразование, то имя агента, генерируемое в файле ant-сценария, также будет другим, как показано в предыдущих трех листингах ant-сценариев. Рисунок 12. Выбор преобразования Запуск ant-сценария J2C из командной строкиСгенерированный ant-сценарий J2C может быть запущен без предварительного запуска модуля eclipse workbench. После того, как сценарий сгенерирован или изменен, можно выполнить его через командную строку Microsoft Windows, не вызывая IDE. Запуск Rational Application Developer таким способом называется автоматическим режимом . Чтобы запустить ant-сценарий, вызовите приложение antRunner, указав в аргументе ant-файл. Простой командный файл для запуска сгенерированных ant-сценариев в автоматическом режиме показан в листинге 14:
Чтобы запустить ant-файл, сгенерированный по данным записи сеанса CICS/IMS Data Binding, измените в командном файле Test.bat значения следующих переменных, которые должны соответствовать вашей среде.
Если для свойства Запуск ant-сценария привязки данных Data Binding AntScript из командной строкиВы можете вызвать файл Test.bat из командной строки, как показано на рисунке 13. Рисунок 13. Вызов Test.bat для DataBinding.xml из командной строки После успешного выполнения Test.bat, можно перейти в рабочую область и просмотреть все созданные проекты и привязки данных, как показано на рисунке 14. Рисунок 14. Генерируются привязки данных Запуск ant-сценария J2C Java Bean AntScript из командной строкиЧтобы сгенерировать службу CICS, в рабочей области следует указать рабочий цикл сервера. Рабочий цикл сервера используется задачей Чтобы убедиться в том, что рабочий цикл сервера был определен, можно вызвать рабочую область, выбрав из меню команды Windows > Preference > Server > Installed runtime. На рисунке 15 показано размещение папки с установленными рабочими циклами. Рисунок 15. Выбор рабочего цикла сервера На рисунке 16 демонстрируется, как вызвать ant-сценарий через файл Test.bat из командной строки Рисунок 16. Вызов командного файла Test.bat для сгенерированных bean-компонентов J2C. После того, как выполнение файла Test.bat будет с успехом завершено, можете открыть рабочую область и убедиться, что все проекты и артефакты успешно созданы. На рисунке 17 показан созданный проект myTaderc99 и файл привязки данных DFHCOMMAREA.java. Рисунок 17. Сгенерирован Java-проект с Java bean-компонентами J2C и привязки данных МиграцияВ J2C V6011/V6012 имеются простые ant-сценарии для генерации служб или файлов привязки данных. Они не генерируются автоматически, поэтому, чтобы обеспечить работу сценария, приходится вручную вносить изменения. В Rational Application Developer V7.0 функции записи сеанса J2C генерируют ant-сценарии автоматически. Предусмотрен инструмент миграции, позволяющий преобразовать ant-сценарии V601.x в новый формат ant-сценариев. Новые ant-сценарии отличаются большей гибкостью и проще в применении. Как запустить задачу <j2c:migrate>Файл migration.xml (показанный в листинге 15) - это ant-файл сборки, который выполняет задачу <j2c:migrate> в отношении ant-сценария V6.0.1.x.
Советы
Переносимые ant-сценарииТипичный вариант использования ant-сценариев - это их использование в обычной воспроизводимой сборке. Механизм сборки обычно отличается от механизма, который использовался для создания оригинального ant-сценария. Лучший способ обеспечить переносимость - это использовать ant-переменные для обособления относящейся к механизму информации в сценарии. В ant-сценарии следует особенно внимательно указывать путь к исходному файлу cobol, размещение рабочего цикла сервера и адаптера ресурсов. Они должны иметь переменные, привязанные к размещению в среде выполнения. Ant-сценарий привязки данных
Ant-сценарий J2C Java Bean В Ant-сценарии J2C Java Bean определяются входной и выходной файлы привязки данных, используемые для методов. Можно дополнить их, создав входную и выходную переменные, а затем использовав их в сценарии.
Невозможно найти адаптер ресурсовЕсли вы уже создали в рабочей области проект коннектора для конкретного адаптера ресурсов, то, когда вы работаете с мастером J2C Java Bean wizard, этот адаптер ресурсов не импортируется повторно. В процессе генерирования ant-сценария у вас нет возможности указать размещение адаптера ресурсов, поскольку проект коннектора не предоставляет такой информации. Если значение Рисунок 18. Значение cannotlocaterar для ra.file ПреимуществаВ этой статье рассказывалось о том, как использовать ant-сценарии в Rational Application Developer для достижения гибкости, воспроизводимости и легкости в обслуживании. |