Сравнительные характеристики различных версий JBuiIder

В

этом приложении приводятся основные отличия последних версий JBuilder, составленные на основе официальных документов компании Borland Software Corporation. Как несложно будет заметить, нововведения касаются, в основном, уве­личения производительности и эффективности самого процесса разработки, и в очень незначительной степени — интерфейса IDE-среды. В результате вы можете смело приступать к использованию любой из версий JBuilder, обладая знаниями, своего рода, базовой версии — JBuilder 7. Как вы должно быть, поняли на основании материалов этой книги, ключевым аспектом успешной разработки являются знания технологий, методики и приемов, а не какой-то конкретной версии продукта. Несом­ненный интересу читателей вызовет небольшая, однако информационно емкая статья Чарли Калверта, посвященная основам создания JSP-страниц в среде JBuilder 9.

Что нового в JBuiIder 8

В среде Borland® JBuilder® 8 реализованы существенные улучшения в эффектив­ности самого процесса разработки, управления проектами и окончательной сборки целевой системы. В этот выпуск JBuilder встроен инструментальный набор создания Web-служб на языке Java (Borland Web Services Kit for Java™). Кроме того, предлагае­мый данной версией новый набор функциональных возможностей оказывает значи­тельную помощь в разработке приложений, задействуя при этом каркас Apache™ Struts Open Source. Некоторые изменения претерпели также следующие аспекты:

■ Инструментальный набор JDK 1.4.1

■ Управление проектами

■ Интегрированный отладчик

■ Тестирование модулей

■ Визуализация UML-кода

■ Разработка для Web

■ XML

■ Конфигурирование среды выполнения

■ Система сборки

■ Распределение

■ Продуктивность

■ Командная разработка

■ Поддержка 12ЕЕ-серверов

■ Разработка Javadoc-документации

■ Корректировка связей

■ Возможности доступа

■ Новый API-интерфейс в составе Borland JDataStore™

JBuilder 8 базируется на библиотеке JDK 1.4 1, которая позволяет достигнуть су­щественного роста производительности и эффективности как самого процесса раз­работки, так и выходных приложений. Сюда входит высокопроизводительный вы­ходной код, поддержка колеса мыши и технологии перетаскивания (drag-and-drop), усовершенствованное управление фокусом интерфейсных элементов, соответствие Разделу 508 (Section 508) требований по доступности и более предсказуемое поведе­ние пользовательского интерфейса под управлением Linux.

Управление проектами

Механизм управления проектами расширен следующими новыми функциями.

Возможность перетаскивания на панель проекта

Допускается перетаскивание файлов из рабочего стола на панель проекта, после чего файлы становятся частью текущего проекта. Файлы должны иметь один из ти­пов, распознаваемых JBuilder. Файлы открываются в редакторе, однако не добавля­ются в проект. Для собственно добавления файла в проект следует воспользоваться кнопкой Add Files/Packages в верхней части панели проекта.

Создание нового пустого файла

Самый быстрый способ создания нового пустого файла в рамках JBuilder-проек­та предполагает использование диалогового окна Create New File (Создание нового файла), доступ к которому осуществляется через пункт меню File ∣ New File (Файл | Новый файл).

Группы проектов

Функциональная возможность редакции JBuilder Enterprise.

В JBuilder введено понятие групп проектов. Группы проектов представляют со­бой специализированные контейнеры, которые позволяют эффективно работать с взаимосвязанными проектами. Примером могут послужить два проекта с зависимо­стями друг от друга, такие как клиент и сервер. Проекты, использующие одни и те же исходные файлы, но с различными параметрами, например, разными серверами или JDK, также можно считать принадлежащими к одной логической группе. Кро­ме того, группы проектов позволяют просто и эффективно перемещаться по проек­там и выполнять их сборку как единой группы.

Представления каталогов

Функциональная возможность редакции JBuilder Enterprise.

В проект можно добавить представление каталога, указывающее на любой выб­ранный каталог. Представление каталога отображает все файлы всех типов, которые находятся в каталоге и всех его подкаталогах. Представление каталога отражает все изменения в каталоге, которые могли произойти извне.

959

Импортирование VisualCafe-проектов

В JBuilder 8 был добавлен новый мастер Import VisualCafe Project Wizard, кото­рый обеспечивает создание нового JBuilder-проекта и выполняет импорт в него всех файлов VisualCafe-πpoeκτa. Доступ к этому мастеру осуществляется через пункт меню File ∣ New с последующим щелчком на пиктограмме Import VisuaICafe Project (Импорт VisualCafe-проектов).

Добавление проекта как требуемой библиотеки

Если имеется проект, который зависит от какого-либо другого проекта, после­дний можно добавить в список требуемых библиотек первого проекта. Для этого ис­пользуется закладка Required Libraries (Требуемые библиотеки) на странице Paths (Пути) диалогового окна Project Properties (Свойства проекта).

Интегрированный отладчик

Интегрированный отладчик обладает существенно большей производительнос­тью, а также следующими новыми возможностями.

■ Интеллектуальный обмен (Smart Swap)

■ Установка точки выполнения (Set Execution Point)

■ Интеллектуальное окно исходного кода (Smart Source)

Интеллектуальный обмен

Функциональная возможность редакции JBuilder Enterprise.

Возможность Smart Swap обеспечивает сохранение изменений, компиляцию и обновление файлов, которые модифицируются во время процесса отладки. Отладка продолжается в том же самом сеансе отладчика. При помощи этой функции можно тестировать код, вносить необходимые изменения и продолжать тот же сеанс отлад­ки с текущей точки выполнения. Функциональная возможность Smart Swap основа­на на технологии Hot Swap, реализованной в JDK 1.4.

Установка точки выполнения

Функциональная возможность редакции JBuilder Enterprise.

Функция Set Execution Point обеспечивает установку новой точки выполнения в рамках потока, отлаживаемого в данный момент. Подобная возможность может по­надобиться, например, после использования функции Smart Swap.

Интеллектуальное окно исходного кода

Функциональная возможность редакции JBuilder Enterprise.

Функция Smart Source позволяет изменять представление исходного кода, в ре­зультате чего во время отладки можно просматривать либо код на языке Java, либо код на языке, отличном от Java. Возможность Smart Source основана на технологии JSR 45, реализованной в рамках JDK 1.4.

Увеличение произ одительности отладчика

В JBuilder 8 были внедрены следующие улучшения, связанные с производитель­ностью:

■ Команды Cut, Сору и Paste функционируют для переменных всех типов.

■ Команды Change Watch Expression и Change Watch Description были объедине­ны в единую команду Change Watch.

■ Окно ExpressionInsight отображается до тех пор, пока не будет нажата клави­ша для его закрытия.

■ Диалоговое окно Files Modified теперь позволяет выбрать способ продолжения во время отладки кода.

Тестирование модулей

Функциональная возможность редакции JBuilder Enterprise.

Поддержка тестирования модулей расширена за счет возможности выполнения

Тестирования на стороне сервера при помощи Cactus. Кроме того, расширена и поддержка JUnit. Список новых возможностей тестирования модулей включает:

■ Поддержка Cactus. Cactus расширяет JUnit возможностью тестирования моду­лей серверного Java-кода.

■ Мастер настройки Cactus (Cactus Setup Wizard). Этот мастер (доступный через Wizards ∣ Cactus Setup) позволяет конфигурировать поддержку Cactus для су­ществующих проектов.

■ Мастер клиента тестирования EJB (EJB Test Client Wizard). Этот мастер позво­ляет генерировать два типа клиентов тестирования — клиент тестирования JUnit и клиент тестирования Cactus JUnit. Мастер EJB Test Client Wizard дос­тупен на странице Enterprise галереи объектов.

■ Коллектор JUnit-тестирования (JUnit Test Collector). Новые опции в диалого­вом окне Runtime Configuration Properties дают возможность легко и просто идентифицировать необходимые тестовые случаи.

■ Фильтр стека трассировки при тестировании модулей (Unit Testing Stack l⅛ace Filter). Появилась возможность определять фильтр стека трассировки при тес­тировании модулей, которая позволяет сконцентрировать внимание только на той информации, которая представляет интерес в данный момент.

■ JUnit 3.8. Новая, обновленная версия JUnit, поставляемая в составе JBuilder.

Визуализация UML-кода

Функциональная возможность редакции JBuilder Enterprise.

Страница UML перемещена из диалогового окна Project Properties, а две опции,

Ранее расположенные на этой странице, были перемещены на другие страницы окна свойств проекта:

■ Фильтрация UML-диаграмм теперь находится на новой странице Class Filters диалогового окна Project Properties. Выберите в выпадающем списке Name

(Имя) элемент UML Diagram (UML-диаграмма), а затем добавьте или удалите классы и пакеты, соответственно, для включения или исключения их из диаг­раммы.

■ Опция, ранее принадлежащая странице UML и относящаяся к генерации в исходном коде ссылок на диаграммы (Diagram References From Generated Source), переместилась на страницу General диалогового окна Project Properties. В случае активизации этой опции в код будут помещаться ссылки на файлы ПОР и EJB-заглушки, находящиеся в UML-диаграмме.

Пакеты и классы, не отраженные в UML-диаграмме, в этой версии JBuilder под­свечиваются в панели структуры. Они вообще не выводятся, если они отфильтрова­ны или являются избыточными либо удаленными ради ясности.

Разработка для Web

Функциональная возможность редакции JBuilder Enterprise

Новый набор функциональных возможностей данной версии JBuilder оказывает существенную помощь в разработке для Wfeb с использованием каркаса Struts Open Source. Каркас Struts Open Source, или Model 2, основывается на подходе Model — View-Controller (модель-представление-контроллер) к разработке программного обеспечения. В рамках данного каркаса модель содержит данные, представление отображает эти данные, а контроллер управляет взаимодействием между моделью и представлением Представление — это, как правило, JSP страница. Обычно кон­троллером является Struts-сервлет, называемый ActionServlet. Модель может пред­ставлять собой реализацию любой технологии доступа к данным, от JDBC до EJB Упомянутый каркас, который есть ни что иное, как набор классов, сервлетов, JSP — дескрипторов, библиотеки определения дескрипторов и множества служебных классов, обеспечивает четкое отделение HTML-кода от Java-кода, так и визуального представления от бизнес-логики приложения.

В рамках этого нового набора возможностей определены мастера и инструменты для быстрой разработки Web-приложений, использующих технологию Struts. Вот их перечень:

■ Каркасы как библиотеки — при помощи диалогового окна Configure Libraries (Tools∣Configure Libraries) можно организовать каркас, или набор файлов, в форме библиотеки. В JBuilder доступными каркасами являются Struts, Cocoon, JSTL и IntemetBeansrw Express.

■ Мастер WebbApp, работающий со Struts, и мастер Web Application.

■ Мастер JSP, работающий со Struts, и мастер JSP.

■ Файл web xml, работающий со Struts.

■ Мастер преобразования JSP в Struts (JSP to Struts Conversion Wizard) — преоб­разует существующие JSP- и HTML-страницы в такие, которые используют Struts.

■ Редактор конфигурации Struts (Struts Configuration Editor) — визуальный ре­дактор файла Struts-Config. xml.

■ Мастер Action Wizard — создает класс Action для разрабатываемого приложе­ния Struts WebApp и регистрирует его в файле struts-config. xml.

■ Мастер ActionForm Wizard — создает форму ActionForm с использованием по­лей указанной JSP-страницы и регистрирует ее в файле struts-config. xml.

■ Мастер JSP From ActionForm Wizard — создает JSP-страницу из формы ActionForm, заполняя ее полями из класса ActionForm.

Дополнительные усовершенствования включают:

■ Мастер WebApp Wizard, опции генерации WAR-файлов. Опция Always Create Archive When Building, ранее расположенная среди опций Project в окне масте­ра WebApp Wizard, переименована в Build WAR (Сборка WAR) и расширена до четырех элементов:

ɪ. When Building Project Or WebApp (При сборке проекта или WebApp). Созда­вать WAR-файл во время сборки проекта или Web-приложения.

2. When Building WebApp Only (Только при сборке WebApp). Создавать WAR — файл только во время сборки Web-приложения.

3. When Building Project Only (Только при сборке проекта) Создавать WAR — файл только во время сборки проекта.

4. Never (Никогда). Никогда не создавать WAR-файл.

■ Усовершенствованная библиотека JSP-дескрипторов и поддержка каркасов дает возможность выбирать библиотеки дескрипторов и каркасы, которые должны использоваться на разрабатываемых JSP-страницах и в Web-приложе­ниях.

■ Библиотека JSTL (JavaServer Pages Standard Tag Library) поставляется вместе с JBuilder и доступна как библиотека дескрипторов или каркас в мастерах JSP Wizard и Web Application Wizard.

■ Страница Classes диалогового окна свойств для узла WebApp была изменена для того, чтобы позволить исключать зависимости.

■ Пиктограммы на закладке Web галереи объектов теперь доступны только пос­ле выбора конкретного сервера для проекта.

■ В среде JBuilder 8 стало доступно инструментальное средство Tomcat 4.1. Не забывайте, что Tomcat 4.1 не поддерживает режим отладки JSP-страниц.

Web-службы

Функциональная возможность редакции JBuilder Enterprise. Функции Web-служб зависят от выбранного инструментального средства разработки Web-служб.

Сейчас в JBuilder 8 встроен набор Borland Web Services Kit for Java, который по­стоянно претерпевает изменения и усовершенствования.

Несмотря то что знания теории построения Web-служб явно не лишние, JBuilder позволяет обойтись без оных, предлагая мастера и инструменты для быстрой и эф­фективной разработки и использования мощной технологии Web-служб. JBuilder работает с широчайшим спектром инструментальных средств подобного рода Пос-

Ле выбора предпочитаемого инструментального средства встроенные в JBuilder мас­тера дают возможность использовать Web-службы, выполнять импорт Vvfeb-служб, а также экспорт Java-классов в виде Web-служб.

Экспортирование Enterprise JavaBean-компонентов (EJB) в виде Web-служб не требует какой-то дополнительной работы, кроме как соответствующей настройки проекта. Просто создайте EJB-приложение как обычно, выполните требуемую на­стройку в мастере Web Services Configuration Wizard и запустите проект с использо­ванием конфигурации времени выполнения сервера Web-служб, которая была со­здана мастером Web Services Configuration Wizard. По умолчанию JBuilder отобразит в удаленном интерфейсе все не зависящие от состояния сеанса bean-компоненты вместе с их методами. Данное стандартное поведение несложно перекрыть, указав

,-∙ только те EJB-модули, bean-компоненты и методы, которые должны быть представ­лены в виде Web-служб.

Возможности, имеющие отношение к Web-службам и существенно зависящие от выбранного инструментального средства, все-таки можно перечислить:

■ Настройка проекта на взаимодействие с Web-слежбами.

■ Создание WSDL-документов, которые описывают разрабатываемые Web — службы.

■ Создание EAR — или WSDL-описания Web-службы и генерация классов, обес­печивающих вызов этой службы.

■ Создание серверного кода для локального размещения службы.

■ Явный экспорт Java-классов в форме Web-служб.

■ Автоматический экспорт не зависящих от состояния сеанса Ьеап-компонен- тов вместе с их методами в среду удаленного интерфейса.

■ Мониторинг SOAP-сообщений между клиентом и службой во время активи­зации службы.

■ Поиск и публикация Web-служб в реестр UDDI при помощи проводника Web-служб Web Services Explorer.

Доступ к мастерам, имеющим отношение к Web-службам, осуществляется через страницу Web Services галереи объектов (File ∣ New):

■ Мастер конфигурирования Web-служб (Web Services Configuration Wizard) для настройки проекта на работу в качестве Web-службы.

■ Мастер экспорта в виде Web-службы (Export As A Web Service Wizard) для экс­портирования Java-классов в качестве Web-служб.

■ Мастер импорта Web-службы (Import A Web Service Wizard) для импортирова­ния Web-служб из EAR — или WSDL-описаний.

Кроме того, JBuilder предлагает следующие инструментальные средства для ра­боты с Web-службами:

■ Прэводник Web-служб (Web Services Explorer) для просмотра и публикации Web-служб. Этот проводник можно использовать для просмотра и импорта

WSDL-документов, просмотра WSIL-документов публикации бизнес-функ — ций и услуг, а также для мониторинга сообщений UDDI SOAR

■ Монитор TCP Monitor для мониторинга SOAP-запросов и откликов между клиентом и сервером,

XML

Мастер SAX Handler Wizard

Функциональная возможность редакции JBuilder Enterprise.

Мастер SAX-обработчиков SAX Handler Wizard (доступный через пункт меню File I New ∣ XML) обновлен и теперь использует JAXP (Java API for XML Processing — Java-API для обработки XML), который появился в JDK 1.4. Этот мастер позволяет выбирать синтаксический анализатор JAXP или Xerces для выполнения XML-раз — бора. Кроме того, в мастере появилась новая страница конфигурирования среды вы­полнения.

Cocoon

Функциональная возможность редакции JBuilder Enterprise.

Cocoon обновлен до версии 2.0.3, а в узел Cocoon добавлены новые файлы.

Мастер Web-приложений (Web Application Wizard), доступный через пункт меню File J New ∣ Web, содежит новую опцию, которая позволяет выбирать Cocoon в каче­стве каркаса Web-приложения.

Мастер Web-приложений Cocoon (Cocoon Web Application Wizard) открывает ма — *χ Стер Web Application Wizard с выбранным каркасом Cocoon.

Опция Cocoon Run изменилась на опцию Web Run Using Default.

IDE-опции, связанные с XML

Функциональная возможность редакции JBuilder Enterprise.

В диалоговом окне опций IDE-среды (IDE Options), которое доступно через пункт меню Tools ∣ IDE Options, на странице XML, появилась новая опция под назва­нием Ignore DTD (Игнорировать DTD-определения). По умолчанию JBuilder игнори­рует DTD-определения в редакторе. В случае если данная опция не активна, JBuilder не будет анализировать DTD-определения и не будет выводить сообщения об ошибках в панели структуры. В результате появляется возможность автономной работы, а также более быстрого отклика в случае онлайновой работы. В случае акти­визации упомянутой опции редактор JBuilder должен постоянно анализировать DTD-определения и выводить в панели структуры любые возможные сообщения об ошибках

Конфигурирование среды выполнения

Диалоговое окно Runtime Configuration Properties было полностью переделано.

На закладке Run находится выпадающий список, и именно в нем должен произво­диться выбор типа приложения, а не так, как было раньше, через другие закладки

Следует отметить, что данный список не подвержен изменениям, даже с использо­ванием команд Edit и Сору. Поле Build Target переместилось в верхнюю часть диало­гового окна.

Новая версия JBuilder включает тип настройки времени выполнения OpenTool — приложений, который дает возможность выполнять, отлаживать и оптимизировать в среде JBuilder OpenTool-проекты подобно любым другим проектам. Более уже не требуется завершать JBuilder, создавать JAR файл, копировать его в каталог <JBuilder Home>LibExt ИЛИ <JBuilder Home>Patch И Затем ПОВТОРНО Запус — кать JBuilder.

В случае запуска OpenTool-πpoeκτa с применением модуля запуска OpenTool в каталоге <Outpath>ConfɪGTemp Генерируется временный конфигурационный файл, и новый экземпляр JBuilder запускается с использованием именно этого кон­фигурационного файла. По завершении работы временный конфигурационный файл удаляется. Для включения в свой проект модуля запуска OpenTool необходимо выбрать в меню пункт Run ∣ Configurations… (Пуск | Конфигурации…) и создать новую конфигурацию времени выполнения, выбрав в качестве типа Open Tool.

Система сборки

Поддержка Apache Ant

Функциональная возможность редакции JBuilder Enterprise.

Apache Ant обновлена до версии 1.5.1. Вот список новых функциональных воз­можностей Apache Ant:

■ Ant-файлы Build.Xml Отображаются в панели проекта с относительными пу­тями. Для выключения этой опции необходимо выполнить щелчок правой кнопкой мыши в панели проекта на файле Build.Xml, Выбрать в появившем­ся контекстном меню пункт Properties, перейти в открывшемся диалоговом окне свойств на закладку Ant и снять отметку с флажка Show Relative Path

■ Применяйте мастер Ant Wizard для добавления в проект файлов сборки. В этом случае файлы сборки будут трактоваться как Ant-файлы. Кроме того, в случае использования этого мастера можно также добавлять и файлы Build, Xml.

■ Если для Ant необходимо использовать проект JDK, отметьте на странице Ant диалогового окна свойств проекта (Project ∣ Project Properties) опцию Use Project JDK When Running Ant

Страница Build диалогового окна Project Properties

Эта страница претерпела множество изменений. Дополнительную информацию по новым опциям можно получить, выполнив щелчок на кнопке справки Help.

Страница Java

Вот список изменений на странице Java:

■ В редакции JBuilder Enterprise можно указывать требуемый компилятор.

■ Добавлена опция Borland Make (bmj).

■ Опция javac — использование JDK-версии javac, которая поддерживается JBuilder.

■ Опция Project javac — использование JDK-версии javac, которая поддержива­ется проектом.

■ Опция Enable Assert Keyword переместилась на эту страницу со страницы General диалогового окна Project Properties.

Страница General

На странице General определены следующие опции, причем они варьируются от редакции к редакции JBuilder:

■ Autosave АН Files Before Compiling (Автосохранение всех файлов перед komπhγ∙ цией).

■ Refresh Project Before Building (Обновление проекта перед сборкой).

■ Generate Source То Output Path (Генерация исходного кода в выходной путь).

■ Autocancel Build On Error (Автоматическое прерывание сборки в случае ошибки).

■ Always Build Before Refactoring (Сборка перед корректировкой связей).

■ Check JSPs For Errors At Build-Time (Проверка JSP-страниц на ошибки во время сборки).

■ SQLJ™ Translator (Транслятор SQLJ).

Часть из этих опций ранее находилась на других страницах.

Страница Ant

Функциональная возможность редакции JBuilder Enterprise.

Новая опция, связанная с Ant, Use Project JDK When Running Ant, обеспечивает

Использование проекта JDK по время выполнения Ant.

Страница Menu Items

Функциональная возможность редакции JBuilder Enterprise.

Появилась возможность добавлять элементы в меню Project.

Страница Web Services

Функциональная возможность редакции JBuiider Enterprise

Это совершенно новая страница с пока единственной опцией Regenerate

Deployment (Повторно сгенерировать выпуск продукта). Эта опция определяет, дол­жен ли JBuilder перезаписывать распределяемые файлы Web-службы.

Построение групп проектов

Функциональная возможность редакции JBuilder Enterprise.

Сборка подпроектов, находящихся в группе проекта, выполняется в порядке, в котором подпроекты отображаются на панели проекта. Очередность сборки под­проектов внутри проекта можно изменить на странице Build диалогового окна Project Group Properties (Project ∣ Project Group Properties).

Управление ресурсами

Функциональные возможности распознавания и архивации исходных текстов реализованы в редакции JBuilder Enterprise.

Если некоторые типы файлов JBuilder не распознает, их можно ассоциировать с типом общего ресурсного файла. В этом случае JBuilder будет включать их в процесс автоматического распознавания файлов. Кроме того, такие файлы можно помещать в архивы. Например, если JBuilder не распознает Flash-файлы, однако Flash-файлы могут потребоваться для целей проекта и распределяться в составе его файлов. Для встраивания в архив нераспознаваемых файлов потребуется выполнить два шага. Во — первых, необходимо добавить их в список распознаваемых типов. Во-вторых, файлы должны быть настроены так, чтобы они копировались в выходной каталог во время сборки архива.

1. Для того чтобы добавить файлы в список распознаваемых файлов, следует вы­полнить такие шаги:

A. Выбрать в меню пункт Tools ∣ IDE Options и в открывшемся диалоговом окне перейти на закладку File Types.

B. В списке Recognized File Types выбрать элемент Generic Resource File.

C. Щелкнуть на кнопке Add, ввести новое расширение файла и затем щелк­нуть на кнопке OK.

D Щелкнуть на кнопке OK для закрытия диалогового окна IDE Options.

Важно помнить, что по умолчанию ни один из файлов, тип которого был до­бавлен с список распознаваемых файлов, не будет автоматически копировать­ся в архив. Чтобы файлы такого типа все-таки копировались в архив, необхо­димо произвести следующие действия на закладке Resource страницы Build диалогового окна Project Properties:

2. Для встраивания нового типа файла в архив выполните такие шаги:

A. Выбрать в меню пункт Project ∣ Project Properties и в открывшемся диалого­вом окне перейти на закладку Build. Для встраивания нового типа файла во все будущие проекты следует выбрать в меню пункт Project ∣ Default Project Properties.

B. Перейти на закладку Resource и в списке Recognized File Types выбрать требуемый новый тип. Заметьте, что по умолчанию для него установлено Do Not Сору.

C. Выбрать для этого типа переключатель Сору.

D. Щелкнуть на кнопке OK для закрытия диалогового окна Project Properties.

OpenTooI API-интерфейс системы сборки

OpenTool API-интерфейс системы сборки позволяет прослушивать события, ге­нерируемые в результате создания и удаления в рамках выходной сборки. Этот API- интерфейс реализован в виде метода BuildListener .BuildθutpυtEvent (), А также класса BuildOutputEvent И Его ПОДКЛассОВ.

Распределение

В технологию распределения архивов, а также в методы генерации исполняемых файлов и конфигураций были внесены определенные изменения.

Исключение зависимостей из архивов

Функциональная возможность редакции JBuilder Enterprise.

При создании архивов с помощью инструментов Archive Builder и Native Executable Builder, а также при создании WAR-архивов появилась возможность ис­ключать из выходных архивов зависимости. Эта функциональность была добавлена в следующие интерфейсные элементы: на страницу Contents узла архива, на страни­цу Classes узла WebApp, в соответствующие шаги Archive Builder и Native Executable Builder, а также в Specify The Parts Of This Project To Archive.

Существует выбор. из следующих комбинаций опций для классов и ресурсов.

Классы:

■ Specified Only (Только указанные)

■ Specified And Dependent (Указанные и зависимые)

■ All (Все)

Ресурсы:

■ Specified Only (Только указанные)

■ All (Все)

Для полного контроля над классами и ресурсами, которые включаются в архив, выберите опцию Specified Only и с использованием кнопок Add Classes и Add Files укажите требуемые классы и ресурсы. Выбор опции Specified And Dependent приво­дит к тому, что в архив будут помещаться классы, указанные с использованием кнопки Add Classes, а также все классы, от которых зависят явно добавленные классы.

EJB-модули и соответствующие классы автоматически добавляются в JAR-архив. Поэтому страница Content диалогового окна Project Properties для EJB модуля выг­лядит очень похожей на соответствующую страницу любого другого архива, за ис­ключением того, что во всех интерфейсных элементах слово "Specified" заменяется на "Required". Данную страницу можно также использовать для исключения зависи­мостей между классами. При этом классы, ссылающиеся на EJB-модули, не затраги­ваются.

Archive Buiider

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

В Archive Builder появился новый тип архива — Executable JAR, который позволя­ет преобразовать существующие JAR-архивы в исполняемые модули. Кроме того, для выходного исполняемого файла можно устанавливать конфигурацию времени выполнения.

Страница Contents узла архива, а также эквивалентные шаги Archive Builder и Native Executable Builder теперь позволяют исключать зависимости.

Если на странице Selecting A Method For Determining The Application’s Main Class в качестве конфигурации выбрать <Auto Select>, при выполнении приложения будет использоваться конфигурация, установленная по умолчанию, со всеми параметра­ми. Если конфигурация по умолчанию не установлена или не является конфигура­цией для приложения, используется конфигурация, которая перечислена первой в списке конфигураций времени выполнения для приложений. Список времени вы­полнения для проекта доступен через пункт меню Run ∣ Configurations.

Создание собственных исполняемых модулей

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

C помощью Archive Builder можно создавать только исполняемые файлы, выбрав для этого один из типов архива Native Executable или Executable JAR (для существую­щих JAR-архивов). Шаги по созданию исполняемых модулей и добавлению конфи­гураций для типа архива Application изъяты. Как и прежде, для создания исполняе­мых файлов можно также пользоваться и услугами Native Executable Builder.

Если на странице Selecting A Method For Determining The Application’s Main Class в качестве конфигурации выбрать <Auto Select>, при выполнении приложения будет использоваться конфигурация, установленная по умолчанию, со всеми параметра­ми. Если конфигурация по умолчанию не установлена или не является конфигура­цией для приложения, используется конфигурация, которая перечислена первой в списке конфигураций времени выполнения для приложений. Список времени вы­полнения для проекта доступен через пункт меню Run ∣ Configurations,

Конфигурационные файлы для собственных исполняемых модулей

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

При создании исполняемых модулей с помощью инструментов Archive Builder и Native Executable Builder появилась возможность создавать новый или перезаписы­вать существующий конфигурационный файл, который определяет настройки вре­мени выполнения для модуля. Конфигурационные настройки находятся на после­дних страницах инструментов Archive Builder и Native Executable Builder. Существу­ет выбор из следующих опций:

■ Create executable configuration (Создание конфигурации исполняемого модуля).

■ Create executable configuration and save a copy in the specified file (Создание кон­фигурации исполняемого модуля и сохранение копии в указанном файле).

■ Override the executable configuration with the specified file (Перезапись конфигу­рации исполняемого модуля информацией из указанного файла).

В случае выбора второй или третьей опции конфигурационный файл будет до­бавлен в проект.

После создания исполняемого модуля конфигурационные настройки можно из­менять. Для этого необходимо выполнить щелчок правой кнопкой мыши на узле исполняемого модуля или архива на панели проекта и выбрать в контекстном меню пункт Properties. Далее следует перейти на страницу Runtime, внести требуемые из­менения и выполнить повторную сборку исполняемого модуля или архива.

Продуктивность

Существует ряд улучшений, позволяющих повысить продуктивность работы в IDE-среде.

Плавающая панель сообщений

Панель сообщений можно отсоединить, в результате чего она станет плавающей и может располагаться в любом желаемом месте экрана.

Сообщения панели состояния

При помощи пункта меню Tools ∣ IDE Options ∣ Browser ∣ Status Message Timeout можно указывать, сколько должно отображаться сообщение в панели состояния пе­ред тем, как оно пропадет.

Поиск с использованием регулярных выражений

Диалоговые окна Find/Replace и Find In Path/Replace In Path, доступные через меню Search, теперь позволяют выполнять поиск с использованием регулярных вы­ражений.

Редактор

Большинство усовершенствований касается редактора.

Технология перетаскивания

В редакторе теперь можно перетаскивать выбранный текст. Если перемещается целая строка текста и в окне параметров редактора Editor Options выбрана опция Smart Paste (Интеллектуальная вставка), при вставке этой строки выполняется авто­матический отступ

Нумерация строк

Теперь на левом поле в редакторе отображаются номера строк. Эта возможность управляется опцией Line Numbering, которая находится на странице Editor диалого­вого окна Editor Options (Tools ∣ Editor Options). Для быстрого отключения данной возможности следует выполнить щелчок правой кнопкой мыши на поле номеров строк и снять отметку возле пункта Show Line Numbers в контекстном меню.

Выделение текста

В редакторе появилась комбинация клавиш для выделения блоков текста или строк.

Форматирование кода

Часть из перечисленных ниже опций форматирования доступна только в редак­ции JBuiIder Enterprise.

Теперь имеется возможность определять опции форматирования, которые обес­печат автоматическое форматирование исходного кода Доступ к этим опциям осу­ществляется через страницу Formatting диалогового окна Project Properties (Project ∣ Project Properties). Закладки этой страницы позволяют настроить следующие пред­почтения по форматированию исходного кода:

■ Отступы.

■ Позиции табуляции.

■ Символы завершения строки.

■ Параметры групп строк.

■ Отступ продолжения строки.

■ Скобки.

■ Пробелы.

■ Пустые строки.

■ Обработка событий.

■ Операторы импорта и их порядок.

На каждой закладке имеется окно предварительного просмотра, отражающее произведенные изменения в форматировании.

Инструмент изменения масштаба

В нижней части окна редактора появилась пиктограмма в виде увеличительного стекла, которая позволяет точно настроить масштаб отображения исходного текста.

Быстрое изменение отображения клавиш

Быстрое изменение отображения клавиш осуществляется при помощи инстру­мента, расположенного в строке состояния редактора.

Командная разработка

Большинство изменений касается совершенствования интеграции с поддержи­ваемой системой управления версиями.

Разрешение конфликтов слияния

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

В панели предыстории появилась новая страница Merge Conflicts (Конфликты сли­яния), которая позволяет просматривать и разрешать конфликты между текущим файлом из рабочей области и соответствующим ему файлом из репозитория систе­мы управления версиями. Страница Merge Conflicts поддерживает разрешение кон­фликтов слияния как для Java-файлов, так и для различных типов текстовых файлов (XML, HTML и EJB).

Следует заметить, что разрешение конфликтов слияния поддерживается только в интеграции с CVS (JBuilder SE и JBuilder Enterprise) и Microsoft Visual SourceCafe (JBuilder Enterprise).

Усовершенствования CVS

Интеграция с CVS является функциональной возможностью редакций JBuilder SE и JBuilder Enterprise.

Интеграция с CVS претерпела два ключевых усовершенствования:

■ При использовании протокола соединения с pserver можно использовать но­мера портов, отличные от стандартных.

■ В мастере Pull Project From CVS Wizard можно выполнять поиск в репозито­рии списка модулей или ветвей.

По причине добавления в JBuilder возможности поиска в репозитории списка модулей или ветвей, поддержка CVS Helper была удалена.

Усовершенствования CIearCase

Интеграция с Rational ClearCase является функциональной возможностью ре­дакции JBuilder Enterprise

В интеграцию с ClearCase для управления версиями и конфигурациями были внесены некоторые улучшения.

Status Browser

Добавлен новый инструмент для просмотра — Status Browser (Team ∣ Status Browser), который дает возможность просматривать активный проект, выводит CVS — состояние для каждого измененного файла, исходные коды для каждой доступной версии разрабатываемой системы и различия между двумя версиями одного и того же файла.

Commit Browser

Добавлен новый инструмент для просмотра — Commit Browser (Team , Commit Browser), который обеспечивает доступ к общим операциям по управлению версия­ми для измененных файлов. При помощи Commit Browser можно устанавливать ко­манду, применяемую в отношении каждого изменяемого файла, вводить коммента­рии для отдельных файлов или групп файлов и затем выполнять все определенные команды по одному щелчку кнопкой мыши.

Поддержка моментального и динамического представления

Интеграция ClearCase и JBuilder обеспечивает поддержку как моментального, так и динамического представления. Эти представления создаются при помощи ма­стера ClearCase Create View Wizard, который доступен через пункт меню Team | CIearCase Tools ∣ Create View. Создание и открытие JBuilder-проектов на базе суще­ствующих ClearCase-представлений осуществляется с использованием мастера Project For

ClearCase Wizard. Этот мастер монтирует VOB и запускает моментальное или ди­намическое представление для доступа к файлам и каталогам в VOB. Кроме того, этот же мастер выполняет проверку файлов проекта.

Во время работы с моментальным представлением имеется возможность изы­мать файлы из-под контроля системы ClearCase (с использованием пункта меню Team ∣ Hijack File). Это позволяет работать с файлами, когда ClearCase-сервер не дос­тупен. Изъятые файлы затем можно вновь преобразовывать в подконтрольные ClearCase-системы с использованием мастера ClearCase Update View Wizard (Team ∣ CIearCase Tools ∣ Update View).

Вывод сообщений на консоль

В диалоговом окне CIearCase Properties имеется флажок Show Console Messages (Показать консольные сообщения), который разрешает вывод сообщений на кон­соль. Если этот флажок отмечен, все ClearCase-команды вместе с генерируемым ими выводом будут отображаться в панели сообщений страницы ClearCase Console.

Улучшенный доступ к инструментам и командам CIearCase

Пункт меню Team ∣ CIearCase Tools обеспечивает доступ к меню команд, кото­рые запускают ClearCase-инструменты, такие как ClearCase Explorer (Team ∣ CIearCase Tools ∣ Explorer). Полный список пунктов этого меню выглядит следую­щим образом:

■ Explorer

■ User Options

■ Merge Manager

■ Find Checkouts

■ Apply Label

■ Create VOB

■ Create View

■ Update View

■ Checkm "<filename>,’

■ Checkout "<filename>"

■ Undo Checkout "<filename>,’

■ Add File "<filename>»

■ Properties For "<filename>"

■ History For "<filename>"

■ Compare With Prior Version "<filename>"

■ Version Tree For "<filename>"

■ Project Explorer

■ Join UCM Project

■ Deliver From Stream

■ Rebase Stream

Поддержка системы UCM

Интеграция ClearCase и JBuilder обеспечивает поддержку UCM-процессов (UCM — Unified Change Management — универсальное управление изменениями). UCM представляет собой необязательный внешний процесс по организации ко­манд разработчиков программного обеспечения и продуктов, выпускаемых коман­дами

Поддержка J2EE-cepβepoB

Функциональная возможность редакции JBuilder Enterprise.

Поддержка Sybase® EAServer

Новая версия JBuilder теперь поддерживает сервер Sybase® Enterprise Application Server 4.1.

Поддержка BEA WebLogic Server™

Новая версия JBuilder имеет улучшенную поддержку сервера BEA WebLogic Server™ 7.x, включая оптимистический параллелизм bean-компонент с контейнер­ной устойчивостью.

Поддержка Borland® Enterprise Server

Новая версия JBuilder имеет улучшенную поддержку серверов Borland® Enterprise Server 5.02 и Borland® Enterprise Server 5.1.x.

Поддержка Oracle9i™ Application Server

Инсталляционный диск JBuilder 8 содержит набор подключаемых модулей для поддержки сервера Oracle9i™ Application Server (в каталоге Oracle 9i AS). Все под­ключаемые модули поддерживаются компанией Oracle.

Разработка Javadoc-документации

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

Новая версия JBuilder содержит редактор пакетных файлов, который позволяет создавать, редактировать и удалять файл package. html, входящий в состав пакетов проекта.

Корректировка связей

Функциональная возможность редакций JBuilder SE и JBuilder Enterprise.

В панели структуры теперь доступны следующие команды:

■ Find References (Найти ссылки)

■ Optimize Imports (Оптимизировать импорт)

■ Rename Package (Переименовать пакет)

■ Rename Class (Переименовать класс)

■ Rename Method (Переименовать метод)

■ Rename Field (Переименовать поле)

■ Change Method Parameters (Изменить параметры метода)

Возможности доступа

Новые возможности доступа позволяют получать доступ с использованием кла­виатуры к любой части JBuilder. Стандартные методы доступа также сохранились Множественный выбор и выделение осуществляется при помощи клавиш Shift и

Ctrl. Выбор элементов внутри IDE-среды выполняется при помоши клавиши Enter. Для выбора элементов в меню служат клавиша Enter или клавиша пробела. Для на­вигации внутри IDE-среды используется клавиша Tab или комбинация Ctrl+Tab.

Доступ в IDE-среде

Переключение между окнами, такими как Source, Design и History, осуществля­ется через меню Window.

C помощью команды Select Browser Splitter можно выбрать разделитель, который позволяет изменять размеры панелей содержимого, проекта и структуры без помо­щи мыши.

Меню View теперь содержит пункт Context Menu. В результате выбора этого пунк­та будет отображаться контекстное меню, связанное с конкретной позицией курсо­ра в рамках IDE-среды. Эта же возможность доступна через клавиатурную комбина­цию Shift+F10.

C помощью клавиатурных комбинаций можно закреплять и откреплять панель сообщений.

Имеется возможность изменить размер шрифта, используемого в IDE-среде, при помощи пункта меню Tools ∣ IDE Options ∣ Browser ∣ Font Adjustment.

Доступ в конструкторе

Меню Edit позволяет добавлять компоненты в проект. В результате выбора пунк­та меню Edit ∣ Add Component отображается диалоговое окно Add Component. В нем можно вырезать и вставлять компоненты в любом месте дерева компонентов.

Во время работы в конструкторе доступны Tab и Ctrl+Tab для навигации в рамках IDE-среды. При этом фокус перемещается в следующем порядке:

■ Панель проекта

■ Дерево компонентов

■ Палитра компонентов

■ Поверхность конструктора

■ Инспектор

В общем случае, внутри каждой области можно перемещаться с использованием клавиш со стрелками.

Новый API-интерфейс Filel/O

Появилось новое свойство FiIeIO, позволяющее улучшить показатели производи­тельности операций записи в журнальные файлы Borland JDataStore. Установить значение этого свойства можно двумя способами:

1. Через расширенное JDBC-свойство "fileio", которое может быть установлено в конструкторе пользовательского интерфейса как часть свойства соединения с базой данных.

2. Через свойство "JDATAST0RE F1LEI0" Java-системы, которое можно задать в командной строке с использованием ключа "-D" при запуске автономного приложения JDataStore.

Установка через JDBC-свойство имеет преимущество перед установкой через свойство "JDATASTORE_FILEIO".

Допустимыми значениями данного свойства являются:

■ default

Использовать Filel/O по умолчанию. Это значит, что JDataStore будет ис­пользовать API-интерфейсы Filel/O из предыдущих выпусков. Это наиболее переносимая опция в отношении всех Java-платформ, и она обеспечивает наиболее полный журнальный файл.

■ new

JDataStore будет использовать "новые" API-интерфейсы ввода/вывода, осно­ванные на JDK 1.4. Это значение по умолчанию не используется на платфор­мах Microsoft Win32 по причине наличия ошибок в JVM-машине вплоть до JDK 1.4.1. Для платформ, отличных от Win32, подобные проблемы не суще­ствуют. Данное значение обеспечивает более высокую производительность по сравнению со значением "default" и подобно JDataStore-опции "soft commit".

■ native

В результате используются собственные API-интерфейсы и достигается тот же выигрыш, что и в случае варианта "new". В настоящий момент реализовано только для Win32-ruιaτφopM. На других платформах необходимо использо­вать "new", конечно, если они работают под управлением JDK 1.4 и выше.

Резюме по JBuiIder 8

JBuilder 8 предлагает множество возможностей, которые вместе обеспечивают независимость от платформы и высокую гибкость выходных приложений.

■ Более быстрая разработка приложений с использованием нового каркаса Web-разработки, основанного на проверенных стандартах.

■ Более высокая эффективность работы крупных команд за счет улучшений в редакции Enterprise, в числе которых группы проектов, форматирование кода и тесная интеграция с лидирующими системами управления исходным ко­дом.

■ Более быстрое помещение приложений на рынок за счет использования ме­тодологий быстрой разработки, в числе которых новое тестирование модулей для J2EE, Web-приложений и EJB.

■ Более высокая эффективность работы и надежность кода за счет внедрения расширенного редактора отладки HotSwap и увеличения производительности системы в целом.

Что нового в JBuiIder 9

Среда JBuilder 9 Enterprise существенно упрощает разработку Web-приложений и Enterprise JavaBean-компонентов (EJB-компонентов) при помощи двухсторонних визуальных конструкторов и быстрого развертывания результатов на серверах J2EE — приложений.

Изменения, введенные в версии JBuilder 9, коснулись следующих областей:

■ Управление проектами

■ Система сборки

■ Archive Builder

■ Командная разработка

■ Web-службы

■ Продуктивность

■ Редактор

■ Отладчик

■ Разработка Web-приложений

■ Конструктор EJB-компонентов

■ J2EE-cepβepbi

■ Мобильная разработка

Управление проектами

Следующие функциональные возможности существенно упрощают решение за­дач по управлению проектами:

■ Перетаскивание файлов и каталогов между различными проектами

■ Управление файлами на панели проекта

■ Открытие TogetherSoft-πpoeκτoB в среде JBuilder

Перетаскивание файлов и каталогов между различными проектами

В новой версии JBuilder управление проектами стало еще проще, поскольку была внедрена технология перетаскивания (drag-and-drop) в отношении файлов и катало­гов. Появились следующие возможности:

■ Быстро создавать представление каталога в текущем проекте, просто перетас­кивая пиктограмму каталога извне JBuilder и помещая ее на панель проекта.

■ Быстро добавлять файлы в представление каталога, просто перетаскивая пик­тограммы файлов извне JBuilder и помещая их в представление каталога, на­ходящееся на панели проекта.

■ Перетаскивать файлы между родительскими узлами на панели проекта.

■ Перетаскивать копию файла или каталога на другую панель проекта, находя­щуюся в другом браузере AppBrowser.

■ Быстро открывать файл, перетаскивая его из панели проекта на панель содер­жимого.

■ Изменять порядок следования проектов в рамках группы проектов, перетас­кивая проекты на требуемые места.

Управление файлами на панели проекта

Теперь имеется возможность не только быстро добавлять и создавать файлы и па­кеты через контекстное меню панели проекта, но также и создавать файлы и катало­ги внутри корневого каталога Web-приложения. Для этого потребуется просто вы­полнить щелчок правой кнопкой мыши на корневом каталоге Web-приложения и выбрать соответствующий пункт из появившегося контекстного меню.

Также можно выбирать и разворачивать любой узел архива в панели проекта и просматривать файлы, которые входят в этот архив. Двойной щелчок на узле, соот­ветствующем файлу в архиве, приводит к его открытию в панели содержимого для просмотра и редактирования. Средства просмотра JBuilder отображают файлы в со­ответствие с их типами. Например, если архив содержит. gif — и HTML-файл, на странице View панели содержимого для просмотра. gif-файла будет использоваться встроенное в JBuilder средство просмотра изображений, а для просмотра HTML — файла — указанный в установках браузер.

Открытие проектов Borland® Together® в среде JBuiIder

Новая версия JBuilder позволяет открывать проекты Borland® Together® ControlCenter* (.tpr-файлы) как обычные проекты в панели проекта.

Система сборки

Изменения в компиляторе Borland Make

Borland® Make, стандартный компилятор, встроенный в среду интегрированной разработки JBuilder, реструктурирован и теперь использует стандартный компиля­тор javac в композиции с интеллектуальной проверкой зависимостей. (Компилятор Borland Make также использует интеллектуальную проверку зависимостей, но не javac.) Переключение между компиляторами осуществляется на закладке Java стра­ницы Build диалогового окна Project Properties, доступное через пункт меню Project | Project Properties. На этой закладке находится выпадающий список Compiler, из ко­торого и выбирается соответствующий компилятор. Возможность переключения между компиляторами реализована только в редакциях JBuilder Developer и JBuilder Enterprise.

По причине изменений в компиляторе изменились и сообщения об ошибках, выводимые в панели структуры и панели сообщений. Для получения справки по конкретному сообщению об ошибке выберите это сообщение и нажмите клавишу FL

Apache Ant

Apache Ant обновлен до версии 1.5.2.

Экспорт проектов в Ant

Функциональная возможность редакции JBuilder Enterprise.

JBuilder поддерживает механизмы экспортирования собственных проектов в

Файлы сборки Ant, которые содержат стандартные Ant-задания. Получаемые в ре­зультате экспорта Ant-файлы затем можно использовать для независимой сборки проектов вне среды JBuilder. Упомянутая возможность полезна для сборки в режиме командной строки, а также для соблюдения лицензионных соглашений.

Мастер Export То Ant Wizard, доступный через меню Wizards и на странице Build галереи объектов, создает в панели проекта узел Export То Ant. Для генерации файла сборки Ant необходимо выполнить двойной щелчок на этом узле и выбрать в кон­текстном меню пункт Маке.

Очень важно отметить, что файлы сборки JBuilder и Ant не обязательно идентич­ны, поскольку некоторые специальные задания по сборке JBuilder не являются стандартными Ant-заданиями. В результате поддерживаются не все JBuilder-зада — ния по сборке.

Archive Builder

Функциональная возможность редакций JBuilder Developer и JBuilder Enterprise.

Новая версия Archive Builder обеспечивает более гибкий контроль над файлами, вхо­дящими в состав архива. Ниже приводится список основных новых возможностей:

■ Возможность указывать файлы для включения и исключения из архива.

■ Возможность указывать фильтры для включения и исключения, причем фильтры допускают использование шаблонов и рекурсии.

■ Возможность помещать файлы в архив из любого расположения, а также оп­ределять имя и путь самого архива.

Командная разработка

Обновлены следующие интеграции с системами управления версиями (VCS):

■ Concurrent Versions System (CVS)

■ Microsoft® Visual SourceSafe®

■ Rational® ClearCase®

Добавлена следующая интеграция:

■ Borland StarTeam®

Обновления интеграции C CVS

В интеграцию с CVS добавлены следующие функциональные возможности:

■ Поддержка автоматического контроля во время корректировки связей. Если во время корректировки связей встречаются файлы только для чтения, и они находятся под управлением CVS-системы, процесс корректировки связей ос — танг вливается с выдачей соответствующего запроса

■ Возможность изменения действий в отношении множества выбранных фай­лов. Контекстное меню для группы выбранных файлов в таблице, располо­женной в окне Commit Browser, позволяет изменять действия, назначенные для этих файлов, одновременно.

■ Возможность возврата к предшествующему состоянию. Команда возврата к предшествующему состоянию Revert в меню Team отменяет все изменения, внесенные в буфере редактирования, и возвращает активный файл в после­днее проверенное состояние.

■ Возможность выталкивания проекта из-под контроля CVS-системы по дате. Мастер Pull Project From CVS Wizard обеспечивает механизм проверки наибо­лее актуальной ревизии проекта до указанной даты.

■ Автоматическое обновление представления History. Представление History ав­томатически обновляется после выполнения операций Commit и Checkin.

Обновления интеграции с Microsoft® Visual SourceSafe®

Функциональная возможность редакций JBuilder Developer и JBuilder Enterprise. В интеграцию с Microsoft® Visual SourceSafe® добавлены следующие функцио­

Нальные возможности:

■ Поддержка переименования в Commit Browser. Если файл, находящийся под контролем системы управления версиями, переименовывается в рабочей об­ласти, Commit Browser предлагает опции переименования этого файла в ре­позитории, а также возврата копии файла в рабочей области к оригинальному состоянию.

■ Поддержка автоматического контроля во время корректировки связей. Если во время корректировки связей встречаются файлы только для чтения, и они находятся под управлением VCS-системы, процесс корректировки связей ос­танавливается с выдачей соответствующего запроса.

■ Возможность изменения действий в отношении множества выбранных фай­лов. Контекстное меню для группы выбранных файлов в таблице, располо­женной в окне Commit Browser, позволяет изменять действия, назначенные для этих файлов, одновременно.

■ Автоматическое обновление представления History. Представление History ав­томатически обновляется после выполнения операций Commit и Checkin.

■ Возможность возврата к предшествующему состоянию. Команда возврата к предшествующему состоянию Revert в меню Team отменяет все изменения, внесенные в буфере редактирования, и возвращает активный файл в после­днее проверенное состояние.

Обновления интеграции с Rational® CIearCasee

Функциональная возможность редакции JBuilder Enterprise.

В интеграцию с Rational® ClearCase® добавлены следующие функциональные

Возможности:

■ Поддержка переименования в Commit Browser. Если файл, находящийся под контролем системы управления версиями, переименовывается в рабочей облас­ти, Commit Browser предлагает опции переименования этого файла в репозитории, а также возврата копии файла в рабочей области к оригинальному состоянию.

■ Поддержка автоматического контроля во время корректировки связей. Если во время корректировки связей встречаются файлы только для чтения, и они находятся под управлением VCS-системы, процесс корректировки связей ос­танавливается с выдачей соответствующего запроса.

■ Возможность изменения действий в отношении множества выбранных фай­лов. Контекстное меню для группы выбранных файлов в таблице, располо­женной в окне Commit Browser, позволяет изменять действия, назначенные для этих файлов, одновременно.

■ Автоматическое обновление представления History. Представление History ав­томатически обновляется после выполнения операций Commit и Checkin.

Обновления интеграции с Borland® StarTeame

Функциональная возможность редакций JBuiIder Developer и JBuilder Enterprise. Интеграция с системой StarTeam предоставляет доступ к наиболее критическим

Возможностям и функциям StarTeam, обеспечивая выполнение задач по управле­нию версиями и конфигурациями в среде JBuilder. Соединение с сервером StarTeam Server осуществляется по протоколу TCP/IP (Sockets). Кроме того, интеграция под­держивает ряд возможностей, специфических для JBuilder, которые упрощают уп­равление фалами с исходным кодом внутри JBuilder.

Интеграция с системой StarTeam включает встроенные в IDE-среду большие порции межплатформенного клиента StarTeam Cross-Platform Client, а также сам клиент StarTeam Cross-Platform Client. Интеграция с системой StarTeam поддержи­вает взаимодействие с серверами StarTeam Server 5.2 и StarTeam Server 5.3.

Помимо поддержки всех возможностей StarTeam, интеграция отличается следу­ющими особенностями:

■ Поддержка Status Browser (Team ∣ Status Browser). Status Browser, в основном, является средством просмотра активного проекта, отображая VCS-состояние каждого измененного файла, файлы исходного кода для каждой доступной версии разрабатываемой системы, а также отличия между двумя версиями од­ного и того же измененного файла.

■ Поддержка Commit Browser (Team ∣ Commit Browser). Commit Browser обеспе­чивает поддержку возможностей просмотра для Status Browser, а также доступ к общим CVS-операциям для изменяемых файлов. При помощи Commit Browser можно устанавливать команду, применяемую в отношении каждого изменяемого файла, вводить комментарии для отдельных файлов или групп файлов и затем выполнять все определенные команды по одному щелчку кнопкой мыши. Если файл, находящийся под контролем системы управле — ни5 версиями, переименовывается в рабочей области, Commit Browser пред­лагает опции переименования этого файла в репозитории, а также возврата копии файла в рабочей области к оригинальному состоянию.

■ Мастер помещения проекта под управление StarTeam-системы Placing Project Into StarTeam Wizard (Team ∣ Place Project Into StarTeam Server). Этот мастер позволяет помещать проекты в репозиторий StarTeam.

■ Мастер выталкивания проекта из-под управления StarTeam-системы Pull Project From StarTeam Wizard (Team ∣ Pull Project From StarTeam Server). Этот мастер соединяется с сервером StarTeam Server, выталкивает JBuilder-πpoeκτ из сервера и помещает его в рабочую область. После выталкивания над проек­том можно выполнять необходимые действия, связанные с управлением ис­ходным кодом.

■ Комбинации быстрого доступа к элементам процесса. Эти комбинации обес­печивают быстрый и полный доступ к редакторам свойств для элементов и разделов процесса. Комбинации быстрого доступа к элементам процесса выг­лядят как подузлы узла StarTeam Repository в панели проекта. Контекстное меню, доступное для каждой комбинации, позволяет отрывать в панели со­держимого редактор свойств для элемента процесса. Немодальное окно ре­дактора свойств дает возможность просматривать и изменять свойства эле­мента процесса во время работы над основным проектом. Кроме того, кон­текстное меню комбинации позволяет устанавливать или очищать активный элемент процесса, удалять и переименовывать комбинацию быстрого досту­па. При помощи кнопки Create Short Cut панели инструментов создаются комбинации быстрого доступа для выбранных элементов процесса. Эта новая возможность пришла на замену узла StarTeam Processltem в панели проекта, а также пункта Edit Active Process Item в меню Team.

Следует отметить, что немодальный режим не поддерживается для альтернатив­ных редакторов свойств. Если команда разработчиков настроила систему StarTeam на использование альтернативных редакторов свойств, контекстное меню комбина­ции будет содержать пункт Edit Item, который обеспечивает вызов альтернативных редакторов свойств в форме модальных диалоговых окон.

Web-службы

Функциональная возможность редакции JBuilder Enterprise.

Инструментальный набор Apache® Axis

Инструментальный набор Apache Axis обновлен до версии 1.1.

Инструментальный набор SOAP

Инструментальный набор SOAP обновлен до версии 2.3.

Инструментальный набор BEAeWebLogic6

В инструментальном наборе BEA WebLogic появились две новых функциональ­ных возможности: консоль Web-служб Web Services Console и мастер экспорта в виде асинхронной Web-службы Export As An Asynchronous Vvfeb Service Wizard.

Консоль IVeb Services Console

Консоль Web Services Console обеспечивает прямой доступ для целей тестирова­ния разворачиваемой службы на странице WebLogic Web Services Home Page. Снача­ла необходимо сконфигурировать проект как Web-службу, создать Web-службу и раз­вернуть Web-службу, как обычно, на сервере WebLogic Server. Затем следует выбрать пункт меню Tools ∣ Web Services Console и открыть тестируемую Web-службу в брау­зере Internet Explorer. В консоли Web Services Console перечисляются все разверну­тые Web-службы, видимые методы (операции) каждой Web-службы, а также соответ­ствующие WSDL-определения. На этой странице можно тестировать Wfeb-службу, просматривать SOAP-сообщения запросов и откликов в случае успешного выполне­ния операций, а также получать готовые примеры кода для обращения к Wfeb-службе.

Мастер ExportAs An Asynchronous IVeb Service Wizard

Функциональная возможность сервера WebLogic Server 8.1.

Мастер Export As An Asynchronous Web Service Wizard, функциональная возмож­ность инструментального набора WebLogic и сервера WebLogic Server 8.1, использу­ется для создания асинхронных Web-служб. Поскольку инструментальный набор WebLogic поддерживает JMS-совместимые Wfeb-службы (JMS — Java Message Service — служба Java-сообщений) с использованием очередей в качестве модели обмена сообще­ниями, сервер WfebLqgic Server необходимо настроить на работу с JMS. Кроме того, про­ект должен содержать EJB-модуль и bean-компонент, управляемый сообщениями.

Мастер Export As An Asynchronous Web Service Wizard доступен на закладке Web Services галереи объектов (File ∣ New), а также в контекстном меню панели проекта.

Типовые шаги по созданию асинхронной Web-службы включают:

1. Настройка JMS-сервера, выходной очереди и необязательной очереди прием­ника на сервере WebLogic Server 8.1.

2. Создание EJB-модуля и bean-компонента, управляемого сообщениями, кото­рый будет обрабатывать сообщения, переданные клиентом.

3. Создание типа данных, такого как сериализованный JavaBean-компонент, для передачи сообщений между клиентом и сервером.

4. Создание реализации в форме Web-службы для отправки данных на сервер и необязательного получения возвращаемых сервером данных.

Поддерживаемые серверы приложений

Возможности разработки Web-служб, встроенные в JBuilder, поддерживают рабо­ту со следующими серверами приложений:

■ Инструментальный набор BEA® WebLogic0: WebLogics Server 7.0 SP2 и WebLogic® Server 8.1.

■ Инструментальные наборы Axis и SOAP:

□ Borland® Enterprise Server 5.1.x, 5.2 и 5.2.1

□ ЗЕА WebLogic Server 7.0 SP2 и 8.1

□ IBM® WebSphere® Application Server 4.0 AES∕AE и 5.0

□ Sybase "’ EAServer 4.1.3 и 4.2

Продуктивность

JBuilder предлагает более быстрое написание кода и документации за счет новых инструментов кодирования и улучшения в продуктивности:

■ Javadoc

■ Корректировка связей

■ ErrorInsight

Javadoc

Закладка Javadoc на странице Build диалогового окна Project Properties позволяет добавлять к Javadoc собственные дескрипторы. C каждым таким дескриптором мож­но связать заголовочный текст, который в форме заголовка будет появляться в вы­ходном HTML-файле, сгенерированном Javadoc.

Опция Show Console Output (Показать вывод на консоли) на странице Choosing documentation build options мастера Javadoc-документов дает возможность отобра­жать выходную Javadoc-информаиию на закладке Build панели сообщений. Эта ин­формация будет отображаться вместе с сообщениями компилятора и другими сооб­щениями, генерируемыми во время процесса сборки.

Корректировка связей

В новой версии появилась команда Find Overridden Method (Найти перекрытый ме­тод), которая выполняет поиск метода, перекрытого выбранным методом. Для того чтобы найти перекрытый метод, откройте файл исходного кода, в котором объявлен метод. Выполните щелчок правой кнопкой мыши на методе в панели структуры или в редакторе и выберите в контекстном меню пункт Find Overridden Method. JBuilder должен открыть суперкласс, в котором объявлен перекрытый метод и уста­новить курсор непосредственно на строку объявления. Можно даже пройтись по всей цепочке суперклассов для поиска всех перекрытий выбранного метода.

Errorlnsight

Инструмент ErrorInsight существенно упрощает корректировку кода, предостав­ляя возможность быстро исправлять общие ошибки, встречающиеся при написа­нии кода, за счет выдачи множества предположений по исправлению и многочис­ленных мастеров. Получить доступ к EnorInsight можно несколькими способами:

■ Выбрать Edit ∣ Errorlnsight.

■ Выполнить щелчок правой кнопкой мыши на описании ошибки рядом с пиктограммой ErrorInsight в панели структуры.

■ Щелкнуть на кнопке Errorlnsight в левом поле редактора рядом с кодом, выз­вавшим ошибку.

Редактор

В новой версии появились дополнительные возможности по настройке IDE-cpe — ды и новые инструментальные средства, ускоряющие работу по написанию кода.

■ Настройка IDE-среды.

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

■ Редактирование с помощью Sync Edit.

■ Добавление макросов.

■ Добавление общих кодовых шаблонов.

Настройка IDE-среды

Изменить внешний вид IDE-среды можно через пункт меню Tools ∣ IDE Options. В выпадающем списке внешних видов IDE-среды добавлены новые опции, среди которых: Windows, Metal и CDE∕Motif.

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

Кодовые шаблоны теперь содержат операторы импорта, расположенные в начале порции кода (Tools ∣ Editor Options ∣ Templates). При вставке кодового шаблона в раз­рабатываемый исходный код (Ctrl+J) оператор импорта из шаблона удаляется и по­мещается в требуемое место в начале исходного кода.

Редактирование с помощью Sync Edit

Инструмент Sync Edit позволяет одновременно редактировать дублирующиеся идентификаторы в коде или кодовом шаблоне.

Для вызова Sync Edit из главного меню:

1. Выберите код или кодовый шаблон, который содержит дублирующиеся иден­тификаторы.

2. Выберите пункт меню Edit ∣ Sync Edit. Выполняется переход в режим Sync Edit. Выбранный код подсвечивается, а дублирующиеся идентификаторы выделя­ются либо контуром, либо подчеркиванием.

Для вызова Sync Edit из редактора:

1. Нажмите комбинацию Ctrl+J и выберите шаблон, который необходимо поме­стить в код. Выполняется переход в режим Sync Edit.

2. Выберите область, куда должен быть добавлен кодовый шаблон. В левом поле редактора появляется кнопка Sync Edit, щелчок на которой используется для вставки в код шаблона или для одновременного редактирования дублирую­щихся идентификаторов.

Инструмент Sync Edit корректно вставляет шаблон и автоматически помещает требуемые отступы.

Добавление макросов

Процесс кодирования можно сделать еще более эффективным за счет добавле­ния в кодовый шаблон набора макросов. Макрос может автоматизировать замену имен идентификаторов в исходном коде при вставке в него шаблона. Например, если в код вставляется шаблон equals (содержащий макрос SCurrentCIass), то мак­рос SCurrentCIass будет автоматически заменяться актуальным именем класса.

Для добавления макроса в шаблон:

1. Выберите пункт меню Tools ∣ Editor Options и перейдите на закладку Templates.

2. Выберите в списке Templates требуемый шаблон.

3. Поместите курсор в текстовом поле Code на то место, где должен быть встав­лен макрос.

4. Щелкните на кнопке Insert Macro, которая находится в нижней части заклад­ки Templates. Открывается диалоговое окно Insert Macro.

5. Выберите требуемый макрос из списка и щелкните на кнопке OK.

В результате проделанных действий макрос вставляется в кодовый шаблон.

Добавление общих кодовых шаблонов

Можно легко добавить новый кодовый шаблон в список шаблонов, который ото­бражается независимо от типа файла или позиции внутри открытого файла.

1. Выберите пункт меню Tools ∣ Editor Options и перейдите на закладку Templates.

2. На закладке Templates щелкните на кнопке Add. Кодовый шаблон можно до­бавлять в списки шаблонов Java, HTML и Common. Общие (common) шаблоны отображаются всегда, вне зависимости от типа файла или позиции внутри от­крытого файла.

3. Введите имя и описание нового кодового шаблона и щелкните на кнопке OK.

4. Наберите код для нового шаблона в текстовой области Code. Не забудьте включить соответствующий оператор импорта.

5. Продолжайте добавлять новые или редактировать существующие кодовые шаблоны. По завершении щелкните на кнопке OK, чтобы закрыть диалоговое окно Editor Options.

Отладчик

Ниже описаны новые возможности, добавленные в отладчик.

Отображение объекта в виде строки

Команда Show toString() выполняет метод toString() выбранного объекта (включая и объект this) и отображает результирующую строку. Например, если выбранным объектом является City, команда Show toString() приведет к отображению строки на­подобие Сан-Франциско, а не чего-нибудь вроде com. mycode. City(g>391. Эта команда становится доступной, если имеется выбранный объект в одном из окон Data Watches, Threads, Call Stack.

Переход на слежение за переменной с локальной областью видимости

Теперь имеется возможность переходить в редакторе на метод, в котором опреде­лена выбранная переменная с локальной областью видимости. Необходимо выпол­нить щелчок правой кнопкой мыши на такой переменной в окне Data Watches и выбрать в контекстном меню пункт Go То Watch.

Разработка Web-приложений

Ниже рассматриваются новые функциональные возможности, связанные с раз­работкой Web-приложений.

Доступ к мастеру JavaServer Pages™ Wizard

В дополнение к возможности доступа к мастеру JavaServer Pages Wizard через страницу Web галереи объектов, его можно вызвать, выполнив щелчок правой кноп­кой мыши на узле Root Directory WebApp-приложения в панели проекта и выбрав в появившемся контекстном меню пункт New ∣ JSP.

Правила включения каталогов для WEB-INF

Правила включения каталогов для подкаталогов каталога WEB-INF претерпели изменения. Если флажок Include Regular Content In WEB-INF And Subdirectories (Включать обычное содержимое из WEB-INF и его подкаталогов), находящийся на странице Directories диалогового окна WebApp Properties, отмечен, все подкаталоги каталога WEB-INF будут автоматически включены в проект. В предыдущей версии JBuilder требовалось вручную включать каждый подкаталог. Интерфейсные элемен­ты, при помощи которых осуществлялось включение подкаталогов, ранее располо­женные на странице Directories диалогового окна WebApp Properties, теперь изъяты.

Если WEB-INF трактуется как обычный каталог, то содержимое WEB-INF∕classes и WEB-INF∕lib видимо, однако имеет признак "только для чтения". Соответственно, опции удаления и переименования для файлов в этих подкаталогах в окне представ­ления каталога будут недоступны.

Исключение каталогов для WebApp-приложения

C помощью новой опции контекстного меню, доступного для всех каталогов в WebApp-приложении. можно определять правило исключения для текущего катало­га (а также всех его подкаталогов). Для того чтобы исключить каталог, выполните щелчок на нем правой кнопкой мыши и в появившемся контекстном меню выбери­те пункт Exclude Directory From WebApp (Исключить каталог из WebApp). Можно так­же удалить соответствующее правило на странице Directories диалогового окна WebApp Properties.

Мастер Servlet Wizard

Опция Generate SHTML File (Генерировать SHTML-файл) и две связанных с ней опции на странице Edit Standard Servlet Details (Редактировать детали стандартного
сервлета) мастера сервлетов Servlet Wizard заменены опцией Generate HTML File With Form (Генерировать HTML-файл с формой). Эта опция позволяет протестировать ме­тод doPost() сервлета, а также протестировать различные параметры, передаваемые в методе doGet().

Опция Generate HTML File With Form и параметр ACTION результирующей формы зависят от выбора методов doGet() и doPost().

doget() dopost()
результат
опция generate html file with form не доступна.
атрибут action результирующей формы установлен в get. атрибут action результирующей формы установлен в post. атрибут action результирующей формы установлен в post.
не выбран выбран не выбран выбран не выбран не выбран выбран выбран

Со страницы Enter Servlet Request Parameters (Введите параметры запроса серв­лета) мастер осуществляет переход на страницу Enter WebApp Details (Введите дета­ли WebApp). Вот так выглядит последовательность перехода по страницам для стан­дартного сервлета:

1. Choose Servlet Name And Туре (Выберите имя и тип сервлета).

2. Enter Standard Servlet Details (Введите детали стандартного сервлета).

3. Enter Servlet Request Parameters (Введите параметры запроса сервлета).

4 Enter WebApp Details (Введите детали WebApp).

5. Define Servlet Configuration (Определите конфигурацию сервлета).

Поддержка Apache™ Struts 1.1

JBuilder теперь способен определять через файл struts-config. xml, какая версия Apache™ Struts поддерживается: 1.0 или 1.1. Соответствующим образом будут ото­бражаться и параметры в редакторе конфигурации Struts Config Editor.

Вызов диалогового окна Properties For Struts заставляет JBuilder перечитать файл Web xrnl и найти новые или измененные файлы struts-config. xml. Для случая Struts 1.1 затем выполняется сканирование этих конфигурационных файлов (struts-config. xml) с целью определения местоположения файлов Tiles-определений. Диалоговое окно Properties For Struts можно также использовать для добавления и удаления конфигу­рационных файлов, равно как и изменения порядка их следования в файле web xml. Для вызова этого диалогового окна необходимо выполнить щелчок правой кнопкой мыши на узле Struts в панели проекта и в появившемся контекстном меню выбрать пункт Properties.

Поддержка добавления файлов и каталогов к WebApp-приложению

Появилась возможность напрямую добавлять каталоги, JSP-, HTML — и любые другие файлы к WebApp и его подкаталогам (включая Root Directory). Сначала необ­ходимо перейти на панель проекта. Затем следует выбрать WebApp или каталог из WebApp, куда требуется добавлять, выполнить щелчок правой кнопкой мыши и в контекстном меню выбрать пункт Add То WebApp. (Добавлять можно либо файлы, либо каталоги.) В появившемся диалоговом окне введите имя добавляемого файла или каталога и щелкните на кнопке OK.

Мастер JSP Wizard

Страница Identify JSP Beans (Укажите bean-компоненты JSP-страницы) этого мас­тера претерпела ряд изменений. В дополнение к возможностям добавления и уда­ления bean-компонентов, на этой странице можно выполнять редактирование пара­метров ID и Scope существующих Ьеап-компонентов.

Конструктор EJB-компонентов

Конструктор EJB-компонентов в новой версии JBuilder отличается более высо­кой производительностью. Кроме того, страница, доступная через пункт меню Tools I IDE Options ∣ EJB Designer, имеет новые опции, которые позволяют ускорить отображение конструктора EJB-компонентов. Дополнительную информацию по этому поводу можно получить, щелкнув на кнопке Help.

Был добавлен мастер DTO∕Session Facade Wizard, который позволяет генериро­вать объекты передачи данных (Data Transfer Object — DTO) и фасады сеансов (session facade) для Ьеап-компонентов.

J2EE-cepBepu

Ниже приводится список серверов, которые стал поддерживать JBuilder.

■ BEA WebLogic Server™ 8.1.

■ IBMeWebsphereeApplication Server 5.0.

■ BorlandeEnterprise Server 5.1.1 — 5.2.1

■ Sybase® EAServer 4.2.

Кроме того, добавлена поддержка следующих пакетов обновлений:

■ BEA WebLogic Server™ 6.1, service pack 4

■ BEA WebLogic Server™ 7.0, service pack 2

Серверы WebLogic Server™ 5.1 и IBM® WebSphere® Server 3.5 более не поддержи­ваются.

Поддержка Sybase® EAServer

В случае работы с сервером Sybase® EAServer теперь уже нет необходимости вы­полнять отображение полей для устойчивых EJB-компонентов с контейнерами при помощи консоли Sybase Jaguar Console. Это делает специальный подключаемый OpenTool-модуль для работы с Sybase. Кроме того, в компонентах, связанных отно­шением, нет необходимости устанавливать источник данных равным источнику данных, который используется в EJB-компоненте, вовлеченном в отношение.

Обновление проектов последними серверными установками

Каждый раз когда открывается проект, выполняется его обновление последними CejJBepHbiMH установками для выбранных серверов проекта. Например, если были обновлены серверные установки для одного проекта, и существуют другие проекты, использующие ту же конфигурацию сервера, то при открытии таких проектов об­новление их конфигураций сервера выполнится автоматически. Если необходимо использовать подобную, однако уникальную конфигурацию для конкретного про­екта, следует выполнить щелчок на кнопке Сору и при помощи мастера Copy Servers Wizard соответствующим образом отредактировать серверные установки.

Копирование серверной конфигурации

Существующую серверную конфигурацию можно скопировать с целью внесения в нее требуемых изменений.

Мобильная разработка

Поддержка мобильной разработки, ранее называемая JBuilder MobileSet, встрое­на в редакции JBuilder Developer и JBuilder Enterprise. Она выглядит как дополни­тельный выбор во время инсталляции продукта. Мобильная разработка не поддер­живается в редакции JBuilder Personal.

Мобильная разработка в JBuilder имеет следующие новые функциональные воз­можности, доступные на слранице Upload диспетчера Over the Air (OTA)

■ Флажок, который предоставляет возможность запомнить пароль. Если этот флажок отмечен, пароль будет сохраняться на диске.

■ Флажок Specify URL Prefix for JAR URL Property (Указать префикс URL-адреса для свойства JAR URL), который позволяет заменить MJDlet-Jar URL в JAD — файле на указанный префикс URL адреса перед загрузкой на сервер. Здесь же имеется текстовое поля для ввода префикса. Если флажок Override JAR URL Property (Переписать свойство JAR URL) отмечен, диспетчер Over the Air доба­вит или заменит префикс URL-адреса, определенный в JAD-файле.

Резюме по JBuiIder 9

В JBuilder 9 появилось множество возможностей, которые позволяют существен­но ускорить разработку приложений на Java, а также повысить эффективность и ско­рость самого процесса разработки.

Создание простых JSP-приложений в JBuiIder 9

(По материалам статьи Чарли Калверта "JSP Madness Part One by Charlie Calvert", Copyright (c) 2003 by Charlie Calvert, опубликованной 12 декабря 2003 года на сайте компании Borland Software Corporation, Article ID: 31847).

Начинаем: создание JSP-приложения в JBuiIder

Запустите JBuilder и создайте новый проект, выбрав в меню пункт File ∣ New Project. Появляется диалоговое окно, показанное на рис. Б 1, которое содержит мас­тер New Project Wizard. На первом шаге этого мастера щелкните на кнопке Finish, принимая все предложенные установки по умолчанию.

Рис. Б.1.

На этой странице мастера щелкните на кнопке Finish, Чтобы принять все установки по умолчанию, предлагаемые для нового проекта

Выберите в меню пункт File ∣ New. Перейдите на страницу Web галереи объектов (Object Gallery) и выберите элемент JavaServer Раде, как показано на рис. Б.2. Эта опция доступна в редакции JBuilder Professional и выше. Мастер создания JSP-cτpa — ниц JSP Wizard предлагает пройти пять шагов, которые отображаются в окне по од­ному за раз. Сейчас необходимо просто принять все стандартные установки, щелк­нув на кнопке Fin∣sh (см рис. Б. З).

рис. б.2. выбор элемента javaserver page в окне галереи объектов
<⅛ object gallery
prejet wefc ∞te <⅛hsa bute cnteransr Γeat⅛lterte wtebsenfces
сети at
w.
applet
webapphcathm ssrmi
mfebstrt strutsconverter acrionform launchtei

В результате вами была создана простая, тем не менее, вполне допустимая, JSP — страница. Для запуска ее в среде JBuilder выполните щелчок правой кнопкой мыши на файле jspl. jsp в панели проекта и выберите в контекстном меню пункт Web run using jsp1, как показано на рис. Б.4. Если все идет хорошо, приложение запускается в панели содержимого JBuilder и выглядит приблизительно как на рис. Б.5.

⅛ JSP Wizard — Step 1 of 5

jspftwn
actionfarni
рис. б.з. на первой из пяти страниц мастера jsp wizard щелкните на кнопке finish, чтобы принять все установки по умолчаниюDectere JSP and Coraponems

Ctiooee the ιotaβorι eno name βf⅛ιeJSP Weaindwhish optional Sornporitehts to create.

WehAw-

Hatite. jspl ⅛ Generate «ample bean ‘ iJSfGenerate terror page

He⅛

⅛ jsuitder 9 - c:/ternp/untitted37/defaultroot/j5pl.jspлк f* swrtt vkw prmd ⅛-
t! • »1 й βt * »-
c 'л‘ “
x¾m wtartb пиа wknouw r⅛b
⅛m√?, '⅛÷>5∙'∙ '∙^⅛^m≈!∙>⅛-χ^5k¾⅛ri⅜⅛z '~⅛⅛∙
os®⅛"β⅝mipwnki мм broomr
⅛* m-i hm <tarιj k⅜' jtamomsrem pτ<wd
l '∙",*'m'**1>f.. mm ьлаг ⅛ bmtbaituamowf
i jt ,wkk oobuoumolmf' t-⅛wmθq∣⅛b⅛⅜⅜a⅛ wΓ∙: e⅛*w⅛t

∣⅛ υ∩thl^ <m"

f⅜ jbufider 9 - cr∕temp∕uπtftfed37∕defaultroot∕jsp1.jspΛ⅛e,*∙ jouta jrandom heta
.v⅛⅛ 1' я⅛m*w> ~~a^"÷∙∙-~
iħttptflocalhost80βc∕jsp1 .jspjbuiider generated jsp⅞3⅛*5>standardmanagerf]: seeding of random number generator has been comple^⅛ contextconfigf]: added certificates -> request attribute valve '" standardwrapperfidefault): loading container servlet default
standardwrapperfiinvoker]: loading container servlet invoker httpconnector[8080] starting background thread

*⅝⅞g⅜L,,

⅛Γ Untftledirjpx ♦•Ф «Project Source» «Default WeMppi

8BW⅛’^

?& JSp⅛

Рис. Б.5. Выполнение JSP— страницы в среде JBuilder.

Заметьте, что на закладке внизу IDE-среды отображается Tomcat 4.0, А текст в нижней части панели содержимого содержит Http://Localhost:8080/Jsp Ljsp

Рис. Б.4. Запуск на выполнение JSP-страницы в среде JBuilder

WMfc VwwSomCP MsWiy * v — *

<⅛riy⅝⅜¾⅞.g.

fofders× name * χ, jcocoon-2.0.3-war clbttpodt-i.*-! lijakarta-cactjs-il-i-j lljafcarwstrlts-lo-z ~"~ ⅜⅛lana- -. ⅛s

Поиск и устранение ошибок

Все, что было рассмотрено до сих пор, ным. Единственная заморочка, которая настроенным сервером Tomcat. Tomcat представляет собой один из многочис­ленных серверов, которые поддержива­ют JSP-сраницы и Java-сервлеты. Этот качественно спроектированный и бес­платный сервер, разработанный груп­пой Jakarta, доступен по адресу http√∕ jakarta. apache. org/tomcat/index. html.

Во время обычной инсталляции JBuilder 9 копии серверов Tomcat 3.3, 4.0 и 41 должны помещаться в каталог JBuiIderSVthirdparty. где JBuilder9 представ­ляет собой имя основного каталога, в ко­торый устанавливается JBuilder. Напри­мер, в моей системе таким каталогом яв­ляется c:\bin\jb9\thirdparty (рис. Б.6).

Является достаточно простым и прямолиней — может возникнуть, связана с некорректно

* C:\bin\jb9\thtrdparty

File Edit View Favorites Toots Help

Qtocfc — Q J ^5 Search

A4⅛vts Ct∖fcιn∖ib9’∙.th! rcparty

Folders

Ll d∞

Ll dodet

* Ll extras

* Ll J2mewtkl.0.A

* OJdki-*

S £3 lib

I⅛ patch £2 redid ‘O remote

At Ll samples Ll s∙-c

* ⅛3 templates ⅛ Li thirdparty

Рис. Б.6. B Списке каталогов очень просто найти файлы серверов Tomcat, Которые были автоматически установлены во время инсталляции JBuilder

Исходя из предположения, что упомянутые файлы установлены корректно, сле­дующий шаг должен заключаться в выборе пункта меню Tools ∣ Configure Servers (Инструменты | Конфигурирование серверов) и проверке, что сервер Tomcat правиль­но сконфигурирован. Как показано на рис. Б.7, поле домашнего каталога (Ноте directory) должно указывать на расположение комплекта Tomcat JDK, которое в моей системе выглядит как CΛbin∖jb9∖thirdparty∖jakarta-tomcat-4.0.6-LE-jdk14. Поле главного класса (Main Class) должно иметь следующее значение:

Org. apache. catalina startup. Bootstrap

JBuilder спроектирован для работы с заранее определенным набором серверов. Эти сервера перечислены в списке, который находится в левой части диалогового окна, показанного на рис. Б.7. Имеется возможность установить собственную ко­пию сервера из этого списка и при помощи диалогового окна Configure Servers зас­тавить JBuilder работать с ним.

Большинство других проблем, которые могут возникать во время создания JSP — страниц, связано со вставкой некорректного кода. Тем не менее, в примере, кото­рый мы рассмотрели выше, все строки кода генерируются JBuilder автоматически, поэтому все должно пройти гладко.

Базовые основы JSP-страниц

В результате запуска мастера JSP Wizard были сгенерированы следующие порции кода:

■ jspl∙jsp HTML-файл со специальными встроенными дескрипторами. Он представляет собой часть, относящуюся к Представлению (view), в контексте архитектуры модель-представление (model∕view).

рис. б.7. диалоговое окно configure servers с выбранным сервером tomcat server 4.0. обратите внимание на значения главного класса (org.aμιche.cata}ina.startιφ.bootstrap) и домашнего каталога (c: ∖bin ∖jb9∖thirdparty ∖jakarta- tomcat-4.0.6-le-jdkl4) <⅞ configure servers fxi,.1 project *3 user home

JspiBean. Java. Исходный Java-код bean-компонента, доступ к которому осу­ществляется через специализированные дескрипторы в файле Jspl.Jsp. Он представляет собой часть, относящуюся к Модели (Model), в контексте архи­тектуры модель-представление (model∕view).

Web.Xml. Этот файл относится к невидимой внутренней работе приложения. Его содержимое определяется спецификацией Java-сервлетов.

Untitied37 .War. Это JAR-архив, содержащий все порции разрабатываемого приложения. Опять-таки, его содержимое регулируется спецификацией Java — сервлетов. Единственный архивный файл, который включает в себя все части приложения, существенно упрощает распределение конечного приложения. Просмотреть содержимое этого файла можно, развернув узел war в панели проекта JBuilder.

В листингах Б. 1 и Б.2 приведен исходный код двух главных файлов этого просто­го JSP-приложения. Чуть ниже он будет рассмотрен более подробно.

Листинг Б.1. Файл jsp1.jsp

<html>

<head>

<title>

Jspl

</titlβ>

<∕head>

<jsp:useBean id="jsplBeanld" scope="session" class="untitledl2.JsplBean" ∕> <jsp:SetProperty name="jsplBeanld" property="*" ∕>

<body Bgcolor="⅛ffffff">

<hl>

JBuilder Generated JSP

<∕hl>

<∕body>

<∕html>

Листинг Б.2. Файл JspIBeanjava

Package untitledl2;

Public class JsplBean

{

Private String sample = "Start value"; ∕∕ Пример Свойства Доступа Public String getSample()

{

Return sample;

)

∕∕ Пример Свойства Доступа

Public void setSample(String newValue)

{

If (newValue!=null)

{

Sample = newValue;

}

}

Во время создания JSP-страницы имеет смысл сфокусировать внимание на двух файлах, код которых представлен в листингах Б.1 и Б.2. Это как раз те файлы или им подобные, которые вы будете редактировать в период разработки JSP-приложе — ния. Тем не менее, придется разобраться еще и с третьим файлом, который здесь не упоминался и который генерируется скрыто, дабы завершить сборку приложения Вам никогда не понадобится не только редактировать этот третий файл, но даже и просматривать его. Однако этот файл является ключом к пониманию всей JSP-τex — нологии. После компиляции и запуска JBuilder-πpoeκτa упомянутый файл должен появиться в иерархии проекта, в позиции ClassesGenerated Source. jsp. default

Во множестве мест данной статьи я делаю предположение о существовании свя­зи между технологиями JSP-страниц и Java-сервлетов. Так уж вышло, что JSP-CTpa — ница представляет собой ни что иное, как разновидность сервлета. Так почему же я не начал с обсуждения сервлетов, а затем привел материалы по JSP-страницам? Причина состоит в том, что JSP-страницы существенно проще сервлетов. Фактичес­ки, создание JSP-страниц модет случить своего рода кратким введением в создание Java-сервлетов Технология JSP-страниц изначально призвана быть простой, к тому же она упрощает и создание сервлетов. Стало быть, имеет смысл начать с изучения базо­вых основ JSP-страниц, а затем приступать к ознакомлению с технологии сервлетов.

Сервлеты сложны вовсе не из-за сложностей их построения. Фактически, их по­строение предельно просто. Однако с сервлетами связана тенденция поощрять раз­работчиков смешивать исходный код на HTML и Java в наборе операторов println, который находится в одном файле:

Out. println(»<HTML><BODY><P>flaHHb∣e<∕P><∕BODY><∕HTML>");

Код подобного вида может оказаться исключительно трудным в чтении, особен­но если порции HTML-кода велики. К тому же нет никакой возможности изменить HTML-код, не затрагивая кода самого сервлета. Технология JSP-страниц призвана исправить подобное положение дел за счет реализации архитектуры модель-пред­ставление.

В рамках JSP-страницы код разделен на два файла различных типов. C Одной стороны, вы имеете дело с HTML-файлами наподобие Jspl.Jsp. C Другой стороны, у вас есть исходный Java-код, расположенный в отдельном файле, например, JspiBean. Java. Сервер Tomcat за кулисами генерирует третий файл всякий раз, когда вы изменяете исходный код в первых двух файлах. Третий файл представляет собой настоящий Java-сервлет, содержащий смесь Java — и HTML-кода. Ключевой ас­пект JSP-архитектуры как раз и состоит в сокрытии деталей этого файла.

В заключение этого раздела я хотел бы отметить, что в спецификации JSP-стра­ниц нет ничего такого, что запрещало бы помещать Java-код в jsp-файл, основанный на HTML, равно как и такого, что не позволяло бы внедрять HTML-код в Ьеап-ком — поненты, содержащие Java-код. Архитектура разработана таким образом, чтобы по­ощрять четкое разделение презентационного слоя и программной логики. Тем не менее, это не регулируется каким-либо набором жестких синтаксических правил. Я хотел бы подчеркнуть, что успех применения этой парадигмы в большой степени зависит о г вашей готовности сохранять Java-код в одном месте и HTML-код — в дру­гом. Если вы поддадитесь соблазну смешивать оба вида исходного кода, то потеряе­те практически всю выгоду от применения данной технологии.

Модификация JSP-приложения

На этом этапе вы уже должны четко знать, как создавать JSP-приложение в JBuilder, поэтому сейчас вполне уместно бросить беглый взгляд на общетеоретичес­кие вопросы, связанные с JSP-архитектурой. Давайте-ка, посмотрим, как модифи­цировать построенное JSP-приложение.

Код модифицированной версии JSP-приложения можно найти в листинге Б. З.

Листинг Б. З. В код, приведенный в листинге Б.1, добавлена одна строка. Эта строка осуществляет вывод значения свойства Sample, Которым располагает Ьеап- компонент, показанный в листинге Б.2.

<html>

<head>

<title>j spl<∕title>

<∕head>

<jsp:useBean id=”jSplBeanId" scope="session" class="untitled36.JsplBean"∕>

<jsp:SetProperty name="jsplBeanld" property="*" ∕>

<body bgcolor="#ffffff">

<hl>JSP-cτpaHκua, Сгенерированная JBuilder<∕hl>

<р>Данные из Bean-компонента:

<j sp: getProperty name=" j splBeanId" property=" sample " /Xp>

<∕Body>

<∕Html>

Первое замечание касается общей структуры этого файла. HTML-дескрипторы HTML, Head, body и Hl Не изменены. Первой строкой, выглядящей несколько нео­бычно, является:

CjspruseBean Id="JsplBeanld" Scope="Session" Class="Untitled36.JsplBean"∕>

Этот код использует простой XML-формат для визуализации дескриптора JSP — страницы. Обратите внимание на ссылку на пространство имен Jsp И на дескрип­тор UseBean Jsp: UseBean. В данном случае дескриптор UseBean Принимает три ар­гумента: Id, Scope И Class. Атрибут Class Указывает имя Ьеап-компонента, кото­рый необходимо Использовать. Атрибут Scope Задает диапазон, в рамках которого этот дескриптор будет доступен. В нашем конкретном случае определение говорит о том, что дескриптор будет действителен на протяжении всего Сеанса. И, наконец, атрибут id определяет способы ссылки на это объект из других частей кода. Атрибут id имеет ту же функциональность, что и классическое объявление идентификатора или переменной в стандартных языках программирования, таких как Java, Pascal или С. Конечным результатом нашего оператора будет идентификатор Id С именем JsplBeanld, Ссылающийся на экземпляр Ьеап-компонента, код которого приведен в листинге Б.2.

После модификации выполняющееся приложение приобретает вид, показан­ный на рис. Б.8.

f ∙ jbiriider 9 г/documents and setfirwj*∕chðfhezjbprojert∕u∏τit1ed12∕def, ⅛ fe∏ к j
fbe edt seercb viow project run team wizards took window hifc
 
-” 3⅛⅜>⅛-to v - ≠m∣∙∙ * *{<
 .*∣38⅛p11 ×jtbjjpιβ∙∙nj xjbwbi
 l⅛*l⅛ k jhι^mocirrΣnβb⅛tj≈p
jbuiider generated jsp
dtrtr from tħe bean: start value
h l j⅛m2jpχ ⅛<ft *>prθ(βd source» ½'s)>ιrttte<fl2 æ ts <detsu⅜ webapp-
⅞⅛ jspl bear) >vβ
‘ <p ιrtf⅛012mιrt 
 ⅛0toayost6q60⅜sp1jsρ _ ................
 scurcojvtew ⅛⅝⅛⅛⅛wjv⅝o vw sourwf hstcryl~
рис. б.8. теперь в jsp-странице выполняется доступ к стандартному свойству ьеап- компонента, сгенерированному соответствующим мастером jbuilder. это свойство возвращает значение "start value"

Обратите внимание на строку в середине окна вывода, которая выглядит как

"Data from the bean: Start Value"

("Данные из Bean-компонента: Start Value”)

Строка до двоеточия генерируется HTML-кодом на презентационном слое, а значение после двоеточия выдается Java-кодом стандартного bean-компонента, сге­нерированного соответствующим мастером JBuilder.

Вот часть JSP-страницы, которая извлекает данные из Ьеап-компонента: <Jsp:GetProperty Name="JsplBeanld" Property="Sample"/>. Обратите внима­ние, что этот код записан в XML-формате. Объявлено пространство имен jsp, а за­тем осуществляется ссылка на дескриптор GetProperty. В этом примере дескриптор поддерживает два атрибута: name и property. Поле Name Определяет имя вызывае­мого объекта, а поле property — свойство этого объекта, на которое необходимо со­слаться. Ссылка на имя вызываемого объекта осуществляется через свойство id об­сужденного ранее дескриптора Jsp:UseBean.

Дабы лучше понять сказанное выше, давайте посмотрим на сам Ьеап-компонент, код которого приведен в листинге Б.2:

Public class JsplBean

{

Private String sample = "Start value";

∕∕ Код опущен

}

Несложно заметить, что JspiBean Имеет одно свойство с именем Sample. Если внимательно посмотреть на код в листинге Б.2, то легко увидеть, что для доступа к этому свойству реализованы общедоступные get — и set-методы. К этому моменту вы уже должны быть в состоянии разобрать дескриптор GetProperty.

<jsp:getProperty name="jsplBeanld" property="sample"∕>

В этом коде просто осуществляется ссылка на свойство Sample Экземпляра клас­са JsplBean.

Модификация содержимого Ьеап-компонента

Давайте добавим в JSP-файл еще три строки кода:

Cform action=”jspl. jsp" method=’"post">

<input type="text" name="sample" valuβ="CjSpzgetProperty name="j spIBeanId" property="sample"∕>">

<Input Type="Submit">

После добавления означенного выше кода приложение во время выполнения приобретет вид, показанный на рисунках Б.9 и Б. 10. Полный исходный код JSP — файла можно найти в листинге Б.4.

Листинг Б.4. Модифицированный код JSP-страницы

<html>

<ħead>

Ctitle>

Jspl

<∕title>

<∕head>

CjspiuseBean id="jsplBeanld" scope="session" class="untitledl2.JsplBean" ∕> CjspzsetProperty name="jsplBeanld" property="*" ∕>

Cbody bgcolor="#ffffff">

Chl>JSP-cτpβHMua, Сгенерированная JBuilderC∕hl>

Ср>Данные из Ьеап-компонента:

CjspzgetProperty name="jsplBeanld" property="sample"∕>Cp>

Cform action="jspl. jsp" method="post">

Cinput type="text" name="sample" Value=nCjspzgetProperty

Name="j splBeanld" property="sample"∕>">

Cinput type="submit">

C∕body>

CHtml>

qf jrtnlrter 9 f ιΛ)∏riιmeπts and sehingszchafctezjbprojeci/*,. i ∙jcj⅛⅛ c⅛ joiiildei 9 cfltocumtnb <tnj5ettι∣,gs∕char∣ie∕jbptujfcctfl., ⅛w . д ■
i ιe . № 5βe∙' « го, « f.j∩ ream jjerds 1 к s u.'l"d.'' h-ip
tɪ & е ∙ ¾ в ∙~e∏ <* % « ⅛
в ’ ❖ ♦ > zj« ⅛⅝⅛∙ s s- -t⅛-⅛-
s © e & ..t x « wfl j x[jξ⅛ jsptbeenj xjowebf
't⅜ untltledl 2⅜κ
⅛' «project source,
si 3s uπtitled12
ж t⅞ «deter* v⅝⅛b⅛pp>
-t⅛ jspibeenjeve «в unbtlβdl2hml 1 ф ♦ 8 ■ jhhp kocetiosteoawijap
jbuiider generated jsp
dala from the bean: start value
 ∣stjrtva]u∙ jwjbfnit . j
i
i ⅛⅜xa⅛⅛aθbt¾⅜p1 jap ~
г soυrce)∖4ew vtebvtew i vtebvtew source htsiorv }
 

.⅛e edit search view pr
5g⅛⅞κa
mt.
я - Φ ♦ j<
a? s- is ðr * oject run team wizards took window help
i⅛,*4 "<∙ ⅝ b .⅛,
zi⅝ ¾¾⅛∙ifc h * fe - fe -
χ, s i)*p1 i k*jsplbeen: x *9webj
p uπwted12jpx
⅛ «project source»
ж ⅜ urrtlled12
rt= ∣⅛∣ oelaut vtebapp>
• sfcibsbs
= sfc. spibeanjava i υntrtted12jτtml i Φ ♦ @ i jh⅜xmocβtκnt 80βo∣w>1 w>
jbuiider generated jsp
data from the bean: modify bean data
 ∣mcdrfy baao data submit ∣
 ,hhpjΛθcβdhosteθecmsp1 jsp
 so⅜rcefvtew^ vmeb vfewj vteb view source j hstorγ ‘

рис. б.9. вот как выглядит панель содержимого jbuilder после первого запуска на выполнение измененного jsp-приложенияРис. Б.10./4 Так выглядит JSP-приложение после того, как в поле ввода была набрана строка Modify Java Bean. Обратите внимание на кнопку Submit, Щелчок на которой обес — ечивает изменение значения поля Sample

Добавленный код определяет форму в HTML-файле. Форма ссылается на стра­ницу, на которой она отображается: Action="Jspl. Jsp”. Другими словами, щелчок на кнопке submit формы завершает внесение изменений именно на этой странице, а не на какой-нибудь другой. В состав формы входят поле ввода и кнопка отправки submit. Заметьте, что значение, отображаемое в поле ввода, поддерживается свой­ством Sample Bean-компонента. Щелчок на кнопке submit приводит к изменению этого свойства.

По сути дела, кнопке submit завершает архитектуру модель-представление, до­бавляя в нее контроллер. Часть, касающаяся контроллера в рамках архитектуры мо — дель-представление-контроллер, — это именно та часть, которая отвечает за взаимо­действие между моделью и представлением. Когда пользователь щелкает на кнопке submit, эта связь активизируется, а код внутри bean-компонента вызывается. Это очень простой пример того, как при помощи HTML-файла можно погрузиться в ло­гику, реализуемую Java-приложением.

Не следует забывать, что HTML-код находится на стороне клиента, а Java — класс — на стороне сервера. В действительности отношение между клиентским HTML-кодом и серверным Java-кодом — практически то же самое, что и между HTML-кодом и CG!-приложением. В частности, имеет место ощутимая задержка, связанная с отправкой информации из HTML-файла на сервер, ее обработкой Java- сервлетом и передачей обратно в форму, находящуюся на новой HTML-странице. В таком смысле данная архитектура аналогична архитектуре, присущей CGI-прило­жениям. Преимущества данной архитектуры по сравнению с CGI-архитектурой двояки:

1. Наличие очень стройного и интуитивно понятного интерфейса между HTML-кодом с элементами JSP и логикой, которая остается на сервере.

2. Код на сервере все время находится в памяти, так что накладные расходы, связанные с постоянной загрузкой экземпляра CG!-приложения в память, отсутствуют. Тем не менее, задержка все же имеет место, особенно при первом доступе к приложению Просто в этот момент сервер Tomcat компонует на сервере JSP-страницу и bean-компоненты с целью генерации исходного кода сервлета. Затем он компилирует сервлет и загружает его в память, где он будет находиться вплоть до его модификации или завершения.

Конечным результатом будет очень быстрое и мощное Web-приложение, которое очень просто собирать и, по крайней мере, потенциально, просто сопровождать. Простота в сопровождении существенно зависит от готовности разработчиков обес­печивать разделение слоев презентации и логики в рамках JSP-приложения.

предметный указатель в

По умолчанию рамка любого компонента имеет размер 0. Раздел External Insets находится в правом верхнем углу редактора GridBagConstraints. Мы установим вне­шние рамки всех кнопок по пять пикселей с каждой из четырех сторон (Top, Left, Bottom и Right — сверху, слева, снизу и справа). Для этого выйдите из диалогового окна редактора GridBagConstraints и с помощью клавиши Shift и мыши выберите все четыре кнопки в панели структуры. Теперь в кон­

Структоре щелкните на одной из этих кнопок, вы­берите в появившемся контекстном меню пункт Constraints и введите значение 5 во все четыре поля раздела External Insets.

После того как вы щелкнете на кнопке OK, кнопки примут требуемую конфигурацию.

А сейчас, после создания нашего компонента, нужна еще одна, заключительная настройка, кото­рая состоит в установке привязок веса (weight constraints), обозначаемых как weight× и weighty Привязки веса управляют реакцией компонентов на пустое пространство вокруг них. В частности, они влияют на способ заполнения пустого про­странства, которое может возникнуть при изме­нении размеров окна. Они гарантируют, что ком­понент всегда будет занимать определенный процент доступного пространства, когда окно ста­новится большим или меньшим.

Вес похож на дыры в налоговом законодатель­стве, с помощью которых богачи в хорошие време-

Слушателю

Package Custommessagesender. poet;

Import java. util.*;

Import com. elvenware. codebox. FileBox;

Import java. net.*;

∕**

* <p>Kπacc для работы с данными о метафизическими поэтами.<р>

* <р> Для работы с ним вызовите последовательно getURL, getPoet, getSite и

* getDate.<∕p>

*

* <p>Copyright: Copyright (с) 2002 Charlie Calvert<∕p>

* <p>Company: Elvenware<∕p>

* @author Charlie Calvert

[‡] Sversion 1.О */

Public class PoetEvent extends EventObject

[§] ⅝) hath: l∩l*0 i SloMatinlraO & l∣ value chakrachajflO)

Mm«t Жни* a∣3i∙r Ж131» V

Aκ∣-∙∙ s∏

. a∣p∙y. .ɪl

Важно здесь то, что я добавил пакет com. elvenware. comp. clock в свой путь. Чтобы это сделать, в диалоговом окне, показанном на рис. 36.2, я указал ссылку на G:\arcjava\jbbook\src\personal.

Fp DrawClockjpx j ⅛ √> Clockθ2

∣ ~4k∙ ClockTestjava t-4⅛ Frame1 Iava

; =4⅛ CiockPositionjava f∙ DrawCIockjava h⅛ DrawPieceClock02java ) j-⅜ EIfCIockjava

[‡‡] ∙ ∣⅛. ElfciockBeanInfojava

H Standard Doclet i∙~4b. CIockTestjava : 4k Frame1 java

Рис. 36.3. Вот так выглядит панель проекта для программы DrawClock После перемещения э ‘’ементов компонента Clock В состав пакета

Com. elvenware. comp. dock

Если ваша система настроена так, как показано на рис. 36.2, JBuilder сможет найти все классы, сохраненные в каталоге ∕src∕personai, и использовать их в ва­шем проекте. По сути, он помещает пакеты, на которые вы указываете, в путь к ис­ходному коду. В то же время он решит ваши проблемы с путями классов, по крайней мере, в рамках текущего проекта.

Однако JBuilder не обязательно поместит или переместит новые классы в каталог src∕personal. Дело в том, что src∕personal не является каталогом по умолчанию. В результате, если вы выберете в меню пункт File ∣ New Class и попросите поместить файл в каталог com. elvenware. comp. clock, код может оказаться в следующем месте:

∕jbbook∕JavaBeans∕DrawClock∕src∕com∕elvenware∕comp∕clock

Это не то, чего вы хотели добиться; вы надеялись поместить код в каталог:

∕jbbook∕src∕personal∕com∕Elvenware∕comp∕clock

Чтобы код оказался в надлежащем месте, установите каталог ∕src∕personal в ка­честве каталога по умолчанию и поместите его в начало списка, как показано на рис. 36.4.

Я знаю, что это разнесение файлов по своим каталогам и настройка всех пакетов добавляет определенный слой сложности в задачу создания компонента часов. Од­нако назначение этой книги состоит на самом деле не в том, чтобы научить вас со-

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *