Александр Новичков, руководитель отдела внедрения и консалтинга, СМ-Консалт, Алексей Черников, ведущий специалист отдела перспективных разработок, СМ-Консалт
В появившемся окне выбираем "Browse…", а затем находим папку с декомпилированным CQJNI, и ставим на ней галочку в диалоговом окне импорта. В поле "Into folder" вводим "CQJNITest/com/rational/clearquest/cqjni" (Рисунок 4).
Рисунок 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 должен обеспечивать следующие (минимальные) функции:
- открыть сессию IBM Rational ClearQuest ;
- провести анализ матрицы переходов для сущности;
- визуализировать их в RSA в виде State-диаграммы UML.
Создание и настройка plug-in"а
Заходим в File - New - Other, и выбираем plug-in project (Рисунок 5).
Рисунок 5. Окно создания нового проекта, выбор проекта типа plug-in
Назовём проект "RSACQIntegration". Наш plug-in будет доступен через основное меню. Plug-in типа "Hello World" сам создаст новый пункт меню с названием Sample Menu и пунктом "Sample Action", реагирующий на нажатие открытием диалогового окна, поэтому это будет удобно использовать в качестве базы (Рисунок 6).
Рисунок 6. Окно с шаблонными типами plug-in"ов, выбор plug-in"а, расширяющего Menu Bar
В принципе, остальные возможные настройки нам сейчас не очень интересны, поэтому можно нажать Finish.
Читать часть 3
Ссылки по теме