3.0 ¸ÞÄ¿´ÏÁò ¹× API¸¦ äÅÃÇÒ ¶§ ÇÊ¿äÇÑ º¯°æ»çÇ×

ÀÌ ¼½¼Ç¿¡¼­´Â 3.0 ¸ÞÄ¿´ÏÁò ¹× API¸¦ äÅÃÇϵµ·Ï 2.1 Ç÷¯±×ÀÎÀ» º¯°æÇÏ·Á´Â °æ¿ì ÇÊ¿äÇÑ º¯°æ»çÇ׿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

org.eclipse.core.runtime.compatibility Á¦°Å

Eclipse 3.0 ·±Å¸ÀÓÀº »ó´çÈ÷ ´Ù¸¨´Ï´Ù. ±âº»ÀûÀÎ ±¸ÇöÀÌ OSGi ÇÁ·¹ÀÓ¿öÅ© ½ºÆåÀ» ±âÃÊ·Î ÇÕ´Ï´Ù. Eclipse 3.0 ·±Å¸ÀÓ¿¡´Â 2.1 API¸¦ À¯Áöº¸¼öÇϴ ȣȯ¼º °èÃþ(org.eclipse.core.runtime.compatibility Ç÷¯±×Àο¡¼­)ÀÌ Æ÷ÇԵ˴ϴÙ. Ãß°¡ ¼º´É ¹× ±â´É¿¡µµ °ü½ÉÀÌ ÀÖ´Â Ç÷¯±×ÀÎ °³¹ßÀÚ´Â 3.0 API¸¦ äÅÃÇϰí ȣȯ¼º °èÃþ¿¡¼­ Á¾¼Ó¼ºÀ» Á¦°ÅÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ȣȯ¼º ÄÚµå´Â ¼¼ °÷¿¡¼­ Ç¥½ÃµË´Ï´Ù.

¾Æ·¡ÀÇ ÅØ½ºÆ®´Â ȣȯ¼º ¸ñÀû°ú Ç÷¯±×ÀÎ °»½Å ¹æ¹ý ¾È³»¸¦ À§ÇÑ Å¬·¡½º ¹× ¸Þ¼Òµå¿¡ °üÇÑ ¼¼ºÎ»çÇ×À» Á¦°øÇÕ´Ï´Ù.

Ç÷¯±×ÀÎ ¹× ¹øµé

Eclipse ·±Å¸ÀÓÀº µÎ ºÎºÐÀ¸·Î ¸®ÆÑÅ丵µÇ¾ú½À´Ï´Ù. Ŭ·¡½º·Îµù ¹× ÀüÁ¦Á¶°Ç °ü¸®¿Í È®Àå/È®ÀåÁ¡ °ü¸®ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ºÐÇҷΠŬ·¡½º·Îµù ¹× ÀüÁ¦Á¶°Ç °ü¸®¿¡ ´ëÇÑ OSGi ÇÁ·¹ÀÓ¿öÅ© ½ºÆåÀ» ÀÚ¿¬½º·´°Ô/ÇѰᰰÀÌ Ã¤ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. À̷μ­ µ¿Àû Ç÷¯±×ÀÎ ¼³Ä¡/¼³Ä¡ Á¦°Å/°»½Å¿¡¼­ º¸¾È ¹× ±¸¼º °¡´É¼º Áõ°¡¿¡ À̸£±â±îÁö ·±Å¸ÀÓ¿¡¼­ ±¤¹üÀ§ÇÑ »õ ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

°è¼ÓÇØ¼­ Ç÷¯±×Àο¡ ´ëÇØ À̾߱âÇϰí Àִµ¥, »õ ·±Å¸ÀÓ¿¡¼­´Â Ç÷¯±×ÀÎÀÌ ½ÇÁ¦·Î ¹øµé¿¡ ÀϺΠȮÀå ¹× È®ÀåÁ¡À» ´õÇÑ °ÍÀÔ´Ï´Ù. ¹øµéÀ̶ó´Â ¿ë¾î´Â OSGi ÇÁ·¹ÀÓ¿öÅ© ½ºÆå¿¡¼­ Á¤ÀǵǾî ÀÖÀ¸¸ç À¯Çü ¹× ÀÚ¿ø°ú ÀÌ¿¡ ¿¬°üµÇ´Â ¹øµé°£ ÀüÁ¦Á¶°Ç Á¤º¸ÀÇ ÄÝ·º¼ÇÀ» ¸»ÇÕ´Ï´Ù. È®Àå ·¹Áö½ºÆ®¸®´Â Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®ÀÇ »õ ¾ç½ÄÀ¸·Î È®Àå ¹× È®ÀåÁ¡ Á¤º¸¸¸ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù. ´ëü·Î È®Àå ·¹Áö½ºÆ®¸® API´Â °ü·ÃµÈ Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® API¿Í °°½À´Ï´Ù. (ÀÚ¼¼ÇÑ Á¤º¸´Â ·¹Áö½ºÆ®¸®¸¦ ÂüÁ¶ÇϽʽÿÀ.)

Eclipse 2.x ·±Å¸ÀÓ¿¡¼­, Ç÷¯±×ÀÎ ¿ÀºêÁ§Æ®´Â ¿©·¯ °³ÀÇ ¿ªÇÒ ¹× Ã¥ÀÓÀ» °¡Áö°í ÀÖ½À´Ï´Ù.

Eclipse 3.0 ·±Å¸ÀÓ ±×¸²¿¡¼­, ÀÌ ¿ªÇÒ°ú Ã¥ÀÓÀº º°µµÀÇ ¿ÀºêÁ§Æ®·Î ÆÑÅ͸µµË´Ï´Ù.

¹øµé
¹øµéÀº ¸ðµâ ¹æ½ÄÀÇ OSGi ÀåÄ¡ÀÔ´Ï´Ù. ¹øµé´ç ÇϳªÀÇ Å¬·¡½º ·Î´õ°¡ ÀÖ°í Eclipse¿Í À¯»çÇÑ ¹øµé°£ Ŭ·¡½º ·Îµù Á¾¼Ó¼º ±×·¡ÇÁ¸¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹øµéÀº ½ÃÀÛ ¹× ÁßÁö¿Í, °ü½ÉÀÖ´Â ºÎºÐ¿¡ ´ëÇÑ OSGi ÇÁ·¹ÀÓ¿öÅ© ºê·Îµåij½ºÆ® ¹øµé °ü·Ã À̺¥Æ®(¿¹: ¼³Ä¡, ºÐ¼®, ½ÃÀÛ, ÁßÁö ¼³Ä¡ Á¦°Å...)ÀÇ ¶óÀÌÇÁ»çÀÌŬÀ» °¡Áö°í ÀÖ½À´Ï´Ù. Eclipse Ç÷¯±×ÀΠŬ·¡½º¿Í´Â ´Þ¸®, OSGi ¹øµé Ŭ·¡½º´Â È®Àå °¡´ÉÇÏÁö ¾Ê½À´Ï´Ù. Áï, °³¹ßÀÚ´Â ÀÚ½ÅÀÇ ¹øµé Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ±âȸ¸¦ °®Áö ¸øÇÕ´Ï´Ù.
BundleActivator
BundleActivator´Â OSGi ÇÁ·¹ÀÓ¿öÅ©·Î Á¤ÀÇµÈ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. °¢°¢ÀÇ ¹øµéÀº Ç÷¯±×ÀÎÀÌ ÇØ´çµÇ´Â Ç÷¯±×ÀΠŬ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Â °Íó·³ ¹øµé Ȱ¼ºÈ­±â Ŭ·¡½º¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ÁöÁ¤µÈ Ŭ·¡½º´Â ÇÁ·¹ÀÓ¿öÅ©¿¡ ÀÇÇØ ÀνºÅϽº°¡ ÀÛ¼ºµÇ°í start() ¹× stop() ¶óÀÌÇÁ»çÀÌŬ 󸮸¦ ±¸ÇöÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ±×·¯³ª ÀÌ ¶óÀÌÇÁ»çÀÌŬ ó¸® ¼Ó¼º¿¡ ÁÖ¿äÇÑ Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. Eclipse¿¡¼­´Â Ç÷¯±×ÀΠŬ·¡½º°¡ ÃʱâÈ­ ¹× µî·Ï µÑ ´Ù¸¦ ¼öÇàÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÔ´Ï´Ù(±ÇÀå»çÇ×Àº ¾Æ´ÏÁö¸¸). OSGi¿¡¼­ Ȱ¼ºÈ­±â¸¸ µî·ÏÀ» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù. BundleActivator.start()¿¡¼­ ¸¹Àº ¾çÀÇ ÃʱâÈ­(¶Ç´Â ´Ù¸¥ ÀÛ¾÷)¸¦ ¼öÇàÇÏ¸é ½Ã½ºÅÛ È°¼º »óŸ¦ À§ÇùÇÏ°Ô µË´Ï´Ù.
BundleContext
BundleContext´Â °³ÀÎ ¹øµé¿¡ ÀϹÝÀûÀÎ ½Ã½ºÅÛ ±â´ÉÀ» ³ëÃâÇϱâ À§ÇÑ OSGi ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù. °¢ ¹øµé¿¡´Â ½Ã½ºÅÛ ±â´É¿¡ ¾×¼¼½ºÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â BundleContextÀÇ °íÀ¯ÇÑ °³ÀÎ ÀνºÅϽº°¡ ÀÖ½À´Ï´Ù(¿¹: ½Ã½ºÅÛ¿¡ ÀÖ´Â ¸ðµç ¹øµéÀ» ¹ß°ßÇϱâ À§ÇÑ getBundles()).
Ç÷¯±×ÀÎ
»õ Ç÷¯±×ÀÎÀº Ç÷¯±×ÀÎ ¿ÀºêÁ§Æ®°¡ ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾Ê°Å³ª ·±Å¸ÀÓ¿¡ ÀÇÇØ °ü¸®µÇ¹Ç·Î ´Ù¾çÇÑ ¸Þ¼Òµå°¡ Æó±âµÇ¾ú´Ù´Â Á¡À» Á¦¿ÜÇÏ°í ¿ø·¡ Eclipse Ç÷¯±×ÀΠŬ·¡½º¿Í ¾ÆÁÖ À¯»çÇÕ´Ï´Ù. À¯¿ëÇÑ ±â´É ¹× ¸ÞÄ¿´ÏÁòÀÇ È£½ºÆ®¸¦ Á¦°øÇÏ´Â Æí¸®ÇÑ ¸ÞÄ¿´ÏÁòÀÌÁö¸¸ Àý´ëÀûÀ¸·Î ¹Ýµå½Ã ÇÊ¿äÇÏÁö´Â ¾Ê½À´Ï´Ù. ÀÌ ¸ÞÄ¿´ÏÁò¿¡¼­ Á¦°øµÇ´Â ¸¹Àº ±â´ÉÀº ·±Å¸ÀÓ¿¡¼­ Ç÷§Æû Ŭ·¡½º¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç÷¯±×ÀÎÀº ¶ÇÇÑ BundleActivator¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ´Â Ç÷¯±×ÀÎÀÇ ¶óÀÌÇÁ»çÀÌŬ ¹× ½Ã¸ÇƽÀ» Ç¥½ÃÇÏ´Â ÇϳªÀÇ Á᫐ ¿ÀºêÁ§Æ®¸¦ °¡Áö°í ÀÖÀ» °æ¿ìÀÇ Æí¸®¼ºÀ» ÀνÄÇÕ´Ï´Ù. ±×·¯³ª ÀÌ´Â ¿À´Ã³¯ Ç÷¯±×Àο¡ °øÅëµÇ´Â, µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ Æí¸®ÇÑ ÃʱâÈ­°¡ Àû¿ëµÇÁö´Â ¾Ê½À´Ï´Ù. ¾î¶² ´Ù¸¥ Ç÷¯±×Àο¡¼­ Ŭ·¡½º¸¦ °ËÁõÇÏ´Â µ¿¾È ´Ù¼Ò Áß¿äÇÏÁö ¾ÊÀº Ŭ·¡½º°¡ ÂüÁ¶µÇ¾úÀ¸¹Ç·Î Ç÷¯±×ÀÎÀÌ È°¼ºÈ­µÉ ¼ö ÀÖ´Ù°í ÃæºÐÈ÷ °­Á¶ÇÒ ¼ö ¾ø½À´Ï´Ù. Áï, »ç¿ëÀÚÀÇ Ç÷¯±×ÀÎÀÌ È°¼ºÈ­µÇ¾ú´Ù°í ÇØ¼­ ÇØ´ç ±â´ÉÀÌ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ ´Ù¸¥ BundleActivator Ŭ·¡½º¸¦ Á¤ÀÇÇÏ´Â °ÍÀº »ç¿ëÀÚ¿¡°Ô ´Þ·Á ÀÖÀ¸¸ç Á¤ÀÇÇÏÁö ¾ÊÀ» °æ¿ì ¹øµé Ȱ¼ºÈ­±â¸¦ ÀüÇô °¡Áö°í ÀÖÁö ¾ÊÀ½À» À¯ÀÇÇϽʽÿÀ.

2.x Ç÷¯±×ÀΠŬ·¡½º¸¦ Eclipse 3.0À¸·Î À̽ÄÇÏ´Â µ¥ ÇÊ¿äÇÑ ´Ü°è´Â Ŭ·¡½º°¡ ¼öÇà ÁßÀÎ ´ë»ó¿¡ µû¶ó ´Ù¸¨´Ï´Ù. À§¿¡ ¿ä¾àµÈ °Íó·³, ´ëºÎºÐÀÇ ½ÃÀÛ ¶óÀÌÇÁ»çÀÌŬ ÀÛ¾÷Àº ´ÙÀ½ Ä«Å×°í¸® Áß Çϳª¿¡ ¼ÓÇÕ´Ï´Ù.

ÃʱâÈ­
µ¥ÀÌÅÍ ±¸Á¶ ¹× ¸ðµ¨ ÃʱâÈ­´Â Plugin.startup()¿¡¼­ ÀÚÁÖ ¼öÇàµË´Ï´Ù. º»·¡ÀÇ/¸í¹éÇÑ ¸ÊÇÎÀº BundleActivator.start()¿¡¼­ À̸¦ ¼öÇàÇÏ°Ô µË´Ï´Ù. Áï Ç÷¯±×Àο¡¼­ ±â´ÉÀ» ¼öÇàÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ´Â ±ÇÀåµÇÁö ¾Ê½À´Ï´Ù. 2.x Ç÷¯±×Àο¡¼­¿Í °°ÀÌ, 3.0 Ç÷¯±×ÀÎ/¹øµéÀº ´Ù¾çÇÑ »óȲ¿¡¼­ ¿©·¯°¡Áö ÀÌÀ¯·Î ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
Eclipse 2.0ÀÇ ½ÇÁ¦ ¿¹Á¦´Â ÀÌ °æ¿ì¸¦ º¸¿©ÁÝ´Ï´Ù. ¾à 11MBÀÇ ÄÚµå¿Í ´ë¿ë·®ÀÇ µ¥ÀÌÅ͸¦ ·ÎµùÇØ¾ß ÇÏ´Â ´ëÇü ¸ðµ¨À» ÃʱâÈ­ÇÑ Ç÷¯±×ÀÎÀÌ ÀÖ½À´Ï´Ù. ÀÌ Ç÷¯±×ÀÎÀÌ ³×ºñ°ÔÀÌÅÍ¿¡ Ç¥½ÃµÈ ÇÁ·ÎÁ§Æ® ¾ÆÀÌÄÜÀ» ƯÁ¤ ¸¶Å©¾÷À¸·Î ÀÛ¼ºµÇ¾î¾ß ÇÏ´Â Áö ¿©ºÎ¸¦ ¹ß°ßÇϱâ À§ÇØ È°¼ºÈ­µÈ ÀÏ¹Ý À¯½º ÄÉÀ̽º°¡ ÀÖ½À´Ï´Ù. ÀÌ Å×½ºÆ®¿¡¼­´Â startup()¿¡¼­ ÃʱâÈ­¸¦ ¼öÇàÇÒ Çʿ䰡 ¾ø¾úÁö¸¸ ÀÌ¹Ì ¸ðµç À¯½º ÄÉÀ̽º¿¡ ÀÖ´Â ¸ðµç »ç¿ëÀÚ´Â ÀÌ·¯ÇÑ ÃʱâÈ­¿¡ ±â´ë·Î ÀÎÇØ ¸Þ¸ð¸® ¹× ½Ã°£ ºÒÀÌÀÍÀ» ÀÔ¾ú½À´Ï´Ù.
´ëü ¹æ½ÄÀº ÀÌÀü ¹æ½Äó·³ ÃʱâÈ­¸¦ ¼öÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, Ç÷¯±×ÀÎ/¹øµéÀÌ È°¼ºÈ­µÉ ¶§ ¸ðµ¨À» ÃʱâÈ­Çϱ⠺¸´Ù´Â ½ÇÁ¦·Î ÇÊ¿äÇÒ ¶§(¿¹: Áß¾Ó ÁýÁßÈ­µÈ ¸ðµ¨ ¾×¼¼¼­ ¸Þ¼Òµå¿¡¼­) ÃʱâÈ­ÇϽʽÿÀ. ´ëºÎºÐÀÇ À¯½º ÄÉÀ̽º¿¡¼­ ÀÌ´Â ½Ã°£»ó °ÅÀÇ °°Áö¸¸ ´Ù¸¥ ½Ã³ª¸®¿ÀÀÇ °æ¿ì¿¡´Â ÀÌ Á¢±Ù ¹æ½ÄÀÌ ÃʱâÈ­¸¦ Áö¿¬½Ãŵ´Ï´Ù. 2.1 Ç÷¯±×ÀÎÀ» À̽ÄÇÏ´Â Áß¿¡µµ »ç¿ëµÇ´Â ÃʱâÈ­ Àü·«À» ´Ù½Ã °í·ÁÇÒ ½Ã°£À» °¡Áö½Ê½Ã¿À.
µî·Ï
Ç÷¯±×ÀÎ ½ÃÀÛÀº ¸®½º³Ê, ¼­ºñ½º µîÀ» µî·ÏÇÏ°í ¹è°æ ó¸® ½º·¹µå(¿¹: ¼ÒÄÏ¿¡¼­ ûÃë)¸¦ ½ÃÀÛÇÏ±â Æí¸®ÇÑ ½ÃÁ¡ÀÔ´Ï´Ù. Plugin.start()´Â ÀÌ ÀÛ¾÷À» ¼öÇàÇϱ⿡ ÀûÀýÇÑ °ø°£ÀÏ ¼ö ÀÖ½À´Ï´Ù. ÀϺΠ´Ù¸¥ Æ®¸®°Å°¡ ¹ß»ýÇÒ ¶§±îÁö(¿¹: ƯÁ¤ ±â´É ¶Ç´Â µ¥ÀÌÅÍ ¿ä¼Ò »ç¿ë) Áö¿¬Çϵµ·Ï ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Ç÷¯±×ÀÎ ±Û·Î¹ú µ¥ÀÌÅÍ
Ç÷¯±×ÀΠŬ·¡½º´Â °è¼Ó ÀÌ ¿ªÇÒÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ±âº»ÀûÀÎ ¹®Á¦´Â Ç÷¯±×ÀÎ ¿ÀºêÁ§Æ®°¡ ´õ ÀÌ»ó ½Ã½ºÅÛ °ü¸® ¸ñ·ÏÀ» ÅëÇØ ±Û·Î¹ú·Î ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù´Â °ÍÀÔ´Ï´Ù. Eclipse 2.x¿¡¼­´Â Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®¸¦ ÅëÇØ Ç÷¯±×ÀÎÀÇ Ç÷¯±×ÀÎ ¿ÀºêÁ§Æ®¸¦ ¹ß°ßÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÀÌ´Â ´õ ÀÌ»ó °¡´ÉÇÏÁö ¾Ê½À´Ï´Ù. ´ëºÎºÐÀÇ »óȲ¿¡¼­ ÀÌ À¯ÇüÀÇ ¾×¼¼½º´Â ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ·¹Áö½ºÆ®¸®¸¦ ÅëÇØ ¾×¼¼½ºÇÑ Ç÷¯±×ÀÎÀº µµ¸ÞÀΠƯÁ¤ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Íº¸´Ù ¿ÀÈ÷·Á ´õ ÀϹÝÀûÀ¸·Î ÀÏ¹Ý Ç÷¯±×ÀÎÀ¸·Î¼­ »ç¿ëµË´Ï´Ù. ÇØ´çµÇ´Â ¹øµé ¿ÀºêÁ§Æ®¿¡ ¾×¼¼½ºÇϰí Á¶ÀÛÇÏ¿© ÇØ´ç ·¹º§ÀÇ ±â´ÉÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.

·¹Áö½ºÆ®¸® ¹× Ç÷¯±×ÀÎ ¸ðµ¨

»õ ·±Å¸ÀÓ¿¡¼­´Â Ç÷¯±×ÀÎÀ» ½ÇÇàÇÏ´Â µ¥ ÇÊ¿äÇϸç Ç÷¯±×ÀÎ È®Àå ¹× È®ÀåÁ¡¿¡ °ü·ÃµÇ´Â Á¤º¸ ¹× ±¸Á¶ »çÀÌ¿¡ ±¸ºÐµÇ¾î ÀÖ½À´Ï´Ù. ÀüÀÚ´Â OSGi ÇÁ·¹ÀÓ¿öÅ© ½ºÆå¿¡ ÀÇÇØ Á¤ÀÇ ¹× °ü¸®µÇ°í ÈÄÀÚ´Â Eclipse ƯÁ¤ °³³äÀ¸·Î Eclipse ·±Å¸ÀÓ ÄÚµå·Î Ãß°¡µË´Ï´Ù. ÀÌ¿¡ µû¶ó, ¿ø·¡ Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® ¹× °ü·Ã ¿ÀºêÁ§Æ®°¡ OSGi ¹øµé ¹× Eclipse È®Àå ·¹Áö½ºÆ®¸®·Î ºÐÇҵǾú½À´Ï´Ù.

½ÇÇà ½ºÆå(¿¹: IPluginDescriptor, ILibrary, IPrequisite)À» ´Ù·ç´Â IPluginRegistryÀÇ ÆÄÆ®°¡ Æó±âµÇ°í È®Àå ¹× È®ÀåÁ¡¿¡ °ü·ÃµÇ´Â ³ª¸ÓÁö ÆÄÆ®´Â IExtensionRegistry·Î À̵¿µÇ¾ú½À´Ï´Ù. °Ô´Ù°¡ Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®¿¡ °ü·ÃµÇ´Â À̸¥¹Ù ¸ðµ¨ ¿ÀºêÁ§Æ®µµ ÀÌÁ¦ ÀüüÀûÀ¸·Î Æó±âµÇ¾ú½À´Ï´Ù. ÀÌ À¯ÇüµéÀº ±âº»ÀûÀ¸·Î PDE¿Í °°Àº µµ±¸¸¦ Áö¿øÇϱâ À§ÇØ ·±Å¸ÀÓ¿¡¼­ Á¦½ÃµÇ°í ÀνºÅϽº°¡ ÀÛ¼ºµÇ¾ú½À´Ï´Ù. ºÒÇàÈ÷µµ, ÇÊ¿äÇÑ Á¤º¸ ·¹º§ÀÌ ·±Å¸ÀÓÀÇ ±â´É ¶Ç´Â °ü½É(¿¹: plugin.xml ¿ä¼ÒÀÇ Çà ¹øÈ£ ±â¾ï)À» ÃʰúÇÏ°í °á±¹ ·±Å¸ÀÓ Á¤º¸ÀÇ ÀáÀçµÈ ÀÌ¿ëÀÚ°¡ ÀÚ½ÅÀÇ ±¸Á¶¸¦ ¾î¶»°ÔµçÁö À¯ÁöÇØ¾ß ÇÏ´Â °æ¿ì°¡ Á¾Á¾ ÀÖ¾ú½À´Ï´Ù.

»õ ·±Å¸ÀÓ¿¡¼­´Â ·±Å¸ÀÓÀÌ Á¦°øÇÏ´Â ±â´ÉÀ» ´Ù½Ã Æò°¡ÇßÀ¸¸ç, ÀÌÁ¦´Â ·±Å¸ÀÓ ½ÇÇà¿¡ Áß¿äÇϰųª ´Ù¸¥ ´ë»ó¿¡°Ô´Â ¼öÇàÇϱⰡ ¾öû ¾î·Á¿î ±â´É¸¸ Á¦°øÇÕ´Ï´Ù. À§¿¡ ¾ð±ÞµÈ °Íó·³, Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸® ¸ðµ¨ ¿ÀºêÁ§Æ®°¡ Æó±âµÇ¾ú½À´Ï´Ù. Ç÷¯±×ÀÎ ±¸¹® ºÐ¼® API¸¦ °¡Áö°í Àֱ⠶§¹®ÀÔ´Ï´Ù. »õ È®Àå ·¹Áö½ºÆ®¸®´Â Áß¿äÇÑ È®Àå °ü·Ã Á¤º¸¸¦ À¯Áöº¸¼öÇÕ´Ï´Ù. »õ »óÅÂ(org.eclipse.osgi.service.resolver.State ¹× ÀÏ¿ø ÂüÁ¶) ±¸Á¶°¡ Á¦½ÃµÇ¸ç Áß¿äÇÑ ½ÇÇà °ü·Ã Á¤º¸¸¦ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù.

NL ´ÜÆí ±¸Á¶

Eclipse 3.0¿¡¼­´Â NL ´ÜÆí ±¸Á¶°¡ ´õ Àϰü¼ºÀ» À¯ÁöÇϵµ·Ï °»½ÅµÇ¾ú½À´Ï´Ù. ÀÌÀü¿¡´Â plugin.properties¿Í °°Àº ÆÄÀÏÀÇ º¯È¯ÀÌ ´ÜÆí¿¡ ÀÇÇØ Á¦°øµÇ´Â JAR ¾È¿¡ ÀÖ´Â °ÍÀ¸·Î °¡Á¤Çß½À´Ï´Ù. ¿ø·¡ ÆÄÀÏÀº °ü·Ã È£½ºÆ® Ç÷¯±×ÀÎ ·çÆ®¿¡¼­ ¹ß°ßµÇ¹Ç·Î, ´õ Àϰü¼º ÀÖ´Â À§Ä¡¿¡¼­ NL ´ÜÆíÀÇ ·çÆ®¿¡ ÀÖ´Â º¯È¯µÈ ÆÄÀÏÀ» °®°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

  org.eclipse.ui.workbench.nl/
     fragment.xml
     plugin_fr.properties
     plugin_pt_BR.properties
     ...
     nl1.jar

¿©±â¿¡¼­ nl1.jar ÆÄÀÏÀº ÀÌÀü¿¡ plugin.properties¿¡ ´ëÇÑ º¯È¯À» Æ÷ÇÔÇϵµ·Ï µÇ¾î ÀÖ¾ú½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ÀÌÁ¦ ´ÜÆíÀÇ ·çÆ®¿¡ ÀÖÀ¸¸ç JARÀÌ È£½ºÆ® Ç÷¯±×Àο¡¼­ º¯È¯ °¡´É ÀÚ¿ø(Áï, Ŭ·¡½º ·Î´õ¸¦ ÅëÇØ ·ÎµåµÇ´Â ÆÄÀÏ)ÀÇ º¯È¯À» Æ÷ÇÔÇÕ´Ï´Ù.

¹°·Ð Eclipse 2.1 NL ´ÜÆí ±¸Á¶´Â °è¼Ó Eclipse 3.0¿¡¼­ ½ÇÇàµÇ´Â 2.1 È£½ºÆ® Ç÷¯±×Àο¡ ´ëÇØ Áö¿øµË´Ï´Ù. ±×·¯³ª 3.0 Ç÷¯±×Àο¡¼­´Â 2.1 NL ´ÜÆíÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ´ÜÆíÀº »õ ±¸Á¶·Î °»½ÅÇØ¾ß ÇÕ´Ï´Ù.

API º¯°æ °³¿ä

org.eclipse.core.boot(ÆÐŰÁö org.eclipse.core.boot)

Àüü org.eclipse.core.boot ÆÐŰÁö°¡ Æó±âµÇ¾ú½À´Ï´Ù. BootLoader´Â ´õ ÀÌ»ó ½Ãµ¿ ¹× ·±Å¸ÀÓ »çÀÌÀÇ ºÐÇÒÀ» ÀνÄÇÏÁö ¸øÇϹǷΠorg.eclipse.core.runtime.Platform°ú º´ÇյǾú½À´Ï´Ù. »ç½Ç, org.eclipse.core.boot Ç÷¯±×ÀÎÀº ±¸ºÐµÇ¾î ÇØ´çµÇ´Â ¸ðµç Äڵ尡 »õ ·±Å¸ÀÓ ¶Ç´Â ȣȯ¼º °èÃþÀ¸·Î À̵¿µÇ¾ú½À´Ï´Ù.

IPlatformConfigurationÀº Ç×»ó Eclipse ¼³Ä¡/°»½Å ÄÄÆ÷³ÍÆ®¿¡ ÀÇÇØ(´ëÇØ) Á¤ÀÇµÈ À¯ÇüÀ̾ú½À´Ï´Ù. ·±Å¸ÀÓ À籸¼ºÀ¸·Î, ÀÌ À¯ÇüÀ» ÀûÀýÇÑ È¨À¸·Î º¸³¾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ´ë±Ô¸ð·Î º¯°æµÇÁö ¾ÊÀºÃ¤ À¯ÁöµÇ¸ç org.eclipse.update.configurator.IPlatformConfigurationÀ¸·Î ´Ù½Ã ÆÐŰ¡µÇ¾ú½À´Ï´Ù.

IPlatformRunnableÀº org.eclipse.core.runtime.IPlatformRunnable·Î À̵¿µÇ¾ú½À´Ï´Ù.

IExtension ¹× IExtensionPoint(ÆÐŰÁö org.eclipse.core.runtime)

getDeclaringPlugin() ¸Þ¼Òµå(µÎ Ŭ·¡½º ¸ðµÎÀÇ)´Â È®Àå ¶Ç´Â È®ÀåÁ¡À» ¼±¾ðÇÏ´Â Ç÷¯±×Àο¡ °¢°¢ »óÇâ ¸µÅ©¸¦ Á¦°øÇÕ´Ï´Ù. »õ ·¹Áö½ºÆ®¸® ¸ðµ¨Àº Ç÷¯±×ÀÎÀÇ ½ÇÇà Ãø¸éÀ» È®Àå/È®ÀåÁ¡ Ãø¸é°ú ºÐ¸®ÇÏ°í ´õ ÀÌ»ó IPluginDescriptors¸¦ Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ APIÀÇ »ç¿ëÀÚ´Â IExtension ¹× IExtensionPoint¿¡¼­ ¹ß°ßµÇ´Â »õ ¸Þ¼Òµå getParentIdentifier()¸¦ °í·ÁÇØ¾ß ÇÕ´Ï´Ù.

ILibrary, IPluginDescriptor, IPluginRegistry ¹× IPrerequisite(ÆÐŰÁö org.eclipse.core.runtime)

¿ø·¡ ·±Å¸ÀÓ¿¡¼­, Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®´Â ·±Å¸ÀÓ ±¸¼ºÀÇ Àüü ±×¸²À» À¯Áöº¸¼öÇß½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â ÀÌ ±×¸²ÀÌ OSGi ÇÁ·¹ÀÓ¿öÅ© ¹× È®Àå ·¹Áö½ºÆ®¸®¿¡ °ÉÃÄ ºÐÇҵ˴ϴÙ. ÀÌ¿¡ µû¶ó ÇØ´ç Ŭ·¡½º°¡ Æó±âµÇ¾ú½À´Ï´Ù. Æó±â ÁÖÀÇ»çÇ׿¡´Â ÄÚµå °»½Å ¹æ¹ýÀÌ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

Ç÷§Æû ¹× Ç÷¯±×ÀÎ(ÆÐŰÁö org.eclipse.core.runtime)

»õ ·±Å¸ÀÓ¿¡¼­´Â Plugin ¿ÀºêÁ§Æ®°¡ ´õ ÀÌ»ó ·±Å¸ÀÓ¿¡ ÀÇÇØ °ü¸®µÇÁö ¾ÊÀ¸¹Ç·Î Ç÷§ÆûÀ» ÅëÇØ ÀϹÝÀûÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ¾ø½À´Ï´Ù. ¸¶Âù°¡Áö·Î, Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®´Â ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾Ê°Å³ª Ç÷¯±×ÀÎ ¼³¸íÀÚ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ±×·¯³ª »ç¿ëÇÒ ¼ö ÀÖ´Â ÀûÀýÇÑ ´ëü ¸Þ¼Òµå°¡ ÀÖÀ¸¸ç ÀÌ Å¬·¡½º¿¡¼­ Æä±âµÈ ¸Þ¼ÒµåÀÇ Javadoc¿¡ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

org.eclipse.core.runtime.model(ÆÐŰÁö org.eclipse.core.runtime.model)

ÀÌ ÆÐŰÁöÀÇ ¸ðµç À¯ÇüÀÌ Æó±âµÇ¾ú½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ·¹Áö½ºÆ®¸® ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ.

IWorkspaceRunnable ¹× IWorkspace.run(ÆÐŰÁö org.eclipse.core.resources)

IWorkspace.run(IWorkspaceRunnable,IProgressMonitor) ¸Þ¼ÒµåÀÇ Å¬¶óÀÌ¾ðÆ®´Â ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÑ À§Ä¡¿¡ ´Ù½Ã °ËÅäÇÏ¿© ´õ dzºÎÇÑ IWorkspace.run(IWorkspaceRunnable,ISchedulingRule,int,IProgressMonitor) ¸Þ¼Òµå¸¦ »ç¿ëÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ÀÌÀü IWorkspace.run ¸Þ¼Òµå´Â IWorkspaceRunnable Áö¼Ó ±â°£ µ¿¾È Àüü ÀÛ¾÷°ø°£¿¡ ´ëÇÑ Àá±ÝÀ» ȹµæÇÕ´Ï´Ù. ÀÌ´Â ÀÌ ¸Þ¼Òµå·Î ¼öÇàµÈ Á¶ÀÛÀÌ ÀÛ¾÷°ø°£À» º¯°æÇÏ´Â ´Ù¸¥ Á¶ÀÛ°ú µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ¾øÀ½À» ÀǹÌÇÕ´Ï´Ù. Eclipse 3.0¿¡¼­, ¸¹Àº Àå±â ½ÇÇà Á¶ÀÛÀÌ ¹é±×¶ó¿îµå ½º·¹µå·Î À̵¿µÇ¾úÀ¸¹Ç·Î, Á¶ÀÛ »çÀÌÀÇ Ãæµ¹ ¹ß»ý °¡´É¼ºÀÌ È®½ÇÇÏ°Ô ³ô¾ÆÁ³½À´Ï´Ù. ¸ð´Þ Àü°æ Á¶ÀÛÀÌ Àå±â ½ÇÇà ¹è°æ Á¶ÀÛÀ¸·Î ºí·ÏÈ­µÈ °æ¿ì, ¹è°æ Á¶ÀÛÀÌ ¿Ï·áµÇ°Å³ª Á¶ÀÛ Áß Çϳª°¡ Ãë¼ÒµÉ ¶§±îÁö UI´Â ºí·ÏÈ­µË´Ï´Ù.

Á¦¾ÈµÇ´Â ¼Ö·ç¼ÇÀº ¸ðµç ÂüÁ¶¸¦ ÀÌÀü IWorkspace.runÀ¸·Î ÀüȯÇÏ¿© ½ºÄÉÁÙ¸µ ±ÔÄ¢ ¸Å°³º¯¼ö¿Í ÇÔ²² »õ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ½ºÄÉÁÙ¸µ ±ÔÄ¢Àº ÇØ´ç Á¶ÀÛ¿¡ ÀÇÇØ ¼öÇàµÇ´Â ¸ðµç º¯°æ»çÇ׿¡ ÇØ´çµÇ´Â ±ÔÄ¢À» Æ÷ÇÔÇÏ´Â °¡Àå ¼¼¹ÐÇÑ ±ÔÄ¢À̾î¾ß ÇÕ´Ï´Ù. Á¶ÀÛÀÌ ½ºÄÉÁÙ¸µ ±ÔÄ¢ ¹üÀ§ ¹Û¿¡¼­ ÀÚ¿øÀ» ¼öÁ¤ÇÏ·Á°í ÇÒ °æ¿ì ·±Å¸ÀÓ ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù. ÁöÁ¤µÈ ÀÛ¾÷°ø°£ Á¶ÀÛ¿¡ ÇÊ¿äÇÑ Á¤È®ÇÑ ½ºÄÉÁÙ¸µ ±ÔÄ¢ÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î, ÁöÁ¤µÈ ÇÁ·ÎÁ§Æ®¿¡ ¼³Ä¡µÈ ÀúÀå¼Ò Á¦°øÀÚ¿¡ µû¶ó º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÑÅ丮 IResourceRuleFactory¸¦ »ç¿ëÇÏ¿© resource-changing Á¶ÀÛ¿¡ ÇØ´çµÇ´Â ½ºÄÉÁÙ¸µ ±ÔÄ¢À» È®º¸ÇØ¾ß ÇÕ´Ï´Ù. ¿øÇÒ °æ¿ì MultiRuleÀ» »ç¿ëÇÏ¿© ¿©·¯ °³ÀÇ ÀÚ¿ø ±ÔÄ¢À» ÁöÁ¤Çϰí MultiRule.combine Æí¸® ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ resource-changing Á¶ÀÛÀÇ ±ÔÄ¢À» °áÇÕÇÒ ¼ö ÀÖ½À´Ï´Ù.

Àá±ÝÀÌ ÇÊ¿äÇÏÁö ¾ÊÀ» °æ¿ì, null ½ºÄÉÁÙ¸µ ±ÔÄ¢À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̷μ­ ½ÇÇà ÇÁ·Î±×·¥ÀÌ ÀÛ¾÷°ø°£¿¡ ÀÖ´Â ¸ðµç ÀÚ¿øÀ» ¼öÁ¤ÇÒ ¼ö ÀÖÁö¸¸ ´Ù¸¥ ½º·¹µå°¡ µ¿½Ã¿¡ ÀÛ¾÷°ø°£À» ¼öÁ¤ÇÏÁö ¸øÇϵµ·Ï ¹æÁöÇÏÁö´Â ¸øÇÕ´Ï´Ù. ÀÛ¾÷°ø°£¿¡ ´ëÇÑ ´Ü¼ø º¯°æÀÇ °æ¿ì ÀÌ´Â Á¾Á¾ °¡Àå ½¬¿ì¸é¼­ °¡Àå µ¿½Ã¼ºÀÌ Àͼ÷ÇÑ ¼Ö·ç¼ÇÀÔ´Ï´Ù.

IWorkbenchPage(ÆÐŰÁö org.eclipse.ui)

IEditorDescriptor(ÆÐŰÁö org.eclipse.ui)

ISharedImages(ÆÐŰÁö org.eclipse.ui)

IWorkbenchActionConstants(ÆÐŰÁö org.eclipse.ui)

IWorkbenchPreferenceConstants(ÆÐŰÁö org.eclipse.ui)

IExportWizard(ÆÐŰÁö org.eclipse.ui)

IImportWizard(ÆÐŰÁö org.eclipse.ui)

INewWizard(ÆÐŰÁö org.eclipse.ui)

WorkbenchHelp(ÆÐŰÁö org.eclipse.ui.help)

IHelp(ÆÐŰÁö org.eclipse.help)

ITextEditorActionConstants(ÆÐŰÁö org.eclipse.ui.texteditor)

IAbstractTextEditorHelpContextIds(ÆÐŰÁö org.eclipse.ui.texteditor)

BasicTextEditorActionContributor(ÆÐŰÁö org.eclipse.ui.texteditor)

TextEditorActionContributor(ÆÐŰÁö org.eclipse.ui.editors.text)

annotationTypes È®ÀåÁ¡(Ç÷¯±×ÀÎ org.eclipse.ui.editors)

ÀÌÁ¦´Â ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ ¸í½ÃÀû °³³äÀÌ ÀÖ½À´Ï´Ù. Annotation.getType() ¹× Annotation.setType()À» ÂüÁ¶ÇϽʽÿÀ. ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀº ¶óÀÌÇÁ»çÀÌŬ Áß¿¡ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ È®ÀåÁ¡Àº ¾î³ëÅ×ÀÌ¼Ç À¯Çü ¼±¾ð "org.eclipse.ui.editors.annotationTypes"À» À§ÇØ Ãß°¡µÇ¾ú½À´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç À¯Çü¿¡´Â À̸§ÀÌ À־ ¼±¾ðµÈ ´Ù¸¥ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ ÇÏÀ§ À¯ÇüÀ¸·Î ¼±¾ðµÉ ¼ö ÀÖ½À´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç À¯Çü ¼±¾ðÀº "markerType" ¹× "markerSeverity" ¼Ó¼ºÀ» »ç¿ëÇÏ¿© ÁöÁ¤µÈ À¯ÇüÀÇ ¸¶Ä¿¿Í ÁöÁ¤µÈ ½É°¢µµ°¡ ƯÁ¤ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ ¾î³ëÅ×À̼ÇÀ¸·Î ÅØ½ºÆ® ÆíÁý±â¿¡ Ç¥½ÃµÇµµ·Ï ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. "org.eclipse.ui.editors.markerAnnotationSpecification"¿¡¼­ "markerType" ¹× "markerSeverity" ¼Ó¼ºÀº ´õ ÀÌ»ó »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀº ¸¶Ä¿¿Í´Â °ü°è°¡ ¾ø°Ô µÇ¹Ç·Î À̸§ÀÌ À߸øµÉ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª À̸§Àº ¿ªÈ£È¯¼ºÀ» À§ÇØ º¸Á¸µË´Ï´Ù.

AbstractMarkerAnnotationModelÀÇ ¼­ºêŬ·¡½º ÀνºÅϽº´Â ¸¶Ä¿·ÎºÎÅÍ ÀÛ¼ºÇÏ´Â ¾î³ëÅ×À̼ǿ¡ ´ëÇØ ÀÚµ¿À¸·Î ¿Ã¹Ù¸¥ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀ» ¹ß°ßÇÏ¿© ¼³Á¤ÇÕ´Ï´Ù. ÁöÁ¤µÈ ¸¶Ä¿³ª ÁöÁ¤µÈ markerType ¹× markerSeverity ½Ö¿¡ ÇØ´çµÇ´Â ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀ» ÇÁ·Î±×·¥ ¹æ½ÄÀ¸·Î °Ë»öÇÏ·Á¸é org.eclipse.ui.texteditor.AnnotationTypeLookupÀ» »ç¿ëÇϽʽÿÀ.

¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ °èÃþ ±¸Á¶¿¡ ´ëÇÑ ¾×¼¼½º´Â IAnnotationAccessExtensionÀÌ Á¦°øÇÕ´Ï´Ù. ÁöÁ¤µÈ ¾î³ëÅ×ÀÌ¼Ç À¯Çü¿¡ ´ëÇØ »óÀ§ À¯Çü üÀÎÀ» °¡Á®¿À°í ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÌ ´Ù¸¥ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ »óÀ§ À¯ÇüÀÎÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. DefaultMarkerAnnotationAccess´Â ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.

markerAnnotationSpecification È®ÀåÁ¡(Ç÷¯±×ÀÎ org.eclipse.ui.editors)

¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀº ¿¬°üµÈ ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀ» ã´Â ŰÀÔ´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀº ´Ù¸¥ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀ» È®ÀåÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆå »çÀÌ¿¡´Â ³»ÀçµÈ °ü°è°¡ ÀÖ½À´Ï´Ù. µû¶ó¼­ ÁöÁ¤µÈ ¾î³ëÅ×ÀÌ¼Ç À¯Çü¿¡ ´ëÇÑ ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀº ÁöÁ¤µÈ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ »óÀ§ À¯Çü¿¡ ´ëÇØ Á¦°øµÈ ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆå¿¡ ÀÇÇØ ¿Ï·áµË´Ï´Ù. µû¶ó¼­ ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀº ÀÌÀü¿¡ ÇÊ¿äÇßÀ¸¹Ç·Î ¿Ï·áÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀº AnnotationPreferences¿¡ ÀÇÇØ °Ë»öµË´Ï´Ù. org.eclipse.ui.texteditor.AnnotationPreferenceLookupÀ» »ç¿ëÇÏ¿©, ¾î³ëÅ×ÀÌ¼Ç »óÀ§ À¯Çü üÀο¡ µû¶ó ȯ°æ ¼³Á¤ ¿Ï·á¸¦ Åõ¸íÇÏ°Ô ¼öÇàÇÏ´Â ÁöÁ¤µÈ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ ¾î³ëÅ×ÀÌ¼Ç È¯°æ ¼³Á¤À» °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀº ¼¼·Î ´«±ÝÀÚ¿¡¼­ ÁöÁ¤µÈ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÇ »ç¿ëÀÚ Á¤ÀÇ ¸ð¾ç Á¤Àǰ¡ Çã¿ëµÇµµ·Ï ¼¼ °³ÀÇ Ãß°¡ ¼Ó¼ºÀ¸·Î È®ÀåµÇ¾ú½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº "icon", "symbolicIcon" ¹× "annotationImageProvider"ÀÔ´Ï´Ù. "icon"ÀÇ °ªÀº ¾ÆÀÌÄÜ À̹ÌÁö¸¦ Æ÷ÇÔÇÏ´Â ÆÄÀÏÀÇ °æ·ÎÀÔ´Ï´Ù. "symbolicIcon"ÀÇ °ªÀº "error", "warning", "info", "task", "bookmark" Áß Çϳª°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. "symbolicIcon" ¼Ó¼ºÀº ¿À·ù, °æ°í, Á¤º¸, Ÿ½ºÅ© ¹× Ã¥°¥ÇǸ¦ °¢°¢ Ç¥½ÃÇϱâ À§ÇØ Ç÷§ÆûÀÌ »ç¿ëÇÏ´Â µ¿ÀÏ À̹ÌÁö·Î ¾î³ëÅ×À̼ÇÀ» ¹¦»çÇØ¾ß ÇÔÀ» Ç÷§Æû¿¡ Áö½ÃÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. "annotationImageProvider"ÀÇ °ªÀº Àüü »ç¿ëÀÚ Á¤ÀÇ ¾î³ëÅ×ÀÌ¼Ç ÇÁ¸®Á¨Å×À̼ǿ¡ ´ëÇØ Çã¿ëµÇ´Â org.eclipse.ui.texteditor.IAnnotationImageProvider¸¦ ±¸ÇöÇϴ Ŭ·¡½ºÀÔ´Ï´Ù.

¼¼·Î ´«±ÝÀÚ´Â ÇØ´çµÇ´Â ¿¬°ü IAnnotationAccess/IAnnotationAccessExtensionÀ» »ç¿ëÇÏ¿© ¾î³ëÅ×À̼ÇÀ» ±×¸³´Ï´Ù. ¼¼·Î ´«±ÝÀÚ´Â Annotation.paint¸¦ ´õ ÀÌ»ó È£ÃâÇÏÁö ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¾î³ëÅ×À̼ÇÀº ´õ ÀÌ»ó ÀÚü¸¦ ±×¸®µµ·Ï Á¦¾ÈµÇÁö ¾Ê½À´Ï´Ù. °á±¹ ¾î³ëÅ×À̼ÇÀÌ UI¿Í °ü°è°¡ ¾øµµ·Ï Çϱâ À§ÇØ "paint" ¹× "getLayer" ¸Þ¼Òµå°¡ Æó±âµÇ¾ú½À´Ï´Ù. DefaultMarkerAnnotationAccess´Â IAnnotationAccess/IAnnotationAccessExtensionÀÇ ±âº» ±¸ÇöÀ¸·Î ¼­ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù. DefaultMarkerAnnotationAccess´Â ¾î³ëÅ×ÀÌ¼Ç ÆäÀÎÆÃÀ» À§ÇØ ´ÙÀ½ Àü·«À» ±¸ÇöÇÕ´Ï´Ù. Àü·«: ¾î³ëÅ×À̼ÇÀÌ IAnnotationPresentationÀ» ±¸ÇöÇÒ °æ¿ì IAnnotationPresentation.paint°¡ È£ÃâµË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¾î³ëÅ×ÀÌ¼Ç À̹ÌÁö Á¦°øÀÚ¸¦ ¾î³ëÅ×ÀÌ¼Ç È¯°æ ¼³Á¤¿¡¼­ ã½À´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç À̹ÌÁö Á¦°øÀÚ´Â ÁöÁ¤µÈ °æ¿ì¿¡ ¿£Å¬·Î¡ ¸¶Ä¿ ¾î³ëÅ×ÀÌ¼Ç ½ºÆåÀ» Á¤ÀÇÇÏ´Â Ç÷¯±×ÀÎÀÌ ÀÌ¹Ì ·ÎµåµÈ °æ¿ì¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç À̹ÌÁö Á¦°øÀÚ°¡ ÀÖÀ» °æ¿ì¿¡´Â È£ÃâÀÌ ÀÌ Á¦°øÀÚ·Î Àü´ÞµË´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÁöÁ¤µÈ "icon"À» ã½À´Ï´Ù. "symbolicIcon"Àº ÃÖÁ¾ ´ëü·Î »ç¿ëµË´Ï´Ù. ¾î³ëÅ×ÀÌ¼Ç ±×¸®±â¿¡´Â ¾î³ëÅ×ÀÌ¼Ç ÇÁ¸®Á¨Å×ÀÌ¼Ç °èÃþÀÌ °ü·ÃµË´Ï´Ù. DefaultMarkerAnnotationAccess´Â ´ÙÀ½ Àü·«À» »ç¿ëÇÏ¿© ÇÁ¸®Á¨Å×ÀÌ¼Ç °èÃþÀ» ã½À´Ï´Ù. Àü·«: ¾î³ëÅ×ÀÌ¼Ç È¯°æ ¼³Á¤ÀÌ ÇÁ¸®Á¨Å×ÀÌ¼Ç °èÃþÀ» ÁöÁ¤ÇÒ °æ¿ì, ÁöÁ¤µÈ °èÃþÀÌ »ç¿ëµË´Ï´Ù. °èÃþÀÌ ¾ø´Âµ¥ ¾î³ëÅ×À̼ÇÀÌ IAnnotationPresentationÀ» ±¸ÇöÇÒ °æ¿ì¿¡´Â IAnnotationPresentation.getLayer°¡ »ç¿ëµÇ°í ±×·¸Áö ¾ÊÀ¸¸é ±âº» ÇÁ¸®Á¨Å×ÀÌ¼Ç °èÃþ(0)ÀÌ ¸®Åϵ˴ϴÙ.

annotationTypes È®ÀåÁ¡À¸·Î ÀÌÁÖ(Ç÷¯±×ÀÎ org.eclipse.ui.editors)

org.eclipse.ui.editors Ç÷¯±×Àο¡ ÀÇÇØ ´ÙÀ½ ¾î³ëÅ×ÀÌ¼Ç À¯ÇüÀÌ ¼±¾ðµË´Ï´Ù.

   <extension point="org.eclipse.ui.editors.annotationTypes">
      <type
         name="org.eclipse.ui.workbench.texteditor.error"
         markerType="org.eclipse.core.resources.problemmarker"
         markerSeverity="2">
      </type>
      <type
         name="org.eclipse.ui.workbench.texteditor.warning"
         markerType="org.eclipse.core.resources.problemmarker"
         markerSeverity="1">
      </type>
      <type
         name="org.eclipse.ui.workbench.texteditor.info"
         markerType="org.eclipse.core.resources.problemmarker"
         markerSeverity="0">
      </type>
      <type
         name="org.eclipse.ui.workbench.texteditor.task"
         markerType="org.eclipse.core.resources.taskmarker">
      </type>
      <type
         name="org.eclipse.ui.workbench.texteditor.bookmark"
         markerType="org.eclipse.core.resources.bookmark">
      </type>
   </extension>

Á¤ÀÇµÈ markerAnnotationSpecification È®ÀåÀº ´õ ÀÌ»ó "markerType" ¹× "markerSeverity" ¼Ó¼ºÀ» Á¦°øÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ È®ÀåÀº ÇØ´çµÇ´Â °ªÀ» »ç¿ëÇÏ¿© "symbolicIcon" ¼Ó¼ºÀ» Á¤ÀÇÇÕ´Ï´Ù. µû¶ó¼­ MarkerAnnotation.paint ¹× MarkerAnnotation.getLayer´Â ´õ ÀÌ»ó È£ÃâµÇÁö ¾Ê½À´Ï´Ù(Áï, ÀÌ ¸Þ¼Òµå¸¦ ´ëÃ¼ÇØµµ È¿°ú°¡ ¾ø½À´Ï´Ù). ¿µÇâÀ» ¹Þ´Â Ŭ¶óÀÌ¾ðÆ®´Â IAnnotationPresentation¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.

ILaunchConfigurationType(ÆÐŰÁö org.eclipse.debug.core)

3.0¿¡´Â È®Àå °¡´ÉÇÑ ½ÇÇà ¸ðµå°¡ µµÀԵǾî ÀÖÀ¸¹Ç·Î, ÇϳªÀÇ ½ÇÇà ±¸¼º À¯Çü¿¡ ´ëÇØ ¿©·¯ °³ÀÇ ½ÇÇà À§ÀÓÀÌ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. 3.0 ÀÌÀü ¸±¸®½º´Â ½ÇÇà ±¸¼º À¯Çü¸¶´Ù ÇϳªÀÇ ½ÇÇà À§ÀÓ¸¸ Áö¿øÇß½À´Ï´Ù. ¸Þ¼Òµå ILaunchConfigurationType.getDelegate()´Â ÀÌÁ¦ »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ¸Þ¼Òµå getDelegate(String mode)¸¦ ´ë½Å »ç¿ëÇÏ¿© ƯÁ¤ ½ÇÇà ¸ðµå¿¡ ÇØ´çµÇ´Â ½ÇÇà À§ÀÓÀ» °Ë»öÇØ¾ß ÇÕ´Ï´Ù. Æó±âµÈ ¸Þ¼Òµå´Â run ¸ðµå¿¡ ÇØ´çµÇ´Â ½ÇÇà À§ÀÓÀ» ¸®ÅÏÇϵµ·Ï º¯°æµÇ¾ú½À´Ï´Ù.

ILaunchConfigurationTab ¹× ILaunchConfigurationTabGroup(ÆÐŰÁö org.eclipse.debug.ui)

½ÇÇàÀÌ ¿Ï·áµÉ ¶§ ½ÇÇà ÅÇ ±×·ì ¹× ½ÇÇà ÅÇ¿¡ ´õ ÀÌ»ó ¾Ë¸®Áö ¾Ê½À´Ï´Ù. ILaunchConfigurationTab ¹× ILaunchConfigurationTabGroup ÀÎÅÍÆäÀ̽º¿¡¼­ ¸Þ¼Òµå launched(ILaunch)°¡ Æó±âµÇ¾î ´õ ÀÌ»ó È£ÃâµÇÁö ¾Ê½À´Ï´Ù. ½ÇÇà ±â´É¿¡ ´ëÇØ ÀÌ ¸Þ¼Òµå¿¡ ÀÇÁ¸ÇÒ °æ¿ì Ç×»ó ¹®Á¦Á¡ÀÌ ¹ß»ýÇß½À´Ï´Ù. ½ÇÇà ´ëÈ­ »óÀÚ¿¡¼­ ½ÇÇàÀ» ¼öÇàÇÒ °æ¿ì¿¡¸¸ ÅÇÀÌ Á¸ÀçÇϱ⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ ¹è°æ ½ÇÇà µµÀÔÀ¸·Î, ÀÌ ¸Þ¼Òµå´Â ´õ ÀÌ»ó È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù. °á°ú·Î »ý¼ºµÇ´Â ½ÇÇà ¿ÀºêÁ§Æ®°¡ Á¸ÀçÇϱâ Àü¿¡ ½ÇÇà ´ëÈ­ »óÀÚ°¡ ´ÝÈ÷±â ¶§¹®ÀÔ´Ï´Ù.

ILaunchConfigurationTab ¹× AbstractLaunchConfigurationTab(ÆÐŰÁö org.eclipse.debug.ui)

ILaunchConfigurationTab ÀÎÅÍÆäÀ̽º¿¡ µÎ °³ÀÇ ¸Þ¼Òµå(activated ¹× deactivated)°¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ÀÌ »õ·Î¿î ¶óÀÌÇÁ»çÀÌŬ ¸Þ¼Òµå´Â °¢°¢ ÅÇ¿¡ ÁøÀÔÇÒ °æ¿ì¿Í ³ª°¥ °æ¿ì¿¡ È£ÃâµË´Ï´Ù. µð¹ö±× Ç÷¯±×ÀÎ(AbstractLaunchConfigurationTab)ÀÌ Á¦°øÇÑ Ãß»ó Ŭ·¡½º¸¦ ¼­ºêŬ·¡½ºÈ­ÇÏ´Â ILaunchConfigurationTabÀÇ ±âÁ¸ ±¸ÇöÀº ¸Þ¼Òµå°¡ Ãß»ó Ŭ·¡½º¿¡¼­ ±¸ÇöµÇ¹Ç·Î 2Áø ȣȯ °¡´ÉÇÕ´Ï´Ù.

ÀÌÀü ¸±¸®½º¿¡¼­´Â ÅÇÀÌ È°¼ºÈ­µÉ ¶§ initializeFrom ¸Þ½ÃÁö°¡ ¼Û½ÅµÇ°í ºñȰ¼ºÈ­µÉ ¶§ performApply ¸Þ½ÃÁö°¡ ¼Û½ÅµÇ¾ú½À´Ï´Ù. ÀÌ ¹æ½Ä¿¡¼­, ½ÇÇà ±¸¼º ÅÇ ÇÁ·¹ÀÓ¿öÅ©´Â ½ÇÇà ±¸¼ºÀ» ÅëÇØ ÅÇ »çÀÌÀÇ Åë½ÅÀ» Á¦°øÇß½À´Ï´Ù(ÅÇ¿¡¼­ ³ª°¥ ¶§ ÇöÀç ¼Ó¼º °ªÀ¸·Î ±¸¼ºÀ» °»½ÅÇÏ°í »õ·Î ÅÇ¿¡ µé¾î°¥ ¶§ °»½ÅÇÏ¿©). ÇÏÁö¸¸ ¸¹Àº ÅÇÀÌ ÅÇ »çÀÌÀÇ Åë½ÅÀ» ¼öÇàÇÏÁö ¾ÊÀ¸¹Ç·Î ÀÌ´Â ºñÈ¿À²ÀûÀÔ´Ï´Ù. ¶ÇÇÑ È°¼ºÈ­µÇ´Â Åǰú óÀ½À¸·Î ¼±ÅÃµÈ ½ÇÇà ±¸¼ºÀ» Ç¥½ÃÇÏ´Â ÅÇ »çÀÌ¿¡ ±¸º°ÇÒ ¹æ¹ýÀÌ ¾ø¾ú½À´Ï´Ù. »õ·Î Ãß°¡µÈ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÅÇÀº Ȱ¼ºÈ­ ¹× ÃʱâÈ­ »çÀÌ¿¡ ±¸º°ÇÏ°í ºñȰ¼ºÈ­ ¹× ÇöÀç °ª ÀúÀå »çÀÌ¿¡ ±¸º°ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ãß»ó ÅÇÀÌ Á¦°øÇÏ´Â activatedÀÇ ±âº» ±¸ÇöÀº initializeFromÀ» È£ÃâÇÕ´Ï´Ù. ±×¸®°í deactivatedÀÇ ±âº» ±¸ÇöÀº performApply¸¦ È£ÃâÇÕ´Ï´Ù. »õ API¸¦ ÀÌ¿ëÇÏ·Á´Â ÅÇÀº Çʿ信 µû¶ó ÀÌ ¸Þ¼Òµå¸¦ ´ëÃ¼ÇØ¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î, ÅÇ »çÀÌÀÇ Åë½ÅÀ» ¼öÇàÇÏÁö ¾Ê´Â ÅÇÀÇ °æ¿ì ±ÇÀåµÇ´Â Á¢±Ù ¹æ½ÄÀº ¾Æ¹« °Íµµ ¼öÇàÇÏÁö ¾Êµµ·Ï ÀÌ ¸Þ¼Òµå¸¦ ´Ù½Ã ±¸ÇöÇÏ´Â °ÍÀÔ´Ï´Ù.

launchConfigurationTabGroup È®ÀåÁ¡ À¯Çü(ÆÐŰÁö org.eclipse.debug.ui)

ÀÌÀü ¸±¸®½º¿¡¼­´Â ½ÇÇà ±¸¼º¿¡¼­ ½ÇÇà ±¸¼º ¼Ó¼º ATTR_TARGET_DEBUG_PERSPECTIVE ¹× ATTR_TARGET_RUN_PERSPECTIVE¸¦ ÅëÇØ Perspective ÀüȯÀ» ÁöÁ¤Çß½À´Ï´Ù. 3.0¿¡´Â È®Àå °¡´É ½ÇÇà ¸ðµå°¡ Ãß°¡µÇ¾úÀ¸¹Ç·Î ÀÌ Á¢±Ù ¹æ½ÄÀº ´õ ÀÌ»ó È®ÀåÇÏÁö ¾Ê½À´Ï´Ù. Perspective ÀüȯÀº ÀÌÁ¦ ½ÇÇà ±¸¼º À¯ÇüÀÌ Áö¿øÇÏ´Â ½ÇÇà ¸ðµå¸¶´Ù ½ÇÇà ±¸¼º À¯ÇüÀ» ±âÃÊ·Î ÁöÁ¤µË´Ï´Ù. ƯÁ¤ ½ÇÇà ¸ðµå¿¡ ÇØ´çµÇ´Â ½ÇÇà ±¸¼º À¯Çü°ú ¿¬°üµÇ´Â Perspective¸¦ ¼³Á¤ÇÏ°í °¡Á®¿À±â À§ÇØ DebugUITools¿¡ API°¡ Ãß°¡µÇ¾ú½À´Ï´Ù.

¶ÇÇÑ ¼±ÅÃÀû launchMode ¿ä¼Ò°¡ launchConfigurationTabGroup È®ÀåÁ¡¿¡ Ãß°¡µÇ¾î, Á¦°øµÈ ÅÇ ±¸¼ºÀÌ ½ÇÇà ±¸¼º À¯Çü ¹× ¸ðµå¿¡ ´ëÇÑ ±âº» Perspective¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Eclipse »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ, »ç¿ëÀÚ´Â ½ÇÇà ±¸¼º ´ëÈ­ »óÀÚ¸¦ ¿­°í Æ®¸®(°³º° ±¸¼ºÀÌ ¾Æ´Ñ)¿¡¼­ ½ÇÇà ±¸¼º À¯Çü ³ëµå¸¦ ¼±ÅÃÇÏ¿© ½ÇÇà ±¸¼º À¯Çü°ú ¿¬°üµÇ´Â Perspective¸¦ ÆíÁýÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ°¡ °¢°¢ÀÇ Áö¿øµÇ´Â ½ÇÇà ¸ðµå¿¡¼­ Perspective¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÅÇÀÌ Ç¥½ÃµË´Ï´Ù.

[JDT Àü¿ë] IVMRunner(ÆÐŰÁö org.eclipse.jdt.launching)

ȯ°æ º¯¼ö ¼³Á¤ ¹× °Ë»öÀ» Áö¿øÇϱâ À§ÇØ µÎ °³ÀÇ ¸Þ¼Òµå°¡ VMRunnerConfiguration Ŭ·¡½º¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù. IVMRunner ±¸ÇöÀÚ´Â VMRunnerConfiguration.getEnvironment()¸¦ È£ÃâÇϰí ÇØ´ç ȯ°æÀ» ½ÇÇàµÈ JVMÀ¸·Î Àü´ÞÇØ¾ß ÇÕ´Ï´Ù. DebugPlugin.exec(String[] cmdLine, File workingDirectory)¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ´ë½Å DebugPlugin.exec(String[] cmdLine, File workingDirectory, String[] envp)¸¦ È£ÃâÇÏ¿© À̸¦ ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. getEnvironment()¸¦ ÅëÇØ °á°ú¸¦ Àü´ÞÇÏ´Â °Í¸¸À¸·Î ÃæºÐÇÕ´Ï´Ù.

[JDT Àü¿ë] VMRunnerConfiguration ¹× Bootstrap Ŭ·¡½º(ÆÐŰÁö org.eclipse.jdt.launching)

ÀÌÀü ¸±¸®½º¿¡¼­´Â VMRunnerConfiguration¿¡ ½Ãµ¿ °æ·Î¸¦ ¼³¸íÇϱâ À§ÇÑ ÇϳªÀÇ ¼Ó¼ºÀÌ ÀÖ¾ú½À´Ï´Ù. ¼Ó¼ºÀº -Xbootclasspath Àμö¿¡ ÁöÁ¤µÉ String ÄÝ·º¼ÇÀÔ´Ï´Ù. ½Ãµ¿ °æ·Î ¾ÕµÚ¿¡ Ãß°¡ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ´Â JVMÀ» Áö¿øÇϱâ À§ÇØ VMRunnerConfiguration¿¡ ¼¼ °³ÀÇ »õ ¼Ó¼ºÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. Ãß°¡µÈ »õ ¸Þ¼Òµå/¼Ó¼ºÀº ´ÙÀ½°ú °°½À´Ï´Ù.

ÀÌÀü ¼Ó¼ºÀÎ getBootClassPath()´Â °è¼Ó Á¸ÀçÇÏ¸ç ¼¼ °³ÀÇ »õ ¼Ó¼º¿¡ ÇØ´çµÇ´Â Àüü °æ·Î¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ±×·¯³ª »õ ½Ãµ¿ °æ·Î ¿É¼ÇÀ» Áö¿øÇÏ´Â VMRunners´Â »õ ¼Ó¼ºÀ» ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù.

[JDT Àü¿ë] ÀÛ¾÷ ÁßÀÎ »çº»¿¡ ´ëÇÑ Áö¿ø °³¼±(ÆÐŰÁö org.eclipse.jdt.core)

º¹»ç ±â´É ÀÛ¾÷À» ¼öÇà ÁßÀÎ Java ¸ðµ¨Àº 3.0¿¡¼­ È®½ÇÇÑ ±â´É¼º Áõ°¡¸¦ Á¦°øÇϱâ À§ÇØ ´Ù½Ã ÀÛ¾÷Çß½À´Ï´Ù. 3.0 ÀÌÀü¿¡´Â ÄÄÆÄÀÏ ´ÜÀ§ÀÇ °³ÀÎ ÀÛ¾÷ »çº»À» ÀÛ¼ºÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÀÛ¾÷ ÁßÀÎ »çº»À» º¯°æÇÒ ¼ö ÀÖ¾úÀ¸¸ç ³ªÁß¿¡ È®¾àÇß½À´Ï´Ù. Java ¸ðµ¨ÀÇ ³ª¸ÓÁö ÄÁÅØ½ºÆ®¿¡¼­ Á¦ÇÑµÈ ÀÛ¾÷ »çº» ºÐ¼®À» À§ÇÑ Áö¿øÀÌ ÀÖ¾ú½À´Ï´Ù. ±×·¯³ª ÇÑ ¹ø¿¡ ÀÛ¾÷ »çº» Áß µÎ °³ ÀÌ»óÀ» ºÐ¼®¿¡ °í·ÁÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀº ¾ø¾ú½À´Ï´Ù.

3.0¿¡¼­ÀÇ º¯°æ»çÇ×À¸·Î ÄÄÆÄÀÏ ´ÜÀ§ÀÇ ÀÛ¾÷ »çº» ¼¼Æ®¸¦ ÀÛ¼º ¹× °ü¸®ÇÏ°í ¼¼Æ®¿¡ ÀÖ´Â ¸ðµç ÀÛ¾÷ »çº» Á¸Àç¿¡ ´ëÇØ ºÐ¼®À» ¼öÇàÇÒ ¼ö ÀÖ°Ô µÇ¾ú½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌÁ¦´Â JDT ¸®ÆÑÅ丵 °°Àº Ŭ¶óÀÌ¾ðÆ®´Â ¼öÁ¤ ÁßÀ¸·Î °£ÁÖÇϰí ÀÖ´Â Çϳª ÀÌ»óÀÇ ÄÄÆÄÀÏ ´ÜÀ§¿¡ ´ëÇÑ ÀÛ¾÷ »çº»À» ÀÛ¼ºÇÑ ÈÄ ÀÛ¾÷ »çº» »çÀÌÀÇ À¯Çü ÂüÁ¶¸¦ ºÐ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌÀü¿¡´Â ÄÄÆÄÀÏ ´ÜÀ§ ÀÛ¾÷ »çº»¿¡ ´ëÇÑ º¯°æ»çÇ×ÀÌ È®¾àµÈ ÈÄ¿¡¸¸ °¡´ÉÇß½À´Ï´Ù.

Java ¸ðµ¨ API´Â ÀÌ¿Í °°Àº °³¼±µÈ Áö¿øÀ» Ãß°¡Çϱâ À§ÇØ µÎ °¡Áö ¹æ¹ýÀ¸·Î º¯°æµÇ¾ú½À´Ï´Ù.

(1) ÀÌÀü¿¡ IWorkingCopy¿¡¼­ ¹ß°ßµÇ¾ú°í ICompilationUnit¿¡ ÀÇÇØ »ó¼ÓµÈ ±â´ÉÀº ICompilationUnit¿¡ ÅëÇյǾú½À´Ï´Ù. IWorkingCopy ÀÎÅÍÆäÀ̽º´Â ÀÌ ÇϳªÀÇ °ø°£¿¡¼­¸¸ »ç¿ëµÇ¾úÁö¸¸ ±Ù°Å¾øÀÌ ´õ ÀϹÝÈ­µÇ¾î ÇÊ¿äÇÏ°Ô µÇ¾ú½À´Ï´Ù. ÀÌ º¯°æÀ¸·Î API°¡ ´Ü¼øÈ­µÇ¾ú½À´Ï´Ù. IWorkingCopy´Â Æó±âµÇ¾ú½À´Ï´Ù. API¿¡¼­ IWorkingCopy°¡ ¸Å°³º¯¼ö ¶Ç´Â °á°ú À¯ÇüÀ¸·Î »ç¿ëµÇ´Â ´Ù¸¥ °ø°£µµ Æó±âµÇ¾ú½À´Ï´Ù. ´ëü API ¸Þ¼Òµå¿¡¼­´Â IWorkingCopy ´ë½Å ICompilationUnit¸¦ ¾ð±ÞÇÕ´Ï´Ù.

(2) IBufferFactory ÀÎÅÍÆäÀ̽º°¡ WorkingCopyOwner·Î ´ëüµÇ¾ú½À´Ï´Ù. ÀÛ¾÷ »çº»¿¡ ´ëÇÑ °³¼±µÈ Áö¿øÀ» »ç¿ëÇÏ·Á¸é ÀÛ¾÷ »çº»À» ¼ÒÀ¯ÇÒ ¿ÀºêÁ§Æ®°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. IBufferFactory°¡ ¿Ã¹Ù¸¥ À§Ä¡¿¡ À־, À̸§Àº »õ ÀÛ¾÷ »çº» ¸ÞÄ¿´ÏÁòÀÌ ÀÛµ¿ÇÏ´Â ¹æ¹ýÀ» ÀûÀýÇÏ°Ô ¾Ë¸®Áö ¸øÇÕ´Ï´Ù. WorkingCopyOwner¸¦ ÇÑÃþ ´õ Á¦¾ÈÇÕ´Ï´Ù. ¶ÇÇÑ WorkingCopyOwner´Â ÀÎÅÍÆäÀ̽ºº¸´Ù´Â Ãß»ó Ŭ·¡½º·Î ¼±¾ðµÇ¹Ç·Î, ÀÛ¾÷ »çº» ¼ÒÀ¯ÀÚÀÇ °³³äÀ» Â÷ÈÄ¿¡ ´õ ¹ßÀü½Ãų ¼ö ÀÖ½À´Ï´Ù. IBufferFactory¿¡¼­ ÇϳªÀÇ ¸Þ¼Òµå°¡ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â WorkingCopyOwner·Î À̵¿ÇÕ´Ï´Ù. WorkingCopyOwner´Â IBufferFactory°¡ ÀÌÀü °ÍÀÓÀ» ¸í¹éÈ÷ Çϱâ À§ÇØ IBufferFactory¸¦ ±¸ÇöÇÏÁö ¾Ê½À´Ï´Ù. IBufferFactory°¡ Æó±âµÇ¾ú½À´Ï´Ù. API¿¡¼­ IBufferFactory°¡ ¸Å°³º¯¼ö ¶Ç´Â °á°ú À¯ÇüÀ¸·Î Ç¥½ÃµÇ´Â ´Ù¸¥ °ø°£µµ Æó±âµÇ¾ú½À´Ï´Ù. ´ëü API ¸Þ¼Òµå¿¡¼­´Â IBufferFactory ´ë½Å WorkingCopyOwner¸¦ ¾ð±ÞÇÕ´Ï´Ù.

ÀÌ º¯°æ»çÇ×Àº 2Áø ȣȯ¼ºÀ» Áß´ÜÇÏÁö ¾Ê½À´Ï´Ù.

ÀÌÁÖÇÒ ¶§ À¯Çü IWorkingCopy¿¡ ´ëÇÑ ¸ðµç ÂüÁ¶´Â ´ë½Å ICompilationUnit¸¦ ÂüÁ¶ÇÕ´Ï´Ù. IWorkingCopyÀÇ ´Üµ¶ ±¸ÇöÀº ICompilationUnitµµ ±¸ÇöÇÕ´Ï´Ù. ÀÌ´Â À¯Çü IWorkingCopyÀÇ ¿ÀºêÁ§Æ®°¡ ICompilationUnit¿¡ ¾ÈÀüÇÏ°Ô Ä³½ºÆ®ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.

IBufferFactory¸¦ ±¸ÇöÇϴ Ŭ·¡½º´Â WorkingCopyOwner ¼­ºêŬ·¡½º¿¡ ÀÇÇØ ´ëüµÇ¾î¾ß ÇÕ´Ï´Ù. WorkingCopyOwner°¡ IBufferFactory ÀÚü¸¦ ±¸ÇöÇÏÁö ¾Ê¾Æµµ, IBufferFactory¸¦ ±¸ÇöÇÏ´Â WorkingCopyOwnerÀÇ ¼­ºêŬ·¡½º¸¦ ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ¿¡ µû¶ó ÀÌÀü ¹× »õ Ŭ·¡½º »çÀÌ¿¡ ºê¸´Áö°¡ ÀÛ¼ºµË´Ï´Ù(IBufferFactory´Â createBuffer(IOpenable)¸¦ ¼±¾ðÇÏ´Â ¹Ý¸é WorkingCopyOwner´Â createBuffer(ICompilationUnit)¸¦ ¼±¾ðÇÕ´Ï´Ù. ICompilationUnit´Â IOpenableÀ» È®ÀåÇÕ´Ï´Ù).

IWorkingCopy ¹× IBufferFactory¸¦ Æ÷ÇÔÇÏ´Â º¯°æ»çÇ×ÀÌ ¼­·Î ¾ôÇôÀÖÀ¸¹Ç·Î µÑ ´Ù µ¿½Ã¿¡ ó¸®ÇÒ °ÍÀ» ±ÇÀåÇÕ´Ï´Ù. Æó±â¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.

org.eclipse.help Ç÷¯±×ÀÎÀÇ ±¸Á¶ º¯°æ

µµ¿ò¸» ½Ã½ºÅÛ¿¡ Á¦°øÇÏ°í µµ¿ò¸» ½Ã½ºÅÛÀ» È®ÀåÇÒ »Ó¸¸ ¾Æ´Ï¶ó µµ¿ò¸»À» Ç¥½ÃÇϱâ À§ÇØ API ¹× È®ÀåÁ¡À» º¸À¯ÇÏ´Â µ¥ »ç¿ëÇÏ´Â org.eclipse.help Ç÷¯±×ÀÎÀº ÀÌÁ¦ µµ¿ò¸» ÀÚ¿ø¿¡ Á¦°øÇÏ°í µµ¿ò¸» ÀÚ¿ø¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ API ¹× È®ÀåÁ¡À» Æ÷ÇÔÇÕ´Ï´Ù. ÀÌ Ç÷¯±×Àο¡ Æ÷ÇÔµÈ ±âº» µµ¿ò¸» UI ±¸ÇöÀÇ ÀϺΰ¡ ±¸Çö È®ÀåÀ» À§ÇÑ API¿Í ÇÔ²² »õ Ç÷¯±×ÀÎ org.eclipse.help.base·Î À̵¿µÇ¾ú½À´Ï´Ù. µµ¿ò¸» UI¸¦ Á¦°øÇÏ°í µµ¿ò¸»À» Ç¥½ÃÇϱâ À§ÇÑ API ¹× È®ÀåÁ¡ÀÌ org.eclipse.ui Ç÷¯±×ÀÎÀ¸·Î À̵¿µÇ¾ú½À´Ï´Ù. ÀÌ ±¸Á¶ º¯°æÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥Àº µµ¿ò¸» ½Ã½ºÅÛ¿¡ ´ëÇØ ´õ ¸¹Àº À¶Å뼺À» °¡Áú ¼ö ÀÖ½À´Ï´Ù. »õ ±¸Á¶¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥Àº ÀÏ¹Ý Workbench¸¦ ±âÃÊ·Î ÀÚ½ÅÀÇ °íÀ¯ µµ¿ò¸» UI ¹×/¶Ç´Â µµ¿ò¸» ±¸ÇöÀ» Á¦°øÇϰųª µµ¿ò¸» ½Ã½ºÅÛÀ» ÀüüÀûÀ¸·Î »ý·«ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿µÇâ¹ÞÀº È®ÀåÁ¡ ¹× API ÆÐŰÁö´Â µµ¿ò¸» ½Ã½ºÅÛ ÀÚü¿¡¸¸ »ç¿ëµË´Ï´Ù. ±âÁ¸ Ç÷¯±×Àΰú´Â ´Þ¸® ÀÌ º¯°æÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù. ¿ÏÀü¼ºÀ» À§ÇØ ¿©±â¿¡¸¸ Æ÷ÇԵ˴ϴÙ.

»õ·Î¿î °Ë»ö UI API

»ç¿ëÀÚ Á¤ÀÇ °Ë»öÀ» ±¸ÇöÇϱâ À§ÇÑ »õ API°¡ 3.0¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ¿ø·¡ API´Â 3.0¿¡¼­ Æó±âµÇ¾úÀ¸¹Ç·Î Ŭ¶óÀÌ¾ðÆ®°¡ ÆÐŰÁö org.eclipse.search.ui ¹× org.eclipse.search.ui.text¿¡¼­ »õ API·Î À̽ÄÇÕ´Ï´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â ISearchQuery, ISearchResult ¹× ISearchResultPage ±¸ÇöÀ» ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù. ±×·± ´ÙÀ½ ISearchResultPage ±¸ÇöÀ» »õ org.eclipse.search.searchResultViewPages È®ÀåÁ¡À¸·Î Á¦°øÇØ¾ß ÇÕ´Ï´Ù.

ISearchResult ¹× ISearchResultPage¿¡ ´ëÇÑ ±âº» ±¸ÇöÀÌ org.eclipse.search.ui.text ÆÐŰÁö¿¡ Á¦°øµË´Ï´Ù.

MessageBox ¹× DirectoryDialogÀÇ ³Î(null) ¸Þ½ÃÁö(ÆÐŰÁö org.eclipse.swt.widgets)

3.0 ÀÌÀü¿¡´Â, ¹®ÀÚ¿­¿¡ ´ëÇØ °ªÀÌ ³ÎÀÎ SWTÀÇ DirectoryDialog.setMessage(String string) ¶Ç´Â MessageBox.setMessage(String string)¸¦ È£ÃâÇÒ °æ¿ì Á¦¸ñ¿¡ ÅØ½ºÆ®°¡ ¾ø´Â ´ëÈ­ »óÀÚ°¡ ÀÛ¼ºµË´Ï´Ù. ÀÌ µ¿ÀÛÀº ÁöÁ¤µÇÁö ¾ÊÀº °ÍÀ̹ǷÎ(³Î(null)À» Àü´ÞÇÏ´Â °ÍÀº Çã¿ëµÇÁö ¾ÊÀ½) ³ÎÀ» ¸®ÅÏÇÏ´Â °ÍÀÌ Çã¿ëµÇÁö ¾Ê´Â getMessage¿¡ ´ëÇØ ¹®Á¦Á¡À» ÀÛ¼ºÇÕ´Ï´Ù. 3.0¿¡¼­´Â ÀÌÁ¦ ³Î(null)À» Àü´ÞÇϸé IllegalArgumentException ¿¹¿Ü°¡ ¹ß»ýÇϰí, ½ºÆåÀº ¼öÆÛŬ·¡½º Dialog.setMessage¿¡¼­ ¸Þ¼Òµå°¡ ÀÖ´Â ÇàÀ¸·Î °¡Á®¿Í¼­ À̸¦ ¾ð±ÞÇϵµ·Ï º¯°æÇß½À´Ï´Ù. Dialog.setMessage¸¦ »ç¿ëÇÒ °æ¿ì, Àü´ÞµÈ ¹®ÀÚ¿­ÀÌ ³Î(null)ÀÌ ¾Æ´Ïµµ·Ï È®ÀÎÇϽʽÿÀ. Á¦¸ñ¿¡ ÅØ½ºÆ®°¡ ¾ø´Â ´ëÈ­ »óÀÚ¸¦ ¿øÇÒ °æ¿ì °£´ÜÈ÷ ºó ¹®ÀÚ¿­À» Àü´ÞÇÏ¸é µË´Ï´Ù.

¸ð´Þ ÁøÇà»óÅ Çǵå¹é °³¼±

µ¿½Ã Á¶ÀÛÀ» Áö¿øÇÏ·Á¸é ¸ð´Þ ÁøÇà»óŸ¦ Ç¥½ÃÇϱâ À§ÇÑ ´õ Á¤±³ÇÑ ¹æ½ÄÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÀ´ä °á°úÀÇ ÀϺηÎ, IProgressService Ŭ·¡½º¿¡¼­ Ãß°¡ ÁøÇà»óÅ Áö¿øÀÌ ±¸ÇöµÇ¾ú½À´Ï´Ù. ProgressMonitorDialog·Î ÁøÇà»óŸ¦ Ç¥½ÃÇÏ´Â ±âÁ¸ ¹æ½ÄÀº °è¼Ó ÀÛµ¿ÇÕ´Ï´Ù. ÇÏÁö¸¸ »ç¿ëÀÚ °æÇèÀ» °³¼±ÇÏ·Á¸é »õ IProgressService·Î ÀÌÁÖÇÒ °ÍÀ» ±ÇÀåÇÕ´Ï´Ù.

¹®¼­ Eclipse 3.0¿¡¼­ ¸ð´Þ ÁøÇà»óÅ ǥ½Ã´Â »õ IProgressService·Î ÀÌÁÖÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.

µð¹ö±× Á¶Ä¡ ±×·ì Á¦°Å

µð¹ö±× Á¶Ä¡ ±×·ì È®ÀåÁ¡(org.eclipse.debug.ui.debugActionGroups)ÀÌ Á¦°ÅµÇ¾ú½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â org.eclipse.platform.ui.activities È®ÀåÁ¡À» ÅëÇØ Ȱµ¿¿¡ ´ëÇÑ Áö¿øÀÌ Workbench¿¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ÀÌ Áö¿øÀº µð¹ö±× Á¶Ä¡ ±×·ìÀÌ Á¦°øÇß´ø ¸ðµç °ÍÀ» Á¦°øÇϸ鼭 »ç¿ëÇϱâ´Â ´õ ½¬¿ì¸ç(¸ðµç Á¶Ä¡¸¦ öÀúÇÏ°Ô ÁöÁ¤ÇÏ´Â ´ë½Å ÆÐÅÏÀ» Áö¿øÇÔ) À̸¦ Áö¿øÇϱâ À§ÇØ ÇÁ·Î±×·¥ ¹æ½ÄÀÇ API¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌÀü È®ÀåÁ¡¿¡ ´ëÇÑ ÂüÁ¶¸¦ Á¦°ÅÇÏÁö ¸øÇصµ Àå¾Ö°¡ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. È®ÀåÁ¡¿¡ ´ëÇÑ ÂüÁ¶´Â ´Ü¼øÈ÷ ¹«½ÃµË´Ï´Ù. Á¦Ç° º¥´õ´Â Workbench Ȱµ¿ Áö¿øÀ» »ç¿ëÇÏ¿© ¾ð¾î ƯÁ¤ µð¹ö°Å Á¶Ä¡¸¦ ¾ð¾î ƯÁ¤ Ȱµ¿(¿¹: C++ µð¹ö±ë Á¶Ä¡°¡ "Developing C++"¶ó°í Çϴ Ȱµ¿°ú ¿¬°üµÉ ¼ö ÀÖÀ½)°ú ¿¬°ü½Ã۵µ·Ï ±ÇÇÕ´Ï´Ù.

BreakpointManager°¡ »ç¿ë ºÒ°¡´ÉÇÏ°Ô µÉ ¼ö ÀÖÀ½

IBreakpointManager´Â ÀÌÁ¦ ¸Þ¼Òµå setEnabled(boolean) ¹× isEnabled()¸¦ Á¤ÀÇÇÕ´Ï´Ù. Áß´ÜÁ¡ °ü¸®ÀÚ°¡ »ç¿ë ºÒ°¡´ÉÇÒ °æ¿ì, µð¹ö°Å´Â µî·ÏµÈ ¸ðµç Áß´ÜÁ¡À» ¹«½ÃÇØ¾ß ÇÕ´Ï´Ù. µð¹ö±× Ç÷§ÆûÀº ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®°¡ »ç¿ë °¡´É ¿©ºÎ°¡ º¯°æµÉ ¶§ Áß´ÜÁ¡ °ü¸®ÀÚ¿¡°Ô ¾Ë¸®±â À§ÇØ µî·ÏÇÒ ¼ö ÀÖ´Â »õ ¸®½º³Ê ¸ÞÄ¿´ÏÁò IBreakpointManagerListener¸¦ Á¦°øÇÕ´Ï´Ù. Áß´ÜÁ¡ º¸±â´Â »ç¿ëÀÚ¿¡ ´ëÇØ "¸ðµç Áß´ÜÁ¡ °Ç³Ê¶Ù±â"¸¦ Çã¿ëÇÏ´Â »õ Åä±Û Á¶Ä¡·ÎºÎÅÍ ÀÌ API¸¦ È£ÃâÇÕ´Ï´Ù. Áß´ÜÁ¡ °ü¸®ÀÚÀÇ »ç¿ë °¡´ÉÀ» ¹Þ¾ÆµéÀÌÁö ¾Ê´Â µð¹ö°Å´Â »ç¿ëÀÚ°¡ ÀÌ ±â´ÉÀ» »ç¿ëÇÏ·Á°í ÇÒ °æ¿ì ´Ù¼Ò Áß´ÜµÈ °ÍÀ¸·Î Ç¥½ÃÇÕ´Ï´Ù.

[JDT Àü¿ë] Java °Ë»ö ±¸¼º¿ø(ÆÐŰÁö org.eclipse.jdt.core.search)

Java¿¡ °¡±î¿î ¾ð¾î(¿¹: JSP, SQLJ, JWS µî)´Â Java °Ë»ö¿¡ Âü¿©ÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ƯÈ÷, ÀÌ ¾ð¾îÀÇ ±¸ÇöÀÚ´Â ´ÙÀ½À» ¼öÇàÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ÀÌ¿Í °°Àº ±¸ÇöÀÚ¸¦ °Ë»ö ±¸¼º¿øÀ̶ó°í ÇÕ´Ï´Ù. ÀÌ ±¸ÇöÀÚ´Â SearchParticipant Ŭ·¡½º¸¦ È®ÀåÇÕ´Ï´Ù. °Ë»ö ±¸¼º¿øÀº °Ë»ö Á¶È¸·Î Àü´ÞµË´Ï´Ù(SearchEngine.search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor) ÂüÁ¶).

ÀÏÄ¡ Ç׸ñÀ» »öÀÎÈ­Çϰųª ãÀ» °æ¿ì, °Ë»ö ±¸¼º¿øÀº getByteContents() ¶Ç´Â getCharContents()¸¦ ´ëüÇÏ¿© ¹®¼­ ÄÁÅÙÃ÷¸¦ °Ë»öÇÒ ¼ö ÀÖ´Â SearchDocumentÀÇ ¼­ºêŬ·¡½º¸¦ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¼­ºêŬ·¡½ºÀÇ ÀνºÅϽº´Â getDocument(String)·Î ¸®Åϵ˴ϴÙ.

¾î¶² ¹®¼­¸¦ »öÀÎÈ­ÇÏ·Á´Â °Ë»ö ±¸¼º¿øÀº SearchParticipant.scheduleDocumentIndexing(SearchDocument, IPath)¸¦ »ç¿ëÇÏ¿© ÁÖ¾îÁø »öÀο¡¼­ ÁÖ¾îÁø ¹®¼­ÀÇ »öÀÎÈ­ ½ºÄÉÁÙÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¹®¼­ÀÇ »öÀÎÈ­ Áغñ°¡ ¿Ï·áµÇ¸é ±âº»ÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©°¡ SearchParticipant.indexDocument(SearchDocument, IPath)¸¦ È£ÃâÇÕ´Ï´Ù. ±×·¯¸é °Ë»ö ±¸¼º¿øÀÌ ¹®¼­ÀÇ ÄÁÅÙÃ÷¸¦ °¡Á®¿Í¼­ ±¸¹® ºÐ¼®ÇÑ ÈÄ SearchDocument.addIndexEntry(char[], char[])¸¦ »ç¿ëÇÏ¿© »öÀÎ Ç׸ñÀ» Ãß°¡ÇÕ´Ï´Ù.

»öÀÎÈ­°¡ ¼öÇàµÇ°í ³ª¸é »öÀÎÀ» Á¶È¸Çϰí SearchEngine.search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)¸¦ »ç¿ëÇÏ¿© ÀÏÄ¡ Ç׸ñÀ» ãÀ» ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú SearchParticipant.selectIndexes(SearchPattern, IJavaSearchScope)¸¦ »ç¿ëÇÏ¿© °¢ °Ë»ö ±¸¼º¿ø¿¡°Ô ÀÌ Á¶È¸¿¡ ÇÊ¿äÇÑ »öÀο¡ ´ëÇØ ¿äûÇÕ´Ï´Ù. ÁÖ¾îÁø ÆÐÅϰú ÀÏÄ¡ÇÏ´Â »öÀÎ Ç׸ñ¸¶´Ù °Ë»ö ±¸¼º¿ø¿¡°Ô ¿äûÇÏ¿© °Ë»ö ¹®¼­°¡ ÀÛ¼ºµË´Ï´Ù(getDocument(String) ÂüÁ¶). ÀÌ ¹®¼­´Â ¸ðµÎ locateMatches(SearchDocument[], SearchPattern, IJavaSearchScope, SearchRequestor, IProgressMonitor)¸¦ »ç¿ëÇÏ¿© ÀÏÄ¡ Ç׸ñÀ» ãÀ» ¼ö ÀÖµµ·Ï °Ë»ö ±¸¼º¿ø¿¡°Ô Àü´ÞµË´Ï´Ù. °Ë»ö ±¸¼º¿øÀº acceptSearchMatch(SearchMatch)¸¦ »ç¿ëÇϰí SearchMatch ¼­ºêŬ·¡½ºÀÇ ÀνºÅϽº¸¦ Àü´ÞÇÏ¿© °Ë»ö ÀÏÄ¡ Ç׸ñÀ» SearchRequestor¿¡ ¾Ë¸³´Ï´Ù.

°Ë»ö ±¸¼º¿øÀº ÀÛ¾÷ÀÇ ÀϺθ¦ ±âº» Java °Ë»ö ±¸¼º¿ø¿¡°Ô À§ÀÓÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±âº» ±¸¼º¿øÀÇ ÀνºÅϽº´Â SearchEngine.getDefaultSearchParticipant()¸¦ »ç¿ëÇÏ¿© È®º¸ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÏÄ¡ Ç׸ñÀ» ãÀ» °ÍÀ» ¿äûÇÑ °æ¿ì SQLJ ±¸¼º¿øÀº ÇØ´çµÇ´Â .sql ¹®¼­¿¡¼­ .java ¹®¼­¸¦ ÀÛ¼ºÇϰí ÀÌ ¹®¼­¸¦ .java ¹®¼­·Î Àü´ÞÇÏ¿© ±âº» ±¸¼º¿ø¿¡°Ô ÀÛ¾÷À» À§ÀÓÇÕ´Ï´Ù.