±¾ÎÄ̽ÌÖÁ˽«
Perforce Èí¼þÓë IBM? Rational Team Concert? Ï༯³ÉµÄģʽ¡£Ëü°üº¬Á˹ØÓÚ¼¯³ÉµÄÒ»¸ö·¶Àý³ÌÐò¡£
¸ÅÊö
Äú¿ÉÒÔʹÓÃÒ»¸öÌæ´úÐÔµÄÈí¼þÅäÖùÜÀí£¨SCM£©Óë IBM? Rational
Team Concert?£¬¶ø²»ÊÇĬÈϵİ汾¿ØÖÆÏµÍ³£¨²Î¼û ²Î¿¼×ÊÁÏ ÒԵõ½¡°Ê¹Óà Rational Team
Concert 2.0 ¼¯³ÉÆäËü SCM ϵͳ¡±µÄÁ´½Ó£©¡£±¾ÎÄÑÝʾÁËÔõÑù¸ù¾Ý»ùÓÚ²»Í¬ÓÃÀýµÄÁ½¸ö²»Í¬µÄ¼¯³Éģʽ£¬ÔõÑù½«
SCM ϵͳÓë Rational Team Concert ¼¯³ÉÆðÀ´£º
launch-from-rtc
launch-from-p4
¼¯³Éģʽ
launch-from-rtc ģʽµÄ¹¤×÷·½Ê½ÊÇÔÚ¼¼ÊõÐÔÁìµ¼·ÖÅ乤×÷Ïîʱ£¬´´½¨
Perforce ÈÎÎñ£¬È»ºóÔÚ Rational Team Concert Öд´½¨ÈÎÎñÓ빤×÷ÏîÖ®¼äµÄ¹ØÏµ¡£Äú¿ÉÒÔ´´½¨
Perforce ¸ü¸ÄÁÐ±í£¬²¢½«ÆäÓ빤×÷ÏîÄ¿ÁªÏµÆðÀ´¡£Í¨¹ýʹÓÃÕâЩÒѾ´æÔÚµÄÈÎÎñÓë¸ü¸ÄÁÐ±í£¬¿ª·¢Ô±¿ÉÒÔʹÓÃ
Perforce À´¼ìÈëºÍ¼ì³öÎļþ£¬¶ø²»ÓÃÈ¥¹Ø×¢¹¤×÷Ïî¡£ÔÚÎÄÕµĺóÃæ£¬ÓÐʵʩ¸ÃģʽµÄ³ÌÐò¡£

ͼ 1. launch-from-rtc
ģʽ
Ìá½»±ä¸üÁбíʱ£¬launch-from-p4 ģʽͨ¹ý´´½¨ Rational Team Concert
Ö®ÖÐ Perforce ±ä¸üÁбíÓ빤×÷ÏîÖ®¼äµÄË«±ß¹ØÏµÀ´·¢»Ó×÷Ó᣸½ÊôÓÚ¸ü¸ÄÁбíºÍ¹¤×÷ÏîµÄ Perforce
ÈÎÎñ¿ÉÒÔÏ໥ÁªÏµ¡£ÓµÓÐ Perforce µÄ¿ª·¢Ô±¿ÉÒÔÔÚ¿ª·¢¹ý³ÌÖ®Öиù¾ÝÐèÇó£¬Í¨¹ýÑ¡ÔñÆä ID À´½«ÆäËûµÄ¸ü¸ÄÁбíÓ빤×÷Ï̬µØÁªÏµÆðÀ´¡£ÔÚÃûΪ¡°½«
Perforce Èí¼þÓë Rational Team Concert ¼¯³ÉÆðÀ´¡±µÄÎÄÕÂÖУ¬ÃèÊöÁËʵʩµÄ¸ÃÖÖģʽºÍ³ÌÐò¡££¨²Î¼û
²Î¿¼×ÊÁÏ£©¡£

ͼ 2. launch-from-p4 ģʽ
ÕâÁ½ÖÖģʽÏ໥²¹Öú£¬¶øÇÒ²»»á·¢Éú³åÍ»¡£Äú¿ÉÒÔʹÓÃÆäÖеÄÒ»¸öÀ´´¦Àí²»Í¬µÄÓÃÀý¡£ÄúÒ²¿ÉÒÔÑ¡Ôñ£¬ÔÚʹÓà launch-from-rtc
ģʽ֮ºó£¬¿ª·¢Ô±¿ÉÒÔʹÓà launch-from-p4 ģʽÀ´Ìí¼Ó¸ü¸ÄÁÐ±í¡£
´´½¨
ÐèÒªµÄÈí¼þ»·¾³
±¾ÎÄʹÓõķ¶ÀýÔÚ Microsoft Windows »·¾³ÏÂÔËÐС£cURL Óë Perl ²¢²»½öÏÞÓÚ
Cygwin ÔËÐÐʱϵͳ¡£
1¡¢Perforce ÐèÒªµÄ»·¾³
1.ÃüÁîÐпͻ§¶Ë£¨P4£©
P4 ±ØÐë°²×°µ½Óë Rational Team Concert ÏàͬµÄ»úÆ÷ÉÏ¡£
ÃûΪ p4tester µÄÓû§£¬ÆäÃÜÂëÊÇ p4tester£¬Ê¹Óà P4¡£
2.¿ÉÊӵĿͻ§¶Ë£¨P4V£©¡£
¿ª·¢Ô±±ØÐëʹÓà P4V À´¼ìÈë»òÕß¼ì³öÎļþ¡£
3.·þÎñÆ÷£¨P4D£©
P4D ±ØÐëÔÚ 1666 ¶Ë¿ÚÉÏÔËÐС£
4.ÍøÂç¿Í»§¶Ë£¨P4Web£©
P4Web ¿ÉÒÔ°²×°ÔÚÓë P4D ÏàͬµÄ»úÆ÷Ö®ÉÏ¡£
P4Web ±ØÐëÔڲ鿴ÕßģʽÖÐ -B Ñ¡ÏîÏÂÔËÐУ¬ÒÔÖ§³Ö´ÓÔ¶³Ì»úÆ÷ÉϽøÐзÃÎÊ¡£
¹¤×÷ÏîµÄÁ´½ÓÊÇ http://(the same machine as P4D):8080/xxx
P4Web ¿ÉÒÔ°²×°ÔÚÿһ¸ö¿ª·¢Ô±µÄ»úÆ÷ÉÏ£¬µ«ÊDz»Äܰ²×°µ½ÓÐ P4D µÄ»úÆ÷ÉÏ¡£
P4Web ÔËÐÐÔÚĬÈÏģʽÏ£¬ÒÔÖ§³Öÿһ¸ö¿ª·¢Ô±´Ó±¾µØ·ÃÎÊËü¡£
¹¤×÷ÏîÉϵÄÁ´½ÓÊÇ http://localhost:8080/xxx
P4Web ±ØÐëÔÚ 8080 ¶Ë¿ÚÉÏÔËÐС£
2¡¢Rational Team Concert 3.0 °æ±¾µÄÔËÐÐÒªÇó
1.Eclipse IDE ¿Í»§¶Ë
ÃûΪ tester µÄÓû§£¬ÆäÃÜÂëÊÇ tester£¬Ê¹Óà Eclipse IDE ¿Í»§¶Ë¡£
ÃûΪ TestProject µÄÏîÄ¿ÇøÓò±ØÐëÓÉÓû§´´½¨¡£
2.·þÎñÆ÷
·þÎñÆ÷±ØÐëÔÚ 9443 ¶Ë¿ÚÉÏÔËÐС£
3¡¢Cygwin cURL£¬Perl µÄÔËÐÐÌõ¼þ
cURL Óë Perl ±ØÐë°²×°µ½Óë Rational Team Concert ·þÎñÆ÷ÏàͬµÄ»úÆ÷ÉÏ¡£

ͼ 3. ϵͳÅäÖÃ
°²×° Perl ½Å±¾
1.½« launch-from-rtc.pl Óë P4RTC.pm ¸´ÖƵ½°²×°
Rational Team Concert£¨RTC£©·þÎñÆ÷µÄλÖã¬Ò²¾ÍÊÇ C:\cygwin\usr\local\p4rtc-pl¡£
2.±à¼ÒÔÏµĻ·¾³²ÎÊý£¬ÒÔÆ¥Åä P4RTC.pm ÖеĻ·¾³£º
Perforce£º $P4RTC::p4web£¬$P4RTC::p4d_port£¬$P4RTC::p4user£¬$P4RTC::p4pass£¬$P4RTC::p4user_client Rational Team Concert£º $P4RTC::rtc_user£¬$P4RTC::rtc_pass£¬$P4RTC::rtc_serv£¬$P4RTC::rtc_path |
Ϊ Rational Team Concert °²×°²å¼þ
1.È·¶¨ Rational? Jazz? ·þÎñÆ÷±»¹Ø±Õ¡£
2.½« p4bridge.site ¸´ÖƵ½ C:\ProgramFiles\IBM\JazzTeamServer\server\conf\ccm\sites
3.½« p4bridge.ini ¸´ÖƵ½ C:\ProgramFiles\IBM\JazzTeamServer\server\conf\ccm\provision_profiles
4.½«ÊôÐÔÌí¼Óµ½ C:\ProgramFiles\IBM\JazzTeamServer\server
Ö®Ï嵀 server.startup.bat£¨²Î¼ûÇåµ¥ 1£©¡£ÐèÒªµÄÊôÐÔÊÇ p4rtc.runtime
ÒÔ¼° p4rtc.program£¬ÔËÐÐÁªÏµ³ÌÐòµÄÔËÐÐʱ·¾¶£¬ÁªÏµ³ÌÐòµÄ·¾¶£¬½«·Ö±ðʹÓõ½Ëü¡£ÊôÐÔ p4rtc.skipword
ÊÇ¿ÉÑ¡ÐԵģ¬Èç¹û¹¤×÷Ïî×ܽáÇøÓòÖдÊÓïÒѾ´æÔڵϰ£¬ÄÇôËüÊÇÓÃÓÚÌø¹ý²Ù×÷µÄ´Ê¡£p4rtc.checkbox
ÊôÐÔÊÇ¿ÉÑ¡ÐԵ쬲¢ÇÒÓÃ×÷¸´Ñ¡¿òµÄ±êÇ©£¬ÒÔ¾ö¶¨ÊÇ·ñÔËÐÐÏà¹ØµÄ³ÌÐò¡£
Çåµ¥ 1. ÉèÖÃÊôÐԵķ¶Àý
set JAVA_OPTS=%JAVA_OPTS% -Dp4rtc.runtime="C:\\cygwin\\bin\\perl.exe" set JAVA_OPTS=%JAVA_OPTS% -Dp4rtc.program="C:\\cygwin\\usr\\local\\ p4rtc-pl\\launch-from-rtc.pl" set JAVA_OPTS=%JAVA_OPTS% -Dp4rtc.skipword=p4skip set JAVA_OPTS=%JAVA_OPTS% -Dp4rtc.checkbox=p4link |
5.Æô¶¯ Jazz ·þÎñÆ÷¡£
6.±à¼ save workitem µÄ²Ù×÷ÐÔÐÐΪ£º
1£©´ò¿ªÊôÐÔÇøÓò¡£
2£©µã»÷ Process Configuration > Team
Configuration > Operation Behavior > Workitem
> Save workitem À´Ñ¡ÔñÒ»¸ö½ÇÉ«¡£
3£©µã»÷ Add¡£
4£©Ñ¡Ôñ Create and link P4 objects in Save£¨P4
Bridge£©£¨²Î¼û ͼ 4£©¡£
5£©µã»÷ OK È»ºóµã»÷ Save¡£

ͼ 4. Ñ¡Ôñ P4 ÇÅ
7.£¨¿ÉÑ¡ÐԵģ©Èç¹ûÄú¸üвå¼þ£¬¶øÇÒ±ØÐëÔٴθ´ÖƵϰ£¬Äú¿ÉÒÔʹÓà Request
Server Reset£º
1£©https://hostname:port/ccm/admin?internal#action=com.ibm.team.repository.admin.serverReset
2£©¹Ø±Õ Jazz ·þÎñÆ÷£¬Ö´ÐÐµÚ 2 ²½£¬È»ºóÖØÆô Jazz ·þÎñÆ÷¡£
ÔÚ Rational Team Concert Öж¨Öƹ¤×÷Ïî±à¼Æ÷£¨¿ÉÑ¡ÐԵģ©
ÔÚÓÐЩÇé¿öÏ£¬µ±ÄúÔÚ Rational Team Concert Öд´½¨¹¤×÷Ïîʱ£¬Óû§ÏëÒª¾ö¶¨ÊÇ·ñ´´½¨
Perforce ¶ÔÏó¡£Ò»¸öÑ¡ÔñÊÇͨ¹ý¶¨Öƹ¤×÷Ïî±à¼Æ÷À´Ìí¼ÓÒ»¸ö¸´Ñ¡¿ò¡£ÔÚ´´½¨¹¤×÷Ïîʱ£¬Èç¹ûÓû§ÏëÒª´´½¨ºÍÁªÏµ
Perforce ¶ÔÏó£¬ÄÇôËûÃÇ¿ÉÒÔÑ¡Öи´Ñ¡¿ò£»»òÕߣ¬¿ÉÒÔÈ¡ÏûËüµÄÑ¡Ôñ£¨Í¼ 5£©¡£

ͼ 5. Ìí¼ÓÒ»¸ö¸´Ñ¡¿ò
ΪÁËÏò¹¤×÷Ïî±à¼Æ÷Ìí¼ÓÒ»¸ö¸´Ñ¡¿ò£¬Äú±ØÐëÌí¼ÓÊôÐÔ£¬²¢¾ÍÌØ¶¨µÄ²¼¾Ö×÷³ö¾ö²ß¡£
1.ʹÓà Project Area ±à¼Æ÷À´´ò¿ªÒ»¸öÏîÄ¿ÇøÓò¡£
2.±à¼ÀàÐͺÍÊôÐÔ£¬ÒÔÏò¹¤×÷Ïî±à¼ÀàÐͺÍÊôÐÔ£º
1£©Õ¹¿ª Process Configuration > Project
Configuration > Configuration Data > Work Items
> Types and Attributes¡£
2£©Ñ¡ÔñÒ»¸ö¹¤×÷ÏîÀàÐÍ£¨Í¼ 6£©¡£ÀýÈ磬µã»÷ Defect ÒÔΪȱÏÝÀàÐÍÕ¹¿ª¹¤×÷Ïî±à¼Æ÷¡£

ͼ 6. Ñ¡ÔñÒ»¸ö¹¤×÷ÏîÀàÐÍ
3.ÔÚ Attributes Ö®Öеã»÷ Add ÒÔÌî³äÒÔϵÄÇøÓò£¬È»ºóµã»÷
OK£¨Í¼ 7£©£º
1£©Ãû×Ö£º p4link
2£©ID£º p4link
3£©ÀàÐÍ£º Boolean

ͼ 7. Ïò¹¤×÷ÏîÀàÐÍÌí¼ÓÒ»¸öÊôÐÔ
4.ÖØ¸´µÚ 2 ²½µ½µÚ 3 ²½ÒÔ½øÒ»²½µØ¶¨Öƹ¤×÷Ïî¡£
5.±à¼±à¼Æ÷µÄÍâ¹Û£¬ÒÔ¾ö¶¨Ìí¼ÓÊôÐÔ½«»á³öÏÖλÖõIJ¼¾Ö£º
1£©Õ¹¿ª Process Configuration > Project
Configuration > Configuration Data > Work Items
> Editor Presentations¡£
2£©Ñ¡ÔñÒ»¸ö¹¤×÷ÏîÀàÐÍ£¨Í¼ 8£©¡£ÀýÈ磬ѡÔñ com.ibm.team.workitem.editor.default
ÒÔΪȱÏÝÀàÐÍÕ¹¿ª¹¤×÷Ïî±à¼Æ÷¡£
3£©µã»÷ Overview Ö®Ï嵀 Details£¬²¢µã»÷ Add Presentation¡£
»ùÓÚÊôÐÔµÄÐÎÏó£º Ñ¡ÖÐ
ÊôÐÔ£º p4link
ÀàÐÍ£º Boolean
±êÇ©£¨¿ÉÑ¡ÐԵģ©£ºp4link
ÃèÊö£¨¿ÉÑ¡ÐԵģ©£º ½«¹¤×÷ÏîÓë p4 ¶ÔÏóÁªÏµÆðÀ´
ID£¨¿ÉÑ¡ÐԵģ©£º p4link
Òþ²ØÔÚ¹¤×÷Á÷³Ì״̬֮ÖУºÕýÔÚÑ¡Ôñ£¬Ðµģ¬Òѽâ¾ö£¬È±Ïݹ¤×÷Á÷³ÌÒÑÈ·ÈÏ
4£©Í¼ 9 ÏÔʾÁËÊôÐÔ p4link λÓÚ Details ´°¸ñ½ÏºóµÄλÖá£
5£©Öظ´µÚ b ²½µ½µÚ d ²½ÒÔ¶¨Öƹ¤×÷ÏîµÄÀàÐÍ¡£

ͼ 8. Ϊ²¼¾ÖÑ¡ÔñÒ»¸ö¹¤×÷ÏîÀàÐÍ

ͼ 9. ÏòÒ»¸ö²¼¾ÖÌí¼ÓÒ»¸öÊôÐÔ
ÓÃÀý
½ÓÏÂÀ´µÄÓÃÀý·¢ÉúÔÚÁ½ÖÖ½Çɫ֮¼ä£º¼¼ÊõÐÔÁìµ¼ºÍ¿ª·¢Ô±¡£
1.¼¼ÊõÐÔÁìµ¼ÔÚ Rational Team Concert Ö®Öд´½¨ÁËÒ»¸ö¹¤×÷Ïî¡£
Ò»¸ö ¿ª¹Ø À´¿ØÖÆÊÇ·ñ´´½¨ Perforce ÈÎÎñºÍ±ä¸üÁÐ±í¡£ÕâÀ¸Ã¿ª¹ØÊÇ×÷Ϊ¸´Ñ¡¿òºÍ¹¤×÷ÏîÖеĹؼü×ÖʵʩµÄ¡£Èç¹û¶¨ÖƵĸ´Ñ¡¿ò´æÔڵϰ£¬ÄÇô¾ö²ß¾ö¶¨»áÈ·Èϸ´Ñ¡¿òµÄÖµ¡£Èç¹û¸´Ñ¡¿ò²»´æÔڵϰ£¬ÄÇô¸ù¾Ý¹¤×÷ÏîÄ¿×ܽáÇøÓòÊÇ·ñÓи´Ñ¡¿ò£¬À´×ö³ö¾ö²ß¡£
Èç¹ûÑ¡Öпª¹ØµÄ»°£¬ÄÇô Perforce ÈÎÎñºÍ¸ü¸ÄÁÐ±í¶¼»áµÃµ½×Ô¶¯´´½¨£¬±£´æ¹ý³ÌÖÐËüÃÇ»áÓ빤×÷ÏîÁªÏµÆðÀ´£¨Í¼
10£©¡£
Èç¹ûûÓÐÑ¡ÖУ¬ÄÇô Perforce ÈÎÎñºÍ¸ü¸ÄÁÐ±í¶¼²»»áµÃµ½´´½¨¡£
2.T¿ª·¢Ô±»á´Ó Rational Team Concert ÖнÓÊÜй¤×÷ÏîµÄµç×ÓÓʼþ֪ͨ¡£
3.¿ª·¢Ô±ÔÚ Perforce ¸ü¸ÄÁбíÖ®ÖеÄÇøÓòÄÚ¼ì³ö£¬±à¼£¬²¢¼ìÈë¡£
4.¼¼ÊõÐÔÁìµ¼»á±à¼¹¤×÷ÏîµÄ״̬£¬²¢´Ó Rational Team Concert
ÄÇÀïÊÕµ½×´Ì¬¸ü¸ÄµÄ֪ͨ¡£
×¢Ò⣺
¸ü¸Ä¹¤×÷ÏîµÄ״̬²¢²»»á´´½¨Ò»¸ö Perforce ¸ü¸ÄÁбí»òÕßÈÎÎñ¡£Ö»ÊÇÔÚ´´½¨¹¤×÷Ïîʱ²Å»á´´½¨Ëü¡£
5.¿ª·¢Ô±»áʹÓà Perforce ÈÎÎñ£¬È»ºó¹Ø±Õ Perforce ÈÎÎñ£¬À´Ìá½»Îļþ¡£
6.¼¼ÊõÐÔÁìµ¼»áÈ·ÈÏ Perforce ÈÎÎñ¹Ø±Õ£¬È»ºó¹Ø±Õ¹¤×÷Ïî¡£

ͼ 10. Óë Perforce ÈÎÎñÓë¸ü¸ÄÁбíµÄÁªÏµ
ʵʩ
ΪÁËÔÚ Rational Team Concert Öд´½¨¹¤×÷Ïîʱ×Ô¶¯´´½¨Ò»¸ö Perforce ÈÎÎñºÍ¸ü¸ÄÁÐ±í£¬ÄÇô¹¤×÷ÏîµÄ±£´æ¹ý³Ì±ØÐë±»
ÔÝÍ££¬ÒÔÖ´ÐÐ Perforce ÃüÁ´´½¨ Perforce ÈÎÎñºÍ¸ü¸ÄÁÐ±í¡£Í¨¹ýʵʩ com.ibm.team.process.common.advice.runtime.IOperationAdvisor
µÄ run ·½·¨£¬¿ÉÒÔÍê³É¸Ã²Ù×÷¡£run ·½·¨¿ÉÄÜÐèÒªÕâЩ²½Öè¡£
1.´´½¨Ò»¸ö Perforce ÈÎÎñºÍ¸ü¸ÄÁÐ±í¡£
2.ÔÚ Perforce ÈÎÎñºÍ¸ü¸ÄÁбíµÄÃèÊöÇøÓòÖ®ÖÐÊäÈ빤×÷ÏîµÄ URL¡£
3.½« Perforce ÈÎÎñºÍ¸ü¸ÄÁбíµÄ URL ÊäÈëµ½ Rational
Team Concert Öй¤×÷ÏîµÄÏà¹ØÇøÓòÄÚ¡£
×¢Ò⣺
µÚÈý²¿ÓÐһЩÎÊÌâ¡£¸üй¤×÷ÏîµÄÇøÓòÔÚ run ·½·¨Öв»ÄÜÖ´ÐУ¬ÒòΪ¸üлáµ÷ÓÃÆäËûµÄ±£´æ¹ý³Ì£¬Õ⽫µ¼ÖÂËÀÑ»·µÄ²úÉú¡£ÎÒÃǽ¨ÒéÄúÖ»ÔÚµÚÈý²½·½·¨´´½¨ºÍÆô¶¯Ò»¸öÐµķ½·¨¡£run
·½·¨Íê³ÉÖ®ºó£¬ÍⲿÐԵĽű¾»á´¦Àíд´½¨Ïß³ÌÄÚµÄÈý¸ö²½Öè¡£
Ϊ Rational Team Concert ʵʩ²å¼þ
Èç¹ûÄúÏëÒª²é¿´ÔõÑùΪ Rational Team Concert ´´½¨²å¼þµÄÍêÕû½éÉÜ£¬Äú¿ÉÒԲ鿴¡°Rational
Team Concert - Creating Custom Operation Advisors¡±£¬²Î¼û
²Î¿¼×ÊÁÏ¡£½ÓÏÂÀ´µÄ³ÌÐòÏòÄúչʾÁËÔõÑù´´½¨²å¼þ£¬ÌØÐÔ£¬²¢¸üб¾ÎÄÖÐËùʹÓõ½µÄÍøÕ¾ÏîÄ¿¡£
1.Ϊ Rational Team Concert 3.0 °æ±¾´´½¨
SDK£¨²Î¼û RTCSDK20 Development Environment Setup ÖС°´´½¨ Target
Platform¡±£©¡£
1£©ÏÂÔØ Rational Team Concert 3.0 ²¢½âѹ Rational
Team Concert SDK¡£
2£©Ñ¡Ôñ Window > Preferences > Plug-in
Development > Target Platform > Add£¬²¢µã»÷ Nothing:
Start with an empty target definition¡£
3£©È»ºóµã»÷ Next¡£
4£©ÔÚ Name ÇøÓòÖУ¬ÊäÈë RTC-SDK-30£¬²¢ÔÚ Locations
ÏîÉϵã»÷ Add¡£
5£©µã»÷ Installation£¬È»ºóµã»÷ Next¡£
6£©ä¯ÀÀ½âѹËõºó Rational Team Concert SDK µÄ¸ùĿ¼£¬µã»÷
Finish£¬È»ºóÔٴεã»÷ Finish¡£
7£©ÔÚ Target Definitions Éϵã»÷ RTC-SDK-30¡£
8£©µã»÷ OK¡£
2.´´½¨²å¼þÏîÄ¿£º
1£©ÏîÄ¿Ãû£º p4bridge
ID£ºp4bridge
°æ±¾£º 1.0.0.qualifier
Ãû×Ö£ºp4bridge
È¡ÏûÑ¡Ôñ Éú³ÉÒ»¸ö¼¤»îÆ÷£¬Ò»¸ö¿ØÖƲå¼þÉúÃüÖÜÆÚµÄ Java Àà ¡£
2£©ÔÚ plugin.xml ÎļþÖÐµÄ Overview ÏîÉÏÑ¡Ôñ This
plug-in is a singleton¡£
3£©ÔÚ plugin.xml ÎļþµÄ Dependencies ÏîÉÏÌí¼ÓÒÔÏÂÐèÒªµÄ²å¼þ£º
org.eclipse.core.runtime com.ibm.team.process.common com.ibm.team.process.service com.ibm.team.workitem.common com.ibm.team.repository.common com.ibm.team.repository.service com.ibm.team.workitem.service |
4)ÌîÈë plugin.xml ÎļþµÄ Extensions£¨Í¼ 11£¬Í¼
12£©£º
À©Õ¹µã£º com.ibm.team.process.service.operationAdvisors
ID£ºp4bridge.operationAdvisor
Àࣺp4bridge.P4BridgeCreateAndLinkInSave
Ãû×Ö£º Create and link P4 objects in Save£¨P4 Bridge£©
operationID£º com.ibm.team.workitem.operation.workItemSave
ÓÒ»÷ operationAdvisor£¬²¢ÊäÈë componentId£¬implementationClass£¬²¢Ñ¡Ôñ
New > extensionService¡£
componentId£ºp4bridge.extensionService
implementationClass£ºp4bridge.P4BridgeCreateAndLinkInSave
ÓÒ»÷ extensionService£¬²¢Çл»ÖÁplugin.xml Ï²¢Ìí¼Ó com.ibm.team.workitem.service.IWorkItemServer
×÷Ϊ requiredService£¬À´Ñ¡Ôñ New > prerequisites£¨Çåµ¥ 2£©¡£
ÔÚ New Java Class ¶Ô»°¿ò´°¿ÚÖ®ÖУ¬µã»÷ class Á´½ÓÒÔ´´½¨ÊµÊ© com.ibm.team.process.common.advice.runtime.IOperationAdvisor
µÄÀ࣬Ȼºóʵʩ P4BridgeCreateAndLinkInSave Àࣨ²Î¼û Çåµ¥ 3£©¡£
±£´æ¡£
3.´´½¨ Feature ÏîÄ¿£º
1)ÏîÄ¿Ãû£ºp4bridge.feature
2)ÌØÐÔ ID£º p4bridge.feature
3)ÌØÐÔÃû£º p4bridge feature
4)ÌØÐÔ°æ±¾£º1.0.0.qualifier
5)ÔÚ New Feature ¶Ô»°¿ò´°¿ÚµÄ Referenced Plug-ins
ÒÔ¼° Fragment ²¿·ÖÖ®ÖУ¬Ñ¡Ôñ p4bridge¡£
4.´´½¨ Update Site ÏîÄ¿£º
1)ÏîÄ¿Ãû£ºp4bridge.site
2)ÔÚ site.xml ÎļþµÄÍøÕ¾µØÍ¼ÏîÉϵã»÷ Add Feature£¬²¢Ñ¡Ôñ
p4bridge.feature¡£
5.¹¹½¨£¬µ¼³ö£¬²¢´´½¨£º
1£©ÔÚ p4bridge.site ÏîÄ¿ÖÐÓÒ»÷ site.xml Îļþ£¬Ñ¡Ôñ
PDE Tools > Build Site¡£
2£©ÓÒ»÷ p4bridge.site ÏîÄ¿À´Ñ¡Ôñ Export >
File System¡£
3£©ÔÚĿ¼ÖÐÊäÈëÎļþ·¾¶¡£µã»÷ Finish¡£
4£©°²×°²å¼þ£¨²Î¼û´´½¨²¿·ÖÖÐµÄ Îª Rational Team Concert
°²×°²å¼þ£©¡£
6.Èç¹ûд´½¨µÄ²å¼þûÓгöÏÖÔÚ½ø³ÌÅäÖÃÖÐʱ£¬ÄÇô½øÐйÊÕÏÅųý²Ù×÷£º
1£©È·ÈÏ p4bridge ÏîÄ¿ÖÐ plugin.xml ÎļþµÄ Bulid
ÏîÉÏ£¬Ñ¡ÔñÁË plugin.xml¡£
2£©Ê¹Óà Request Server Reset£¬²¢ÖØÆô Jazz ·þÎñÆ÷ÒÔÇå³ý»º´æ¡£
3£©ÖØÆô Eclipse ¿Í»§¶ËÒÔÇå³ý»º´æ¡£
Çåµ¥ 2. ǰÌáÌõ¼þÖ®ÏÂÌí¼ÓÐèÒªµÄ·þÎñ
... <extensionService componentId="p4bridge.extensionService" implementationClass="p4bridge.P4BridgeCreateAndLinkInSave"> <prerequisites> <requiredService interface="com.ibm.team.workitem.service.IWorkItemServer" /> </prerequisites> </extensionService> ... |

ͼ 11. ¶¨Òå operationAdvisor

ͼ 12. operationAdvisor
µÄÏàÐÅÐÅÏ¢
Çåµ¥ 3 ÊÇ com.ibm.team.process.common.advice.runtime.IOperationAdvisor
½çÃæµÄ run ·½·¨¡£ÓÐÈýµãÖµµÃ×¢Ò⣺
Ê×ÏÈ£¬¸Ã·½·¨Ö»ÔÚ´´½¨Ò»¸öÐµĹ¤×÷ÏîʱÆð×÷Óã¬ÕâÑù getOldState ·½·¨·µ»Ø null ֵʱ£¬·½·¨²Å»áµÃµ½Ö´ÐС£
µÚ¶þ£¬¸ù¾Ý¹¤×÷Ïî±à¼Æ÷ÊÇ·ñÓж¨ÖƵĸ´Ñ¡¿ò£¬»òÕß¹¤×÷ÏîµÄ×ܽáÇøÓòÖÐÊÇ·ñÓйؼü×Ö£¬¾ö¶¨ÊÇ·ñ½øÐÐÌø¹ý²Ù×÷¡£
µÚÈý£¬Ò»¸öÐµķ½·¨£¬thRun£¬µ÷ÓÃÒ»¸öÍⲿÐԵĽű¾À´´¦Àí run ·½·¨Íê³ÉÖ®ºó Perforce ÈÎÎñºÍ¸ü¸ÄÁбíµÄ´´½¨ÓÚÁ´½ÓÎÊÌâ¡£
Çåµ¥ 3. P4BridgeCreateAndLinkInSave ÀàÖеÄÔËÐз½·¨ÊµÊ© IOperationAdvisor
½çÃæ
private int workitem_id; ... public void run(AdvisableOperation operation, IProcessConfigurationElement advisorConfiguration, IAdvisorInfoCollector collector, IProgressMonitor monitor) throws TeamRepositoryException { ... Object op_data = operation.getOperationData(); if (op_data instanceof ISaveParameter) { IAuditable new_state = ((ISaveParameter) op_data).getNewState(); IAuditable old_state = ((ISaveParameter) op_data).getOldState(); /* * The 1st point. * a linking program can be executed only during the creation of work items. */ if (old_state == null && new_state instanceof IWorkItem) { /* * do these. * - check the existence of the customized check box. * - get a boolean value of the check box if it exists. */ boolean doP4Link = false; IWorkItem workItem = (IWorkItem) new_state; IWorkItemServer wiService = getService(IWorkItemServer.class); List<IAttributeHandle> attrs = workItem.getCustomAttributes(); boolean doesP4RtcCheckboxExist = false; if(attrs != null){ for (IAttributeHandle attrHandle : attrs) { IAttribute attribute = wiService.getAuditableCommon().resolveAuditable(attrHandle, IAttribute.FULL_PROFILE, monitor); if (attribute.getDisplayName().equals(p4rtc_checkbox)) { // the customized checkbox exists. doesP4RtcCheckboxExist = true; Object value = workItem.getValue(attribute); if( value instanceof Boolean){ // get the value of the checkbox. doP4Link = (Boolean)value; } } } } // get summary text for skipping decision by key word String summary = workItem.getHTMLSummary().getPlainText(); /* * The 2nd point. * a linking program is decided to be executed in either of these two conditions. * - checkbox exists and the value is true * - the checkbox does not exist and a key word does not exist in summary text */ if((doesP4RtcCheckboxExist && doP4Link) || (doesP4RtcCheckboxExist == false && summary.contains(p4rtc_skipword) == false)){ try{ workitem_id = workItem.getId(); Runnable th = new Runnable(){ public void run(){ try{ ProcessBuilder pb = new ProcessBuilder(p4rtc_runtime_path, p4rtc_program_path, "" + workitem_id); pb.redirectErrorStream(true); // The 3rd point. a linking program is executed outside of the plug-in. Process ps = pb.start(); getStdout(ps); }catch(Exception e){ e.printStackTrace(); } } }; Thread thRun = new Thread(th); thRun.start(); }catch(Exception e){ e.printStackTrace(); } }else{ //skip p4 link } } } } ... |
ʵʩ Perl ½Å±¾
¶ÔÓÚ±¾ÎÄ£¬ÎÒÃÇ¿ÉÒÔ°´ÕÕÏÂÃæµÄ²½ÖèÔÚ Perl ÖÐʵʩÍⲿÐԵĽű¾£º
1.µÇ¼µ½ Perforce ·þÎñÆ÷¡£
2.´´½¨Ò»¸ö Perforce ÈÎÎñ£º
1)½«Ç°×º job_rtc ¼Óµ½¹¤×÷ÏîµÄ ID Ç°Ãæ¡£
2)½«¹¤×÷ÏîµÄ URL ¼Óµ½ÃèÊöÇøÓòÄÚ¡£
3.£¨¿ÉÑ¡ÐԵģ©´´½¨Ò»¸ö Perforce ±ä¸üÁÐ±í¡£
1)½« Perforce ÈÎÎñµÄÃû×ÖÊäÈëµ½ Jobs ÇøÓòÄÚ¡£
2)½«¹¤×÷ÏîÄ¿µÄ URL ÊäÈëµ½ Description ÇøÓòÄÚ¡£
4.µÇ¼µ½ Rational Team Concert ·þÎñÆ÷¡£
5.È·¶¨¹¤×÷ÏîÒѾ±£´æÔÚ Rational Team Concert Ö®ÖС£
6.¸üй¤×÷Ï
1)½« Perforce ÈÎÎñµÄ URL ÊäÈëµ½Ïà¹ØµÄÁ´½ÓÇøÓò¡£
2)£¨¿ÉÑ¡ÐԵ쩽« Perforce ±ä¸üÁбíµÄ URL ÊäÈëµ½Ïà¹ØÁ´½ÓÇøÓò¡£
3)£¨¿ÉÑ¡ÐԵ쩽«ÆäËûµÄÐÅÏ¢ÊäÈëµ½ÌÖÂÛÇøÓòÄÚ¡£
×ܽá
±¾ÎÄÃèÊöÁËͨ¹ý×ñÑ launch-from-rtc ģʽ£¬½« Perforce Èí¼þÓë Rational
Team Concert ¼¯³ÉÆðÀ´¡£ËüÏÔʾÁË×÷Ϊ·¶ÀýµÄÔ´´úÂëºÍ½Å±¾¡£ÏÂÒ»²½£¬Perforce ÖÐÈÎÎñµÄ״̬ÒÔ¼°
Rational Team Concert Öй¤×÷ÏîµÄ״̬¿ÉÒԵõ½Í¬²½»¯£¬ÕâÑùµ±ÈÎÎñ¹Ø±Õʱ£¬¹¤×÷ÏîµÄ״̬Ҳ»áµÃµ½×Ô¶¯¹Ø±Õ£¬·´Ö®ÒàÈ»¡£
|