Статьи

Glassfish и OSGI, часть I: взгляд на разработку Glassfish V3 с Eclipse 3.4


Архитектура Glassfish V3 приняла Felix OSGI Runtime в качестве микроконтейнера.
В серии статей я рассмотрю «Glassfish and OSGI». Целью этого является исследование того, как принять OSGI в качестве микроконтейнера сервера приложений. Как разработчик промежуточного программного обеспечения, во-первых, я уделяю больше внимания созданию сред разработки. В этой статье я покажу, как использовать Eclipse 3.4 в качестве платформы разработки Glassfish V3 на основе моего опыта.

Подготовка инструментов, связанных со строительством и развитием V3

  • J2SE 6

    Загрузите J2SE 6 с http://java.sun.com/javase/downloads/index.jsp и установите переменные среды JAVA_HOME и системный путь.

  • SVN

    Скачать Черепаху SVN с http://tortoisesvn.tigris.org/ . Добавьте исполняемую команду svn в переменную среды System Path. Примечание: если вы используете частную сеть (или находитесь за прокси-сервером), вы должны настроить параметры сети SVN.

  • Maven 2

    Загрузите Maven 2.1.0 с http://maven.apache.org/download.html и настройте Maven 2 в соответствии с инструкциями по установке на сайте Maven. Примечание : если вы используете частную сеть (или находитесь за aproxy-сервером), вы должны настроить элемент «Proxy» в файле $ Maven_HOME / conf / setting.xml.

  • Eclipse

    Загрузите Eclipse 3.4 с http://www.eclipse.org/downloads/.

  • Подключаемый

    модуль Eclipse Поскольку Glassfish V3 полностью интегрирован с Maven 2, и если вы используете подключаемый модуль Eclipse Maven 2, интеграция между Glassfish v3 и Eclipse будет более дружественной. Вы можете использовать плагин Maven 2, чтобы четко наблюдать зависимости между OSGI Bundles. Я рекомендую установить подключаемый модуль M2Eclipse с http://m2eclipse.sonatype.org/update с помощью диспетчера обновлений Eclipse.

 

Проверьте Glassfish V3 SRC

Откройте командную оболочку или воспользуйтесь графическим инструментом Tortoise SVN, чтобы выполнить следующую команду:

svn checkout https://svn.dev.java.net/svn/glassfish-svn/trunk/v3
 

Создание файла проекта V3 в Eclipse IDE

Для этого шага я сначала обратился к следующим инструкциям:  http://wiki.glassfish.java.net/Wiki.jsp?page=V3DevelopmentInstructions

Откройте командную оболочку и найдите домашний каталог GlassFish v3 src, который извлекается с помощью 2 шага. Затем выполните следующую команду:

mvn -DdownloadSources = true eclipse: eclipse

Если проблем нет, вы увидите следующий результат.

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] GlassFish Parent Project .............................. SUCCESS [12.234s]
[INFO] Super POM for Java EE API modules ..................... SUCCESS [3.937s]
[INFO] javax.enterprise.deploy API v.1.2 ..................... SUCCESS [0.625s]
[INFO] javax.transaction API v.1.1 ........................... SUCCESS [0.203s]
[INFO] Java EE API modules repackaged as OSGi bundles in GlassFish SUCCESS [0.0 32s]
….
[INFO] Glassfish Full Bundle ................................. SUCCESS [57.813s]
….
[INFO] Embedded GlassFish .................................... SUCCESS [0.016s]
[INFO] Embedded GlassFish API ................................ SUCCESS [11.031s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 59 seconds
[INFO] Finished at: Tue Mar 24 10:16:51 CST 2009
[INFO] Final Memory: 75M/254M
[INFO] ------------------------------------------------------------------------

Вы только что успешно сгенерировали файл проекта Eclipse V3 (файл .project), и вы можете найти подкаталог GlassFish v3 src (например, V3_SRC \ admin \ cli) и найти файл .project.

Импортировать модуль V3 в Eclipse

В настоящее время вы можете импортировать модуль V3 в Eclipse, нажав Файл-> Импорт->…. Затем вы можете использовать плагин M2Eclipse для «включения управления зависимостями». M2Eclipse может использовать M2_REPO для загрузки пакетов OSGI из локального репозитория Maven (по умолчанию M2_REPO — ~ / .m2 / repository).

Затем вы можете просматривать и разрабатывать свои пользовательские функции в Eclipse JDT. На следующем рисунке моя среда разработки v3 после успешной настройки.

Хорошей особенностью M2Eclipse является то, что вы можете четко видеть отношения зависимости между OSGI Bundles. Пожалуйста, смотрите следующую картину:

Примечания для обсуждения

 

  • Compile Modified Code

    I have tried compiling the modified code(eg. Admin Cli module) using the “Maven Compile” Phase integrated in the Eclipse JDT(which is supported by M2Eclipse). However, The result is not as expected. The following compile error appears:

    -----------------------------------------------------------------------------------
    Artifact-Id: admin-cli
    Version: 3.0-SNAPSHOT
    From file: E:\workspace\IBAS\Education\ApplicationServer\glassfishV3\Build\V3_SRC\admin\cli\pom.xml

    Reason: Unable to lookup component 'org.apache.maven.plugin.Mojo', it could not be created. role: org.apache.maven.plugin.Mojo roleHint: com.sun.enterprise:hk2-maven-plugin:0.3.48:hk2-compile classRealm: /plugins/com.sun.enterprise:hk2-maven-plugin:0.3.48@48/thread:main

    Root cause: com.sun.mirror.apt.AnnotationProcessorFactory

    Does anyone have any suggestions for this problem. How can you compile and debug a V3 Module in the Eclipse JDT?

  • Build V3 Code

    I should to point out that if you are building V3 behind the proxy server or suffering from file size bandwidth limitations , you may need to download some zip/bundle files manually and place these bundles into your local maven repository(By default, M2_REPO is ~/.m2/repository).

I will dicuss the GlassFish v3 module’s building lifecycle in the next article.