È®Àå¿¡¼ ½Äº°µÈ Ŭ·¡½º´Â RepositoryProviderÀÇ ¼ºêŬ·¡½ºÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ±âº» ¿ªÇÒÀº ÀúÀå¼Ò Áö¿øÀ» À§ÇØ ÇÁ·ÎÁ§Æ®¸¦ ±¸¼º ¹× ±¸¼º ÇØÁ¦Çϰí ÇÊ¿äÇÑ ÀÚ¿ø ¼öÁ¤ ÈÄÅ©¸¦ Á¦°øÇÏ´Â °ÍÀÔ´Ï´Ù. CVS Ŭ¶óÀÌ¾ðÆ®´Â ÁÁÀº ¿¹Á¦ÀÔ´Ï´Ù. CVS Ŭ¶óÀ̾ðÆ®ÀÇ ÀúÀå¼Ò Á¦°ø¾÷ü´Â CVSTeamProviderÀÔ´Ï´Ù.
public class CVSTeamProvider extends RepositoryProvider { ...
RepositoryProvider´Â configureProject ¹× deconfigure¶ó´Â µÎ °³ÀÇ Ãß»ó ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¸ðµç Á¦°ø¾÷ü´Â ÀÌµé ¸Þ¼Òµå¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.
ÇÁ·ÎÁ§Æ®´Â ƯÁ¤ ÀúÀå¼Ò Á¦°ø¾÷ü¿Í óÀ½ ¿¬°üµÉ ¶§ ±¸¼ºµË´Ï´Ù. ÀϹÝÀûÀ¸·Î ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇÏ°í ÆÀ ¸¶¹ý»ç¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ ÀúÀå¼Ò¿Í ¿¬°ü½Ãų ¶§ ÀÌ·¯ÇÑ ±¸¼ºÀÌ ÀÌ·ç¾îÁý´Ï´Ù. Á¶ÀÛÀÌ Æ®¸®°ÅµÇ´Â ¹æ¹ý¿¡ »ó°ü ¾øÀÌ ÀÌ ¶§°¡ ÀúÀå¼Ò ±â´ÉÀ» Á¦°øÇÒ Çʿ䰡 ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ µ¥ÀÌÅ͸¦ ¿¬»êÇϰí ij½ÃÇϱ⿡ °¡Àå ÀûÀýÇÑ ½Ã±âÀÔ´Ï´Ù. ÀÌ °æ¿ì ÀÌ¹Ì ÇÁ·ÎÁ§Æ®¸¦ Á¦°ø¾÷ü¿¡ ¸ÊÇÎÇß´Ù°í °¡Á¤ÇÕ´Ï´Ù. ¸ÊÇο¡ ´ëÇØ¼´Â ±¸¼º ¸¶¹ý»ç¿¡¼ »ìÆìº¸°Ú½À´Ï´Ù.
CVS Á¦°ø¾÷ü´Â ÇÁ·ÎÁ§Æ®°¡ ±¸¼ºµÇ¾úÀ½À» ´Ü¼øÈ÷ ºê·Îµåij½ºÆ®ÇÕ´Ï´Ù.
public void configureProject() throws CoreException { CVSProviderPlugin.broadcastProjectConfigured(getProject()); }
Ç÷¯±×ÀÎ ºê·Îµåij½ºÆ® ¸ÞÄ¿´ÏÁòÀÇ ±¸ÇöÀ» ¼öÇàÇÏÁö ¾Ê½À´Ï´Ù. Áö±ÝÀº ÇÁ·ÎÁ§Æ®º° µ¥ÀÌÅ͸¦ ¿¬»êÇϰųª ÃʱâÈÇÏ´Â µ¥ ÇÊ¿äÇÑ ºÎºÐÀ» ¾ð±ÞÇÏ´Â °Í¸¸À¸·Î ÃæºÐÇÕ´Ï´Ù.
»ç¿ëÀÚ°¡ ´õ ÀÌ»ó ÆÀ Á¦°ø¾÷ü¸¦ ÇÁ·ÎÁ§Æ®¿¡ ¿¬°ü½ÃŰ°í ½ÍÁö ¾ÊÀº °æ¿ì ÇÁ·ÎÁ§Æ®´Â ±¸¼º ÇØÁ¦µË´Ï´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» ¼öÇàÇÏ´Â »ç¿ëÀÚ Á¶Ä¡¸¦ ±¸ÇöÇÏ´Â °ÍÀº »ç¿ëÀÚ Ç÷¯±×ÀÎÀÔ´Ï´Ù. ±×¸®°í ÆÀ Á¦°ø¾÷ü¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ ¸ÊÇÎÇÏÁö ¾Ê´Â ÀÛ¾÷µµ ÀÌ Ç÷¯±×Àο¡¼ ¼öÇàµË´Ï´Ù. ±¸¼º ÇØÁ¦ ¸Þ¼Òµå´Â ÇÁ·ÎÁ§Æ® °ü·Ã ij½Ã¸¦ »èÁ¦Çϰųª UIÀÇ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ÂüÁ¶¸¦ Á¦°ÅÇϱ⿡ ÀûÇÕÇÕ´Ï´Ù. CVS Á¦°ø¾÷ü´Â º¸±â¿¡ º¸°üµÈ ÇÁ·ÎÁ§Æ® °ü·Ã ij½Ã¸¦ ºñ¿ì°í ÇÁ·ÎÁ§Æ®°¡ ±¸¼º ÇØÁ¦µÇ¾úÀ½À» ºê·Îµåij½ºÆ®ÇÕ´Ï´Ù.
public void deconfigure() throws CoreException { ... try { EclipseSynchronizer.getInstance().flush(getProject(), true, true /*flush deep*/, null); } catch(CVSException e) { throw new CoreException(e.getStatus()); } finally { CVSProviderPlugin.broadcastProjectDeconfigured(getProject()); } }