2011년 12월 31일 토요일

Jazz Application Framework Overview

https://jazz.net/wiki/bin/view/Main/JAFIntroduction




When building an application using JAF, it is helpful to simplify the topology and think about the following pieces:
-
When building an application on the Jazz platform, there are two distinct kinds of shared implementation capabilities:
  1. Integration services, which can be employed for the purpose of integrating tools. These integration services should have the same loosely-coupled, protocol-driven characterstics as OSLC.
  2. Application frameworks, which can be used to develop Jazz-based products from the ground up. These frameworks may make use of the integration services. 
The Jazz Application Frameworks (JAF) aims to provide:
  1. Architectural guidance for designing new Jazz products that have a common look, behavior and collaboration capabilities.
  2. An JAF SDK in the form of an empty OSGi application shell that provides a framework for a richer, more dynamic and layered application.
    참고: https://jazz.net/wiki/bin/view/Main/JAFSdkContents
  3. A set of reusable features packaged as OSGi bundles that can optionally be embedded in the SDK to provide a range of common functionalities, including Web UI frameworks or toolkits, process capabilities, a persistance layer with query capabilities, reporting and data warehousing, and others.
  4. A set of low-level common utils and libraries that can be deployed as OSGi bundles or plain JARs. For example, OAuth helpers, Jazz HTTP clients.
  5. A Jazz Team Server (JTS) providing common user admininistration, delegated authentication, licensing, dashboards, and data warehousing to the applications associated with it.
-

Jazz Application Framework Transition

https://jazz.net/wiki/bin/view/Main/JAFSdkTransition

FROM
  • an application that was developed with the older Application SDK 3.x.x.x, using functional services from a shared Jazz Team Server (JTS).
  • The Application SDK included a framework for defining application REST services. Application services were declared in plugin.xml files as extensions of the com.ibm.team.jfs.app.restServices extension point, and implemented as extensions of the com.ibm.team.jfs.app.RestService class.
  • Fronting applications only needed to build against a few Foundation features: 
    • com.ibm.team.jfs.sdk.runtime.feature 
    • net.jazz.ajax.app.jfs.feature 
    • net.jazz.ajax.app.jfs.feature 


TO
  • use the new JAF SDK 4.x.x.x, using local functional services and data storage.
  • the JAF SDK includes the Jazz OSGi services framework (see the HelloJAF tutorial for a brief introduction).
  • the JAF SDK is considered to be this set of features:
    • com.ibm.team.app.server.jfs.feature
    • com.ibm.team.dashboard.server.jfs.feature
    • com.ibm.team.gateway.server.jfs.feature
    • com.ibm.team.jazz.server.feature
    • com.ibm.team.process.server.jfs.feature
    • com.ibm.team.reports.server.jfs.feature
    • com.ibm.team.repository.server.jfs.feature
    • com.ibm.team.repository.services.jfs.feature
    • net.jazz.ajax.app.jfs.feature
    • net.jazz.ajax.jfs.feature 


https://jazz.net/wiki/bin/view/Main/JAFSdkIntroduction


Jazz Application Frameworks SDK

One of the primary deliverables of the Jazz Application Frameworks is an SDK for building applications. This SDK takes the form of an empty OSGi application shell that provides a framework for a rich, dynamic layered application. Applications embed functional services from this SDK, which they invoke locally. Some integration services, such as user management, licensing and authentication, are delegated to a Jazz Team Server (JTS) which may be shared amongst multiple applications. This SDK will be part of the Jazz Application Frameworks 4.0 release.

The history of the SDK

A brief word is required here to explain the multiple SDKs which exist, and where the JAF SDK fits in to the story.

Jazz 0.6 SDK

The "0.6 SDK" included local execution of functional services in an OSGi application. It included a repository service framework, a persistence story, process, reporting, Web UI, and dashboards. Such an application has a local database for storage. RTC and RQM are based on the Jazz 0.6 SDK.

Application SDK

The Application SDK described OSGi or pure Java "fronting applications" which rely on a shared JTS for functional services such as storage. It communicated with the JTS using REST to consume these services. RRC is a fronting application based on the Application SDK.

JAF SDK

In 2012, the preferred approach for building applications on JAF is changing. Instead of creating fronting applications that consume functional services from a shared JTS, applications will embed the functional services and invoke them locally. There are a number of advantages to this approach, including reducing the load on the JTS and unifying two SDK stories into one. The JAF SDK is essentially the 0.6 SDK, with some compatibility and transition add-ons to aid applications which are currently build on the Application SDK. Applications will continue to use the JTS for integration services.

-

2011년 12월 30일 금요일

Jazz 로그


서버 로그

  • 째즈서버 로그 : jazz/server/logs/jazz.log
  • 톰캣서버 로그 : jazz/server/tomcat/logs/*.log


서버 로그를 영문으로 캡처하는 방법

  • 톰캣 : \jazz\server\server.startup.bat 파일을 수정
set JAVA_OPTS=%JAVA_OPTS% -Duser.language=en -Duser.region=US
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true
...



Jazz 빌드엔진을 영문으로 띄우는 방법

\jazz\buildsystem\buildengine\eclipse\jbe.ini 파일을 수정합니다.
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Duser.language=en
-Duser.region=US




Jazz 웹 자바스크립트 에러 로그를 캡처하는 방법

1. 디버그 모드를 활성화하는 방법

https://host:port/jazz/web/projects/ProjectArea?debug=true#action=com.ibm.team.workitem.viewWorkItem&id=131615

2. Firebug를 통한 javascript 콘솔 로그를 잡는 방법



클라이언트 로그

  • 이클립스 로그 : 작업공간\.metadata\.log


이클립스 영문로그를 캡처하는 방법

\jazz\client\eclipse\eclipe.exe의 바로 가기를 만들고, 바로 가기의 속성창에서
대상에 \jazz\client\eclipse\eclipse.exe -nl en_US 를 추가해 줍니다.



SCM - 소스코드 엑세스 로그

https://jazz.net/wiki/bin/view/Main/SCMScaa


In your RTC deployment, you may wish to log access to the File content in your repository, for traceability rationale. While this support is disabled by default, it can be enabled through the use of log4j.

To enable logging, uncomment the following section from the bottom of of jazz/server/conf/jazz/log4j.properties


#log4j.appender.scm_scaa=org.apache.log4j.RollingFileAppender #log4j.appender.scm_scaa.layout=org.apache.log4j.PatternLayout #log4j.appender.scm_scaa.layout.ConversionPattern=%m %n #log4j.appender.scm_scaa.File=scaa_content.log #log4j.appender.scm_scaa.MaxBackupIndex=10 #log4j.appender.scm_scaa.MaxFileSize=7000KB 
#log4j.logger.scm_scaa=TRACE, scm_scaa


This will create a scaa_content.log file in jazz/server/logs. The log will be rotated between 10 files of 7MB each.
Logging will occur as users access content from the server. Nothing will be written to the logs if there is no user activity.
To process this data for use in another tool, you should convert this configuration FileAppender and pipe the file into the script or program.

The format of the log entries are as follows:


SCAA:{0}/{1},{2},{3},{4}/{5},{6}


where :
  • {0} is the contributor's userid
  • {1} is the item type (in RTC 2.0, most commonly FileItem?)
  • {2} is the last segment of the item's path (Foo.java)
  • {3} is the item's identifier
  • {4} is the item's state or version identifier
  • {5} is the component's name or label
  • {6} is the component's identifier
While there is not a huge overhead to logging content access, the logfiles can grow fairly large quickly. In the default configuration, it may take less than a day for the 10 logfiles to completely rollover, depending on the number of developers and build engines your server hosts.

Jazz 서버 - 로그인/엑세스 로그

-

  • JTS : login information in the server log.
  • Tomcat : \server\tomcat\logs\localhost_access_log.yyyy-mm-dd - pick out some information about login from the tomcat local access log.
  • WAS : C:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv01\logs 

-


RTC를 이용한 Code Review Process

Project configuration
  • Precondition : "Require Work Item Approval" 
  • for "Deliver (client)" operation 
  • for "Everyone" role. 
  • In the "Required approvals", for the "Review" type, at least one from "Everyone" role (or "Team Member" role) is set. 
  • "User may overrule" may also be checked if not all code delivery may require a review process. 


Scenario
There are three developers - D1, D2 & D3 - all using RTC Eclipse client.

  1. D1 does the code change for files f1 & f2 in her local workspace and saves them. f1 and f2 appears as unresolved in the pending changes view. 
  2. D1 checks-in f1 & f2 into a new change set "CS". 
  3. Right clicks on "CS" and select "Submit for Review" menu option and associate to a WI (existing or a new one) and select approvers - D2 as the approver for f1 review (subject field is used to tell what to review) and D3 as approver for f2 review. 
  4. The approval/Review process will be in the pending state. 
  5. D2 & D3 gets intimation of the review task assigned to them through a query - "Pending approvals for me". 
  6. D2 opens the WI and in the Links section, double clicks on the f1 in the change set and see the diff in the Change Explorer. Does the review. Optionally, adds comment for D1 in the discussion field of the WI. Changes the Review approval state from pending to approved. 
  7. D3 follows the same process as D2 but rejects because the f3 code change is not acceptable. Changes the Review approval state from pending to rejected. 
  8. D1 gets the review comment via email/feed - because D1 is the owner and the subscriber of the WI. 
  9. D1 fixes the code in f2 based on D3's review and checks in to the same changeset. 
  10. D1 adds D3 again for the new review approval in the same WI. 
  11. D3 gets intimation of the review task assigned to him through a query - "Pending approvals for me". 
  12. D3 opens the WI and in the Links section, double clicks on the f2 in the changeset and see the diff in the Change Explorer. Does the review. Optionally, adds comment for D1 in the discussion field of the WI. Changes the Review approval state from pending to approved. 
  13. D1 gets the review comment via email/feed - because D1 is the owner and the subscriber of the WI. 
  14. D1 delivers the changeset (or invokes "Complete" action on the changeset) because all the approvals in the WI are in approved state. 
  15. The complete history of the code review process (rejected ones, approved ones) are in the "Approvals" tab.

제안 https://jazz.net/wiki/bin/view/Main/SCMChangeSetReview
-

SCM - 베이스라인 BOM CLI


https://jazz.net/wiki/bin/view/Main/SCMCommandLineBillOfMaterials

This story is to support the following workflow with the RTC Command line:
  1. A user will be able to navigate to a baseline or snapshot using scm list command
  2. A user will be able to run a command to output a listing which describes the configuration as follows
    • for every item in the snapshot/baseline, we print a row which describes the path, item-id & state-id
A user will be able to extract a particular content from the repository using the state-id as a selector


참조 : When storing a reference to another item, RTC store an item handle, which is: item type + item UUID [+ optional state id (if referring to a particular state of an auditable item)].

IItemHandle handle = IComponent.ITEM_TYPE.createHandle(uuid, null);
ITeamRepository repo = ...;
IItem item = repo.itemManager.fetchCompleteItem(handle, IItemManager.DEFAULT, null);
IItemType type = item.getItemType();
System.out.println("Simple type name: " + type.getName());
System.out.println("Type's namespace: " + type.getNamespaceURI()); 

-
웹브라우저 이용시
- copy the UUID
- paste it into a URL of the form:
/resource/itemOid/com.ibm.team.scm.Component/_DC6QYM0yEd2CTNaxDdYRfg?_mediaType=text/xml
(replacing the UUID there with yours)
- open this in a web browser
- there the XML should indicate the type




  • URI format for IVersionedContentService is:

//content/////

  • URI format for IFilesystemContentService is:
https://:/jazz/service/com.ibm.team.filesystem.service.internal.rest.IFilesystemContentService/-/COMPONENT_UUID/filename.txt?itemId=RESOURCE_UUID&stateId=RESOURCE__STATE_UUID&platformLineDelimiter=CRLF

CQ OSLC CM 2.0 REST API

https://jazz.net/wiki/bin/view/Main/CqOslcV2

OSLC 란?
OSLC는 소프트웨어 딜러버리 라이프싸이클 관련 리소스 및 인터페이스 표준화 관련 커뮤니티입니다. 이를 통해 ALM 도구 간의 통합을 지원합니다. 다른 한편으로 CQ 같은 하나의 도구의 리소스를 작업하기 위한 API로 사용할 수 있습니다.
더 자세한 정보는 http://open-services.net/.

REST 란?
REST는 아키텍처 스타일로서
  • 리소스는 URI를 가집니다.
  • 리소스는 다양한 표현을 가집니다.
  • 리소스는 이러한 표현을 통해 변경할 수 있습니다.
CQ의 리소스의 예로 레코드, 쿼리 등이 있습니다. CQ는 각 리소스를 RDF/XML, JSON 등 다양한 표현을 지원합니다. OSLC는 다양한 HTTP 메쏘드를 제공합니다.
  • GET 메쏘드는 리소스를 가져옵니다.
  • PUT 메쏘드는 리소스를 갱신합니다.
  • POST 메쏘드는 새로운 리소스를 생성합니다.
  • DELETE 메쏘드는 리소스를 삭제합니다.
예를 들어, 리소스를 갱신할 때는 먼저 GET 메쏘드를 통해 리소스를 가져오고, 프로퍼티를 수정한 뒤에, PUT 메쏘드를 통해 다시 리소스를 갱신합니다. 보다 자세한 정보는 Working with Records.

CQ REST API 버전들

  • CQ 7.1.0.0 웹에서 REST API를 처음 지원합니다. 
  • RTC 2.0과 CQ 7.1.1.0에서 OSLC-CM 1.0 REST API를 지원합니다.
  • CQ 7.1.2.1에서 여기 소개된 OSLC-CM 2.0을 지원합니다.
OSLC 2.0 사용법

OSLC 2.0 API를 사용할 때는 HTTP 요청 전 요청 헤더 OSLC-Core-Version의 값을 2.0으로 설정합니다.

OSLC-Core-Version: 2.0

이 헤더를 설정하지 않으면 하위 호환성을 위해 OSLC-CM 1.0 응답을 제공합니다.

CQ OSLC 1.0과 CQ OSLC 2.0의 차이점
  • CQ OSLC 2.0의 XML 응답은 RDF/XML 표현입니다. Resource Representations 참고하세요.
  • CQ OSLC 2.0의 RDF/XML와 JSON 응답은 표준 OSLC ChangeRequest 프로퍼티와 CQ 필드 값을 함께 제공합니다.
  • PUT 요청시,  oslc.properties 패리미터를 설정하지 않을 경우에는, 모든 필드 값을 제공해야 합니다. Working with Records: PUT 참고하세요.
  • CQ OSLC 2.0에서는 각 레코드 유형별 쿼리 URL을 제공합니다.
  • 네임스페이스 및 패러미터 이름은 OSLC-CM 2.0 Specification를 참고하세요.


리소스의 표현
CQ는 모든 리소스에 대한 RDF/XML (application/rdf+xml) 표현, JSON (application/json) 표현을 제공합니다. 쿼리인 경우, Atom (application/atom+xml) 표현도 지원하고, 레코드인 경우, HTML (text/html) 표현을 제공합니다. 콘텐츠 유형은 HTTP Accept 요청 헤더를 통해 표시합니다 (RFC 2616 참조). 예를 들면 RDF/XML 콘텐츠 유형을 요청할 경우, 아래 요청 헤더를 사용합니다. (Accept 헤더를 설정하지 않은 경우에 디폴트로 아래 값을 사용합니다.)

Accept: application/rdf+xml

아래처럼 하나 이상의 콘텐츠 유형을 요청할 수 있습니다.

Accept: text/html,application/atom+xml

아래처럼 rcm.contentType 패러미터를 이용해 콘텐츠를 요청할 수 있습니다. 이 경우에는 HTTP Accept 헤더에 설정 값을 무시합니다.

GET http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/?rcm.contentType=application/json

RDF/XML를 사용할 때는 사용 편의성 및 에러방지를 위해 RDF/XML 파싱시, Jena 같은 자바 라이브러리를 사용하길 권장합니다.


인증

CQ OSLC-CM REST API는 사용자 인증을 위해 Basic Access Authentication과  OAuth를 지원합니다. 리소스에 엑세스할 경우에는 인증에 대한 준비를 해야 합니다. 다만  Base URI에 GET 요청을 하고 스키마 저장소 목록을 가져올 경우에는 인증이 필요하지 않습니다. 인증이 필요할 경우에는 401 HTTP 상태 코드를 수반합니다.


Basic access authentication과 OAuth 중 어느 것을 사용할지?

대부분의 경우 Basic access authentication를 사용할 수 있습니다. 간단하며 셋업이 필요하지 않습니다. 다만 SSL을 사용하지 않는 경우 보안이 약합니다. 그리고  RFC2617에서 정의한바 비(非) ASCII 사용자 ID를 지원하지 않습니다.

OAuth는 관리자 셋업을 필요로 하지만 여러 장점이 있습니다. 사용자 ID와 암호가 필요하지 않는 까닭에 보다 안전합니다. 대신 CQ가 발행하는 엑세스 토큰으로 인증을 합니다. 엑세스 토큰은 서버 재시작 전까지 유효하며 한명의 사용자만 사용할 수 있습니다. 그렇더라도 SSL을 사용하는 것을 권장합니다.

Basic Access Authentication


Basic access authentication을 사용할때는 사용자 ID와 암호를  Base64 인코딩으로 HTTP 인증 요청 헤더에 명시합니다. SSL을 사용하지 않을 경우 보안에 약합니다.

거의 모든 브라우저에서 Basic access authentication을 지원합니다. CQ OSLC URI를 브라우저에서 탐색을 하게되면, 기존의 활성 세션이 없는 경우에는 사용자의 ID와 암호를 묻게 됩니다.

대부분의 HTTP 클라이언트 라이브러리 또한 Basic access authentication을 지원합니다. 아래 예는 Apache HTTP 클라이언트 사용하여 사용자 ID와 암호를 명시하는 경우입니다.

HttpClient http = new HttpClient(); 
Credentials credential 
    = new UsernamePasswordCredentials("user", "password"); 
http.getParams().setAuthenticationPreemptive(true); http.getState().setCredentials(AuthScope.ANY, credential);

각 HTTP 클라이언트 라이브러리 문서를 참고하시기 바랍니다.

OAuth

시작하기 전에 먼저 OAuth 개념을 이해바랍니다. The Beginner's Guide to OAuth는 훌륭한 자료입니다.

OAuth 라이브러리

OAuth 인증을 사용할 때는 OAuth 라이브러리를 사용하여 요청에 사인을 합니다. 각각의 프로그래밍 언어별 오픈소스 라이브러리는 http://oauth.net/code/에서 찾을 수 있습니다.

OAuth 이용자 등록

OAuth 인증을 사용하기 위해서는 사용하는 애플리케이션을 OAuth 이용자로 등록해야 합니다. 우선 CQ 웹을 어드민으로 로그인을 하고, "Site Administration" 메뉴에서 "OAuth Consumer Management"를 선택합니다. 설정 대화 상자가 나타나면 아래 나와있는 OAuth 이용자 정보를 입력합니다.
프로퍼티설명
이용자 이름애플리케이션 이름, 사용자에게 표시됩니다.
이용자 키값을 지정하며 되며 유일해야 합니다.
이용자 암호CQ와 애플리케이션간에 공유되는 암호입니다. CQ는 이 암호를 통해서 애플리케이션 요청을 검증합니다. 특정 값을 암호로 지정합니다.
신뢰됨선택을 할 경우, CQ는 신뢰하는 다른 애플리케이션과 인증을 공유할 수 있습니다.



CQ는 RootServicesSpecAddendum2에 기술된 째즈의 동적 OAuth 이용자 등록 방법 또한 지원합니다. CQ의 루트 서비스 URI는  Base URI에 기술되어 있습니다.

OAuth 토큰 획득하기

OAuth 엑세스 토큰을 획득하는 절차는 아래와 같습니다.
  1. oslc:oauthRequestTokenURI로 OAuth 요청 토큰을 요청합니다.
  2. oslc:authorizationURI로 사용자 인증 처리를 리다이렉트합니다.
  3. oslc:oauthAccessTokenURI로 OAuth 요청 토큰을 OAuth 엑세스 토큰으로 교환합니다. 
이들 OAuth URI는 oslc:OAuthConfiguration 자원으로 프로퍼티로써 각 데이터베이스 세트별로 service provider catalog에 정의되어 있습니다.

OAuth 엑세스 토큰은 사용자 대신하여 요청을 할 수 있도록 해주며, CQ 서버가 재시작될때까지 유효합니다.

요청 사인하기

엑세스 토큰으로 요청을 사인할려면 OAuth 라이브러리가 필요합니다. CQ는, OAuth의 제공자로써, HMAC-SHA1 사인 메쏘드를 지원하며, Authorization 헤더, 쿼리 문자열의 일부 및 요청 바디 상의 OAuth 패러미터를 허용합니다. OAuth 1.0a: Parameter Transmission를 참고하세요.

세션 관리

CQ 세션은 클라이언트가 보호된 리소스를 접근할 때 체결되며 비활성 상태로 일정 기간이 지나면 만료됩니다. 만료는 HTTP 세션 타임아웃 또는 CQ 세션 타임아웃시 발생합니다. 일반적으로 세션이 체결될때 라이센스를 가져오며 세션이 만료될 때 라이센스가 릴리즈됩니다.

HTTP 클라이언트로 Base URI 아래 /session/ 컨텍스트에 DELETE 메쏘드를 호출함으로써 명시적으로 CQ 세션을 무효화할 수 있습니다.

요청:

DELETE /cqweb/oslc/session/ HTTP/1.1 
Host: quagmire.rtp.raleigh.ibm.com 
OSLC-Core-Version: 2.0


응담:

HTTP/1.1 204 No Content 
Content-Length: 0

결과로 세션과 관련된 라이센스는 릴리스됩니다.

세션을 추적하기 위해서는 HTTP 클라이언트 사용시 쿠키를 사용 가능하도록 해야 합니다. Apache HTTP 클라이언트를 사용할 경우, http.protocol.single-cookie-headertrue로 설정할 수 있습니다.

HttpClient http = new HttpClient(); 
http.getParams().setParameter("http.protocol.single-cookie-header", true); http.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY)



Base URI

OSLC-CM 2.0 엑세스를 위한 Base URI는 아래와 같습니다.

http:///cqweb/oslc/

통합를 위한 CQ 루트 서비스 URI는 아애와 같습니다.

http:///cqweb/oslc/repo//discovery

만약 데이터베이스 세트 이름에 비 ASCII 문자가 있다면 인코딩이 필요함을 주의하시기 바랍니다.

본 자료는 RootServicesSpec을 준수하며 째즈 제품과의 통합을 위해 많이 사용합니다.

서비스 열람

서비스 열람은 OSLC 제공자가 제공하는 기능을 열람하도록 합니다. 그래서 OSLC 제공자와의 작업의 출발점이 됩니다. CQ는 OSLC Core 2.0 스펙을 따른 모델을 제공합니다. 먼저 Base URI에 GET 메쏘드를 호출하여 서비스 제공자 카탈로그를 획득합니다. 카탈로그와 다른 리소스와의 관계는 아래 그림을 참고하세요.


-
서비스 제공자 카탈로그

CQ가 제공하는 최상위 카탈로그는 서버에 정의된 데이터베이스 세트들입니다. 각 데이터베이스 세트는 각각의 사용자를 가지는 까닭에 개별적인 OAuth 구성정보를 가집니다. 각 데이터베이스 세트별로 개별 사용자 데이터베이스 카탈로그 위치를 가지고 있습니다.

아래는 CQ 서비스 제공자 카탈로그 리소스의 RDF/XML 표현 예로써 두개의 데이터베이스 세트: DOC, Links를 나타냅니다.

요청:
GET /cqweb/oslc/ HTTP/1.1
Host: quagmire.rtp.raleigh.ibm.com
OSLC-Core-Version: 2.0
Accept: application/rdf+xml

응답:
HTTP/1.1 200 OK
OSLC-Core-Version: 2.0
Transfer-Encoding: chunked
Content-Type: application/rdf+xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://open-services.net/ns/core#" xmlns:dc="http://purl.org/dc/terms/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<ServiceProviderCatalog rdf:about="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc">
<dc:title>Repository</dc:title>
<dc:publisher>
<Publisher>
<dc:title>RCM/CQ OSLC CM Service Description Document</dc:title>
<label>RCM/CQ OSLC CM Service Description Document</label>
<dc:identifier>com.ibm.rational.cm.clearquest</dc:identifier>
<icon rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/_rcm-resources/clearquest.ico"/>
</Publisher>
</dc:publisher>
<serviceProviderCatalog>
<ServiceProviderCatalog rdf:about="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC">
<dc:title>DOC</dc:title>
<details rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/"/>
<oauthConfiguration>

아래는 CQ 서비스 제공자 카탈로그 리소스의 JSON 표현 예로써 두개의 데이터베이스 세트: DOC, Links를 나타냅니다.

요청:


GET /cqweb/oslc/ HTTP/1.1
Host: quagmire.rtp.raleigh.ibm.com
OSLC-Core-Version: 2.0
Accept: application/json


응답: 생략


서비스 기술 문서

각각의 CQ 사용자 데이터베이스는 개별의 서비스 기술 문서를 가지고 있습니다. 이 서비스 기술 문서에는 새로운 레코드 생성과 쿼리를 위한 URL이 정의되어 있고 다른 웹 애플리케이션에서 사용할 수 있는 레코드 선택 및 생성에 필요한 대화상자에 대해 기술하고 있습니다. 각각의 레코드 유형별로 레코드 선택 및 생성 대화상자와 쿼리에 대한 서비스를 제공함을 유의하시기 바랍니다. 또한 디폴트로 제공하는 레코드 선택 대화상자는 레코드 유형을 선택할 수 있는 기능을 제공합니다.

아래는 DefectTracking 스키마의 SAMPL 사용자 데이터베이스가 제공하는 CQ 서비스 기술 문서 리소스에 대한 RDF/XML 표현의 예입니다.

요청:


GET /cqweb/oslc/repo/DOC/db/SAMPL/ HTTP/1.1
Host: quagmire.rtp.raleigh.ibm.com
OSLC-Core-Version: 2.0
Accept: application/rdf+xml

응답:

HTTP/1.1 200 OK
OSLC-Core-Version: 2.0
Transfer-Encoding: chunked
Content-Type: application/rdf+xml; charset=UTF-8

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://open-services.net/ns/core#" xmlns:dc="http://purl.org/dc/terms/" xmlns:cq="http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<ServiceProvider rdf:about="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL">
<dc:title>RCM/CQ OSLC CM Service Description Document</dc:title>
<dc:description>Rational Change Management/ClearQuest OSLC CM Services available for DOC/SAMPL.</dc:description>
<dc:publisher>
<Publisher>
<dc:title>IBM Rational ClearQuest</dc:title>
<label>IBM Rational ClearQuest</label>
<dc:identifier>com.ibm.rational.cm.clearquest</dc:identifier>
<icon rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/_rcm-resources/clearquest.ico"/>
</Publisher>
</dc:publisher>
<details rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/restapi/DOC/SAMPL?format=html"/>
<prefixDefinition>
<PrefixDefinition>
<prefix>oslc</prefix>
<prefixBase rdf:resource="http://open-services.net/ns/core#"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>oslc_cm</prefix>
<prefixBase rdf:resource="http://open-services.net/ns/cm#"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>dc</prefix>
<prefixBase rdf:resource="http://purl.org/dc/terms/"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>dcterms</prefix>
<prefixBase rdf:resource="http://purl.org/dc/terms/"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>rdf</prefix>
<prefixBase rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>rdfs</prefix>
<prefixBase rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>foaf</prefix>
<prefixBase rdf:resource="http://xmlns.com/foaf/0.1/"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>cq</prefix>
<prefixBase rdf:resource="http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/"/>
</PrefixDefinition>
</prefixDefinition>
<prefixDefinition>
<PrefixDefinition>
<prefix>oslc_cmx</prefix>
<prefixBase rdf:resource="http://open-services.net/ns/cm-x#"/>
</PrefixDefinition>
</prefixDefinition>
<service>
<Service>
<domain rdf:resource="http://open-services.net/ns/cm#"/>
<creationFactory>
<CreationFactory>
<dc:title>Unattended location for the creation of ClearQuest Records</dc:title>
<label>Unattended location for the creation of ClearQuest Records</label>
<creation rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record"/>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<usage rdf:resource="http://open-services.net/ns/core#default"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777224"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777751"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777220"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777222"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777219"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777935"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777221"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777897"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/shape/16777223"/>
</CreationFactory>
</creationFactory>
<creationDialog>
<Dialog>
<dc:title>New Defect</dc:title>
<dc:description>Web dialog for creating new Defect records</dc:description>
<label>Defect</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777224/creationDialog?dc%3Atype=Defect"/>
<hintWidth>703px</hintWidth>
<hintHeight>510px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<usage rdf:resource="http://open-services.net/ns/core#default"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New Customer</dc:title>
<dc:description>Web dialog for creating new Customer records</dc:description>
<label>Customer</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777935/creationDialog?dc%3Atype=Customer"/>
<hintWidth>803px</hintWidth>
<hintHeight>588px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New Email_Rule</dc:title>
<dc:description>Web dialog for creating new Email_Rule records</dc:description>
<label>Email_Rule</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777751/creationDialog?dc%3Atype=Email_Rule"/>
<hintWidth>727px</hintWidth>
<hintHeight>471px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New Project</dc:title>
<dc:description>Web dialog for creating new Project records</dc:description>
<label>Project</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777897/creationDialog?dc%3Atype=Project"/>
<hintWidth>651px</hintWidth>
<hintHeight>294px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New groups</dc:title>
<dc:description>Web dialog for creating new groups records</dc:description>
<label>groups</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777222/creationDialog?dc%3Atype=groups"/>
<hintWidth>722px</hintWidth>
<hintHeight>194px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New ratl_replicas</dc:title>
<dc:description>Web dialog for creating new ratl_replicas records</dc:description>
<label>ratl_replicas</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777220/creationDialog?dc%3Atype=ratl_replicas"/>
<hintWidth>674px</hintWidth>
<hintHeight>342px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<creationDialog>
<Dialog>
<dc:title>New users</dc:title>
<dc:description>Web dialog for creating new users records</dc:description>
<label>users</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777223/creationDialog?dc%3Atype=users"/>
<hintWidth>703px</hintWidth>
<hintHeight>376px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</creationDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose ClearQuest Record</dc:title>
<dc:description>Web dialog for finding and selecting ClearQuest Record records</dc:description>
<label>ClearQuest Record</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777224/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777224%40DOC%2FSAMPL&restrictType=false"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<usage rdf:resource="http://open-services.net/ns/core#default"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose Defect</dc:title>
<dc:description>Web dialog for finding and selecting Defect records</dc:description>
<label>Defect</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777224/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777224%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose Email_Rule</dc:title>
<dc:description>Web dialog for finding and selecting Email_Rule records</dc:description>
<label>Email_Rule</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777751/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777751%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose ratl_replicas</dc:title>
<dc:description>Web dialog for finding and selecting ratl_replicas records</dc:description>
<label>ratl_replicas</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777220/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777220%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose groups</dc:title>
<dc:description>Web dialog for finding and selecting groups records</dc:description>
<label>groups</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777222/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777222%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose history</dc:title>
<dc:description>Web dialog for finding and selecting history records</dc:description>
<label>history</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777219/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777219%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose Customer</dc:title>
<dc:description>Web dialog for finding and selecting Customer records</dc:description>
<label>Customer</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777935/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777935%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose attachments</dc:title>
<dc:description>Web dialog for finding and selecting attachments records</dc:description>
<label>attachments</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777221/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777221%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose Project</dc:title>
<dc:description>Web dialog for finding and selecting Project records</dc:description>
<label>Project</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777897/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777897%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<selectionDialog>
<Dialog>
<dc:title>Choose users</dc:title>
<dc:description>Web dialog for finding and selecting users records</dc:description>
<label>users</label>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777223/selectionDialog?dc%3Atype=cq.repo.cq-rectype%3A16777223%40DOC%2FSAMPL&restrictType=true"/>
<hintWidth>640px</hintWidth>
<hintHeight>540px</hintHeight>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
</Dialog>
</selectionDialog>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<usage rdf:resource="http://open-services.net/ns/core#default"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>Defect</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777224"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777224"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>Email_Rule</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777751"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777751"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>ratl_replicas</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777220"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777220"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>groups</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777222"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777222"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>history</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777219"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777219"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>Customer</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777935"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777935"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>attachments</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777221"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777221"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>Project</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777897"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777897"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<queryCapability>
<QueryCapability>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Simple GET-based Record Query</dc:title>
<label>users</label>
<queryBase rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/simpleQuery/16777223"/>
<resourceShape rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777223"/>
<cq:supportsOslcSearchTerms>false</cq:supportsOslcSearchTerms>
</QueryCapability>
</queryCapability>
<cq:queryNavigatorDialog>
<Dialog>
<usage rdf:resource="http://open-services.net/ns/core#default"/>
<resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<dc:title>Choose Query - IBM Rational ClearQuest</dc:title>
<dc:description>Web dialog for choosing named queries</dc:description>
<dialog rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/queryNavigatorDialog"/>
<hintWidth>325px</hintWidth>
<hintHeight>375px</hintHeight>
</Dialog>
</cq:queryNavigatorDialog>
<cq:namedQuery>
<cq:NamedQuery>
<dc:title>Location for named queries and folders</dc:title>
<url xmlns="http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/">http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/query-folder</url>
</cq:NamedQuery>
</cq:namedQuery>
<cq:schema>
<cq:Schema>
<dc:title>URL to request record type definitions in XSD</dc:title>
<url xmlns="http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/">http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type</url>
</cq:Schema>
</cq:schema>
<cq:localReplica>
<cq:Replica>
<dc:title><local></dc:title>
</cq:Replica>
</cq:localReplica>
<cq:defaultRecordType>
<cq:RecordType>
<dc:title>URL of the default record type</dc:title>
<url xmlns="http://www.ibm.com/xmlns/prod/rational/clearquest/1.0/">http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/record-type/16777224</url>
</cq:RecordType>
</cq:defaultRecordType>
</Service>
</service>
<oslc_cmx:whoami xmlns:oslc_cmx="http://open-services.net/ns/cm-x#" rdf:resource="http://quagmire.rtp.raleigh.ibm.com/cqweb/oslc/repo/DOC/db/SAMPL/whoami"/>
</ServiceProvider>
</rdf:RDF>


리소스 형태

CQ는 레코드를 충분히 커스텀할 수 있는 기능을 제공합니다. 새로운 레코드 타입을 정의하고 각 레코드 타입에 들어갈 필드를 선택할 수 있습니다. 그렇다면 특정 CQ 사용자 데이터베이스에 있는 특정 레코드 타입에 정의된 필드는 어떻게 알 수 있을까요?

이를 돕기 위해 OSLC 리소스 형태를 제공합니다. 리소스 형태는 각 필드의 타입 뿐만 아니라 레코드에 정의된 필드들에 대한 정보를 알려줍니다. 또한 어떤 필드가 필수 요소이며 어떤 값이 유효한지 알수 있습니다. OSLC Core 2.0 스펙: 부록 A에 정의된 oslc:ResourceShape Resource 를 참고하시기 바랍니다.


레코드 타입 형태

레코드 타입에 대한 형태는 여러 곳에서 파악할 수 있습니다. 예를 들면,
  • 레코드의 oslc:instanceShape 프로퍼키
  • 서비스 기술 문서에 있는 레코드 생성 팩토리의 oslc:resourceShape 프로퍼티
  • 쿼리 형태의 oslc:valueShape 프로퍼터

쿼리 결과 형태

CQ는 또 쿼리 결과 형태에 대한 정보를 제공합니다.
아래는 CQ 쿼리 결과 형태에 대한 JSON 표현의 예입니다.

요청:
GET /cqweb/oslc/repo/DOC/db/SAMPL/queryShape/16777224
Host: quagmire.rtp.raleigh.ibm.com
OSLC-Core-Version: 2.0
Accept: application/json
응답:
HTTP/1.1 200 OK
OSLC-Core-Version: 2.0
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

{
   "prefixes":{
      "oslc":"http:\/\/open-services.net\/ns\/core#",
      "rdf":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#",
      "dcterms":"http:\/\/purl.org\/dc\/terms\/"
   },
   "rdf:type":[
      {
         "rdf:resource":"http:\/\/open-services.net\/ns\/core#ResourceShape"
      }
   ],
   "rdf:about":"http:\/\/quagmire.rtp.raleigh.ibm.com\/cqweb\/oslc\/repo\/DOC\/db\/SAMPL\/queryShape\/16777224",
   "dcterms:title":"ClearQuest CM V2 Query Result",
   "oslc:describes":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#Description",
   "oslc:property":[
      {
         "rdf:type":[
            {
               "rdf:resource":"http:\/\/open-services.net\/ns\/core#Property"
            }
         ],
         "oslc:name":"member",
         "oslc:propertyDefinition":{
            "rdf:resource":"http:\/\/www.w3.org\/2000\/01\/rdf-schema#member"
         },
         "oslc:valueType":"http:\/\/open-services.net\/ns\/core#AnyResource",
         "oslc:occurs":{
            "rdf:resource":"http:\/\/open-services.net\/ns\/core#Zero-or-many"
         },
         "oslc:range":{
            "rdf:resource":"http:\/\/open-services.net\/ns\/cm#ChangeRequest"
         },
         "oslc:valueShape":{
            "rdf:resource":"http:\/\/quagmire.rtp.raleigh.ibm.com\/cqweb\/oslc\/repo\/DOC\/db\/SAMPL\/shape\/16777224"
         },
         "oslc:representation":{
            "rdf:resource":"http:\/\/open-services.net\/ns\/core#Inline"
         },
         "oslc:readOnly":"true",
         "oslc:isMemberProperty":"true"
      }
   ]
}

OSLC-CM 2.0 ChangeRequest 리소스에 대한 지원

OSLC 2.0 Change Management 스펙은 ChangeRequest 리소스에 대해 정의하고 있습니다. 이 리소스는 OSLC 제공자가 공통으로 갖는 프로퍼티들을 갖고 있습니다. CQ 또한 이러한 프로퍼티 대부분을 지원합니다.

모든 레코드에 공통인 표준 프로퍼티들

아래 표준 ChangeRequest 프로퍼티들은 모든 유형의 레코드에서 제공합니다.
  • dcterms:title
  • rdf:type
  • dcterms:type
  • dcterms:identifier
  • oslc_cm:shortTitle
  • oslc:instanceShape

추가로 상태를 갖는 레코드에는 다음 프로퍼티를 제공합니다.
  • oslc_cm:status

OSLCLinks 패키지에서 제공하는 표준 프로퍼티들

레코드 타입에 OSLCLinks 패키지를 적용한 경우 추가적으로 제공하는 OSLC ChangeRequest 프로퍼티들이 있습니다.

OSLCLinks 1.0

OSLCLinks 1.0 패키지는 여느 레코드와의 링크를 허용합니다. OSLC-CM 2.0에서 정의한 모든 링크 타입이 지원됩니다.


  • oslc_cm:relatedChangeRequest
  • oslc_cm:affectsPlanItem
  • oslc_cm:affectedByDefect
  • oslc_cm:tracksRequirement
  • oslc_cm:implementsRequirement
  • oslc_cm:affectsRequirement
  • oslc_cm:testedByTestCase
  • oslc_cm:affectsTestResult
  • oslc_cm:blocksTestExecutionRecord
  • oslc_cm:relatedTestExecutionRecord
  • oslc_cm:relatedTestCase
  • oslc_cm:relatedTestPlan
  • oslc_cm:relatedTestScript
  • oslc_cm:tracksChangeSet

OSLCLinks 1.1

OSLCLinks 1.1 패키지는 상태 값 프로퍼티를 제공합니다.


  • oslc_cm:closed
  • oslc_cm:inprogress
  • oslc_cm:fixed
  • oslc_cm:approved
  • oslc_cm:reviewed
  • oslc_cm:verified

스키마에서 정의된 워크플로우에 맞게 상태 값을 설정하기 위해서는 훅(Hook)이 필요합니다. OSLCLinks 패키지 관련 문서를 참고하세요.


그 밖의 표준 프로퍼티들

ALM 스키마를 사용한 경우 OOTB로 oslc:description, dcterms:creator, dcterms:contributor 등의 OSLC ChangeRequest 프로퍼티들을 제공합니다. 레코드에서 사용할 수 있는 OSLC 프로퍼티들을 파악하기 위해서는 레코드에 대한 oslc:instanceShape를 요청해서 알아볼 수 있습니다.


레코드에 대한 작업 예제

생략
-

RTC OSLC CM 2.0 REST API

출처 : https://jazz.net/wiki/bin/view/Main/WorkItemAPIsForOSLCCM20

This document is the next version of ResourceOrientedWorkItemAPIv2 and describes services offered by RTC 3.0.1 Work Items Service provider implementing OSLC CM 2.0 specifications. This version of service provider is much enhanced from earlier version that has more kinds of resource formats, operations etc. Most of the services and operations existed in previous version are still supported but change is only in semantics which are programmatic friendly. This document explains how Work item service provider can be consumed by referring to OSLC CM 2.0 specifications with good examples. The example snippets assume that you are authenticated to a server configured for form-based auth. These examples can be tried on a browser or by using POSTER plug in on Fire Fox.


Java HTTP 라이브러리 (OSLC REST 프로그램시)

Java
  • HttpURLConnection
Apache HTTP Client
참고 JFS SDK (https://jazz.net/wiki/bin/view/Main/ServerSDKOverview)
  • REST Framework: The JFS SDK provides a REST framework that can be used by applications to structure their code as a set of REST handlers (also called services). This framework is based on Apache's HTTP Component library. A key characteristic of this framework is that the REST handlers work with the HttpRequest and HttpResponse classes provided by the Apache's HTTP Component library, instead of the HttpServletRequest and HttpServletResponse classes provided by J2EE. This approach allows us to create a framework that is isolated from application servers-specific behavior (See the ServerSDKQnA for more details).
-
참고 bulk operations


-

Selenium RC를 이용한 웹 애플리케이션 테스트

http://www.ibm.com/developerworks/kr/library/wa-testweb/

이 기사에서는 Selenium과 Selenium의 두 가지 컴포넌트인 Selenium IDE와 Selenium RC를 소개했다. Selenium IDE를 이용하면 웹 애플리케이션용 테스트를 쉽게 작성할 수 있다. Selenium RC는 테스트에 기능을 추가하거나 테스트를 자동화하는 데 사용할 수 있는 컴포넌트이다.

브라우저 관점에서 웹 애플리케이션 테스트를 자동화하는 것은 애플리케이션의 다른 부분을 다루는 기존 유닛 테스트의 기능을 개선하는 좋은 방법이 될 수 있다. 테스트를 자동화함으로써 개발자는 더욱 신속하게 문제점에 대한 피드백을 받아서 더욱 빠르게 회귀 테스트를 수행할 수 있다.

-

StaleDataException

Exception -> Status Code(https://jazz.net/wiki/bin/view/Main/JFSStorageAPI)
  • ItemNotFoundException -> 404 Not found 
  • IllegalArgumentException -> 400 Bad Request 
  • StaleDataException -> 409 Conflict 
  • TeamRepositoryException -> 500 Internal Server Error

Every time an item is saved, a new state is created. When you save an item, the newest state must be used, otherwise you get a StaleDataException.

When you save an item more than once, you will need to make sure that you always have the latest state by:

  • either use the item returned by the save call
  • fetch the item from the repository again


StaleDataException is being caused because the work item you are referencing has already been updated from a previous change and you are still referencing the old work item.

So let's say you are updating multiple attributes but each independently. The pseudo-code would be something like this ...

[begin of pseudo-code]

get work item handle
get working copy
edit attribute 1
save working copy

get fresh copy of work item
get working copy
edit attribute 2
save working copy

get fresh copy of work item
...

[end of pseudo-code]

// get fresh copy of work item
workItem = workItemServer.findWorkItemById(workItem.getId(), IWorkItem.FULL_PROFILE, monitor);

2011년 12월 29일 목요일

RTC plain Java Client Lib를 이용한 서블릿 WAS7 배포시 유의점


1) 웹프로젝트 외에 EAR 프로젝트를 만듭니다.

2) 웹프로젝트에 톰캣라이브러리 빼고 WAS라이브러리를 추가합니다.

3) 웹프로젝트 WEB-INF/lib에서 RTC plain lib 중 두개 javax.*.jar는 제외 (WAS라이브러리로 대체됨)

4) EAR를 export하여 만들고 WAS에 deploy

5) WAS에서 EAR를 실행하기전 클래스로더를 설정



6) EAR를 실행


Tomcat에 DB2 JDBC 타입2/타입4 드라이버 설치

DB2를 설치한 경우: C:\Program Files\IBM\SQLLIB\java>dir /b
(DB2를 설치할 필요가 없을 경우: DB2 Client를 설치)
Common.jar
db2dbgm.jar
db2java.zip (JDBC 타입2 드라이버)
db2jcc.jar (JDBC 타입4 드라이버)
db2jcc4.jar
db2jcc_license_cu.jar (JDBC 타입4 드라이버 라이센스)
db2policy.jar
db2qgjava.jar
db2umplugin.jar
images
jdk
sqlj.zip
sqlj4.zip


db2java.zip 파일의 경우 db2java.jar 파일로 이름을 바꿔 복사해 줍니다.


톰캣 5.5인 경우에는 C:\apache-tomcat-5.5.xx\common\lib>dir /b
톰캣 7.0인 경우에는 C:\apache-tomcat-7.0.xx\lib>dir /b

2011년 12월 28일 수요일

CLM 설치 - 4.0 M6로의 업그레이드

CLM 4.0 M6 Upgrade 위키

1) CLM 4.0M6에서는 톰캣 7을 설치합니다. 따라서 톰캣 5.5의 설정 파일을 그대로 복사하기 보다는 가이드에 따라서 복사하시기 바랍니다.

2) 하나의 애플리케이션 서버에 다수의 째즈 애플이 있는 경우는 한꺼번에 업그레이드를 하시기 바랍니다.
   째즈 애플이 별도의 애플리케이션 서버에 각각 있는 경우에는 독립적으로 업그레이드 할 수 있습니다. 가이드를 참고하세요.
   (그래도 항상 JTS 애플을 먼저 업그레이드 하세요.)

3) 기존의 CLM용 데이터베이스를 업그레이드 할 경우에는 addTables나 createWarehouse 커맨드를 사용하여 최신 형식으로 데이터베이스를 바꾸시기 바랍니다.

4) If your environment does not support a converter, for example AIX or Solaris, you must install the 3.0.1.1 version of the converter.war on the dedicated converter. For detailed information see: https://jazz.net/wiki/bin/view/Main/DelegatedConverterApplication.

RTC 작업항목 OSLC 대화상자 호출시 필요한 접미구

아래 접미구를 붙입니다.
#oslc-core-windowName-1.0

예를 들어...
<oslc:selectionDialog>
<oslc:Dialog>
<dcterms:title rdf:parseType="Literal">가나다라</dcterms:title>
<oslc:label>가나다라</oslc:label>
<oslc:usage rdf:resource="http://open-services.net/ns/cm#requirementsChangeRequest"/>
<oslc:resourceType rdf:resource="http://open-services.net/ns/cm#ChangeRequest"/>
<oslc:dialog rdf:resource="https://clm.jkebanking.net:9443/jazz/_ajax-modules/com.ibm.team.workitem.WIPicker?projectAreaId=_kVetAPU8EeCaZdxnzySfVg&showLoginLink=true&dc%3Atype=task"/>
<oslc:hintWidth>550px</oslc:hintWidth>
<oslc:hintHeight>460px</oslc:hintHeight>
</oslc:Dialog>
</oslc:selectionDialog>
에서

https://clm.jkebanking.net:9443/jazz/_ajax-modules/com.ibm.team.workitem.WIPicker?projectAreaId=_kVetAPU8EeCaZdxnzySfVg&showLoginLink=true&dc%3Atype=task를 주소창에 넣고나서.. 접미구를 붙입니다.

https://clm.jkebanking.net:9443/jazz/_ajax-modules/com.ibm.team.workitem.WIPicker?projectAreaId=_kVetAPU8EeCaZdxnzySfVg&showLoginLink=true&dc%3Atype=task#oslc-core-windowName-1.0

리턴값
https://clm.jkebanking.net:9443/ccm/_ajax-modules/{"oslc:results":[{"rdf:resource":"https://clm.jkebanking.net:9443/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/92","oslc:label":"92: 테스트"}]}

RTC 워크플로우 상태 및 조치의 OSLC-CM 정보


서비스 제공자 리스트 정보
https://clm.jkebanking.net:9443/ccm/oslc/workitems/catalog
(특정 서비스 제공자 컨텍스트를 알아냄)


특정 서비스 제공자
1. OSLC-CM 서비스 정보
https://clm.jkebanking.net:9443/ccm/oslc/contexts/_EVxvgP3qEeCEB8OCyABnBA/workitems/services.xml


2. 워크플로우 "상태" 정보
https://clm.jkebanking.net:9443/ccm/oslc/workflows/_EVxvgP3qEeCEB8OCyABnBA/states/com.ibm.team.workitem.taskWorkflow


3. 워크플로우 "조치" 정보
https://clm.jkebanking.net:9443/ccm/oslc/workflows/_EVxvgP3qEeCEB8OCyABnBA/actions/com.ibm.team.workitem.taskWorkflow


(예)
...
<rtc_cm:Action rdf:resource="https://clm.jkebanking.net:9443/ccm/oslc/workflows
/_EVxvgP3qEeCEB8OCyABnBA/actions/com.ibm.team.workitem.taskWorkflow
/com.ibm.team.workitem.taskWorkflow.action.startWorking">


<dc:identifier>com.ibm.team.workitem.taskWorkflow.action.startWorking</dc:identifier>


<rtc_cm:resultState rdf:resource="https://clm.jkebanking.net:9443/ccm/oslc/workflows
/_EVxvgP3qEeCEB8OCyABnBA/states/com.ibm.team.workitem.taskWorkflow
/2"/>


<dc:title>Start Working</dc:title>
</rtc_cm:Action>
...


DB2 버전별 픽스팩 다운로드 사이트

다운로드 : http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg27007053


  • To find out which edition (express/enterprise/etc), run the command: db2licm -l
  • To find out fixpack information, run the command: db2level or db2ls

RAM과 RTC의 통합 유스케이스

 출처 : http://www-01.ibm.com/support/docview.wss?uid=swg21497832



UC1, UC2, UC3, UC4 - For Rational Asset Manger V7.5.1, use Rational Team Concert V2.0.0.2, interim fix 006 and later, V3.0 and later, V3.0.1 and later.


  • UC5 : The Rational Asset Manager server uses the included copy of Rational Team Concert to manage the workflows for asset lifecycles.

UC5 - For Rational Asset Manger V7.5.1, use Rational Team Concert V2.0.0.2, interim fix 006 and later. During server setup, you can specify whether to use the included instance of Rational Team Concert. Rational Asset Manager V7.5 and later include a licensed copy of Rational Team Concert V2.0.0.2.

-

RPE 문서 생성 도구

출처 : http://www.ibm.com/developerworks/rational/library/document-compliance-rational-publishing-engine-1/index.html (29 Nov 2011)


Rational Publishing Engine can be used to create documents from data across a wide range of distributed and diverse data sources. It can access data from all of these Rational applications:
  • IBM® Rational® Asset Manager
  • IBM® Rational® ClearCase®
  • IBM® Rational® ClearQuest®
  • IBM® Rational® DOORS®
  • IBM® Rational® Focal Point
  • IBM® Rational® Quality Manager
  • IBM® Rational® Requirements Composer
  • IBM® Rational® RequisitePro®
  • IBM® Rational® Rhapsody (through Rhapsody REST service or through the Design Manager)
  • IBM® Rational® Team Concert™
  • IBM® Rational® Software Architect (through the Design Manager)
  • IBM® Rational® System Architect
It also provides access to data from other companies' software through Extensible Markup Language (XML) and Representational State Transfer (REST) interfaces.


Architecture with data sources and output formats

  • Generation of documents from many sources

Diagram of sources of the information for automated reports



IBM Rational Publishing Engine provides two tools for the two major user roles:
  • The Document Studio application is used by the template author to define new report templates.
  • The Launcher is used by the end user to compose and configure document specifications, using existing templates, and to generate reports from these document specifications.



  • Rational Publishing Engine components

Flow diagram of main components, operations and artifacts



  • Template creation workflow

Workflow diagram shows activities and their dependencies



  • Excerpts from the sample report

Main sections of the sample report Main sections of the sample report




-

SCM 도구 스타일

http://fscorner.blogspot.com/2009/06/scm-tools-are-not-configuration.html

SCM 도구는 아래 세가지 구조를 통해 변경을 관리하고 통제를 합니다.
  • 디렉토리 구조
  • 버전 구조
  • 분기 구조
위 세가지 구조를 통해 살펴본 SCM 도구의 스타일은 아래와 같습니다.

  • 스타일 1

main/gui/generic/foo-v1.c
main/webgui/unix/foo-v1.c
main/webgui/unix/foo-v2.c
main/webgui/unix/foo-v3.c
main/webgui/winxp/foo-v1.c
main/webgui/winxp/foo-v2.c
R1.0.0.0/gui/generic/foo-v1.c
R1.0.0.0/webgui/unix/foo-v2.c
R1.0.0.0/webgui/winxp/foo-v2.c



  • 스타일 2

main/gui/generic/foo.c (version 1)
main/webgui/unix/foo.c (version 1,2,3)
main/webgui/winxp/foo.c (version 1,2)
R1.0.0.0/gui/generic/foo.c (version 1)
R1.0.0.0/webgui/unix/foo.c (version 2)
R1.0.0.0/webgui/winxp/foo.c (version 2)



  • 스타일 3

gui/foo.c (version 1 on branch main)
webgui/foo.c (version 1 on branch main;
              version 2,3 on branch unix;
              version 2 on branch winxp)



SCM 도구의 근본 기능은 의존관계를 식별하는 겁니다.의존관계는 함께 관리할 개체들을 정의합니다. 여러가지 의존관계들이 있습니다.

  • 디렉토리 의존관계: 같은 디렉토리에 있는 모든 파일들
  • 분기 의존관계: 같은 분기에 있는 모든 파일들
  • 버전 의존관계: 모든 최신 버전들
  • 상태 의존관계: 같은 상태(예, 릴리즈 R1.0.0.0)의 모든 파일들
  • 내용 의존관계: 상관 관계(예, 요구사항-설계-코드)에 있는 모든 파일들


상태 의존관계는 소위 승급모델로 모형화합니다. 같은 상태의 모든 파일들은 사전 정의된 여러 단계를 통과합니다: 개발, 통합테스트, 시스템테스트, 운영.

SCM 도구들은 승급모델을 지원합니다.

  • 분기를 통한 승급 : ClearCase/UCM의 deliver와 rebase,  SVN의 디렉토리 복사
  • 선택 규칙을 통한 승급

SCM 도구는 내용 의존관계 지원이 필요합니다.
  • 설계 변경의 코드, 요구사항 및 테스트에 대한 영향은?
  • 코드 변경에 의한 타 코드, 인터페이스 및 설계 모델에 대한 영향 식별은?
  • 효과적인 의존관계 정보관리 방안은? 의존관계 정보의 완성도는?
  • 제품 X의 릴리즈 3.2는 프레이웍 릴리즈 1.2와는 동작하고 프레임웍 릴리즈 1.1과는 동작하지 않는 것은 어떻게 파악하는지?
  • 제품 Y의 릴리즈 6.1는 제품 X와 동작하지 않는 이유가 프레임웍 릴리즈 1.2 때문인지 파악할 수 있는지?
-

ClearTeam Explorer와 RTC의 통합 설치

https://jazz.net/library/article/746


Rational Team Concert 3.0.1.1 extends the ClearCase Bridge capabilities to the ClearTeam Explorer interface, an Eclipse-based interface to ClearCase version 8.0 that supports both web views and dynamic views. This document provides instructions for installing the ClearTeam Explorer to Rational Team Concert.

These installation instructions are specific to the ClearCase Bridge; for more of an overview of the various options available to connect ClearCase (and ClearQuest) to Rational Team Concert and how to use them, please see TN0006: Deploying Rational Team Concert into a ClearCase/ClearQuest Environment.

For more information about using the ClearCase Bridge, please see Using the ClearCase Bridge to Rational Team Concert in the Rational Team Concert Information Center.

More Information

Note that the minimum Rational Team Concert version required for the ClearTeam Explorer bridge is Rational Team Concert 3.0.1.1.

To install Rational Team Concert and Rational ClearTeam Explorer using IBM Installation Manager:

  1. Add the repository locations for each of Rational Team Concert and the ClearTeam Explorer extension offering.
  2. Install Rational Team Concert and ClearTeam Explorer together by selecting Rational Team Concert - Client for Eclipse IDE and IBM Rational ClearTeam Explorer Extension from the list of installation packages.
    Note that you can also install Rational Team Concert and then Rational ClearTeam Explorer one by one.

To update Java Runtime Environment of the Eclipse shell:

In order to run ClearTeam Explorer in the same Eclipse shell, it is required to use Java 6.0 Runtime Environment.
  1. Install Java 6.0 Runtime Environment. Please refer System Requirements for Rational Team Concert 3.0.1, Rational Quality Manager 3.0.1 and Rational Requirements Composer 3.0.1 to find appropriate patch releases of Java 6.0 Runtime Environment. Note that you can find IBM JRE 6.0 when you install the Rational ClearCase 8.0. The location of IBM JRE is:
    • C:\Program Files\IBM\RationalSDLC\common\JAVA5.0\jre (Note that the directory path indicates the Java version is 5.0, but it IS Java 6.0 runtime environment.)
    • /opt/rational/common/java/jre (on Linux platforms)
  2. Open eclipse.ini (e.g. C:\Program Files\IBM\TeamConcert on Windows by default) in a text editor and update the path to Java 6.0 Runtime Environment and save it.

-