Практика реализации модуля интеграции для Rational Software Architect. Часть 2

Источник: developerworks
Александр Новичков, руководитель отдела внедрения и консалтинга, СМ-Консалт, Алексей Черников, ведущий специалист отдела перспективных разработок, СМ-Консалт

В появившемся окне выбираем "Browse…", а затем находим папку с декомпилированным CQJNI, и ставим на ней галочку в диалоговом окне импорта. В поле "Into folder" вводим "CQJNITest/com/rational/clearquest/cqjni" (Рисунок 4).

Рисунок 4. Окно с настройками импорта, импорт классов CQJNI
Рисунок 4. Окно с настройками импорта, импорт классов CQJNI

После этого можно нажимать "Finish", и в нашем проекте появится package с именем "com.rational.clearquest.cqjni", где будут лежать все декомпилированные классы.

Осталось их подправить, чтобы не было ошибок компиляции. Должно получиться два класса с такими ошибками: CPUCount и CQJNIBaseObj.

В CPUCount в единственном статическом методе стоит убрать всё после return, и добавить throws ClassNotFoundException в объявление метода.

В CQJNIBaseObj метод procedureHashCode можно переписать, например, так:

    public static int procureHashCode()
    {        
        synchronized(m_classLock)
        {        
            _hashCode++;
            return _hashCode;
        }
    }

Будет ещё один проблемный метод в этом классе - _mthclass$. Он абсолютно такой же, как неработающий метод в CPUCount, поэтому нужно произвести те же модификации, что мы делали для CPUCount.

Осталось создать простой тест, чтобы убедиться, что всё правильно работает в IBM Rational Software Architect :

import com.rational.clearquest.cqjni.CQAdminSession;
import com.rational.clearquest.cqjni.CQClearQuest;

public class Test{
	public static void main(String[] args) throws Exception{		
		CQClearQuest cq = new CQClearQuest();
		CQAdminSession as = cq.CreateAdminSession();
		System.out.println(as);
	}
}

Разработка plug-in"а для интеграции IBM Rational ClearQuest и IBM Rational Software Architect 

Создадим plug-in для RSA, который будет обращаться к ClearQuest и выполнять функции, описанные во введении к данной статье.

Требования к реализации

Разрабатываемый plug-in должен обеспечивать следующие (минимальные) функции:

  1. открыть сессию IBM Rational ClearQuest ;
  2. провести анализ матрицы переходов для сущности;
  3. визуализировать их в RSA в виде State-диаграммы UML.

Создание и настройка plug-in"а

Заходим в File - New - Other, и выбираем plug-in project (Рисунок 5).

Рисунок 5. Окно создания нового проекта, выбор проекта типа plug-in
Рисунок 5. Окно создания нового проекта, выбор проекта типа plug-in

Назовём проект "RSACQIntegration". Наш plug-in будет доступен через основное меню. Plug-in типа "Hello World" сам создаст новый пункт меню с названием Sample Menu и пунктом "Sample Action", реагирующий на нажатие открытием диалогового окна, поэтому это будет удобно использовать в качестве базы (Рисунок 6).

Рисунок 6. Окно с шаблонными типами plug-in"ов, выбор plug-in"а, расширяющего Menu Bar
Рисунок 6. Окно с шаблонными типами plug-in

В принципе, остальные возможные настройки нам сейчас не очень интересны, поэтому можно нажать Finish.

Читать часть 3


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=23177