Eclipse 2.1°ú 3.0 »çÀÌÀÇ ºñȣȯ¼º

Ç÷¯±×Àο¡ ¿µÇâÀ» ÁÖ´Â Eclipse 2.1 ¹× 3.0 °£ÀÇ ºñȣȯ¼º ¹æ½ÄÀ¸·Î Eclipse°¡ º¯°æµÇ¾ú½À´Ï´Ù. ´ÙÀ½ Ç׸ñ¿¡¼­´Â º¯°æµÈ ¿µ¿ª¿¡ ´ëÇØ ¼³¸íÇϰí 2.1 Ç÷¯±×ÀÎÀ» 3.0À¸·Î ÀÌÁÖÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Áö½Ã»çÇ×À» Á¦°øÇÕ´Ï´Ù. 3.0¿¡¼­ 2.1 Ç÷¯±×ÀÎÀ» ½ÇÇàÇÏ´Â Áß ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì ´ÙÀ½ »çÇ×À» »ìÆì º¸¸é µË´Ï´Ù.

  1. Ç÷¯±×ÀÎ Manifest ¹öÀü
  2. Ç÷§Æû UI Ç÷¯±×ÀÎ ±¸Á¶ º¯°æ
  3. Ç÷§Æû ÄÚ¾î ·±Å¸ÀÓ Ç÷¯±×ÀÎÀÇ ±¸Á¶ º¯°æ
  4. Xerces Ç÷¯±×ÀÎ Á¦°Å
  5. Eclipse 3.0ÀÇ µ¿½Ã¼º Çâ»ó
  6. IFiles¿¡¼­ ÆíÁý±â ¿­±â
  7. ÆíÁý±â À̵¿ ¸¶Ä¿
  8. ÆíÁý±â ½ÇÇà±â
  9. ÆíÁý±â ·¹Áö½ºÆ®¸®
  10. Workbench ¸¶Ä¿ µµ¿ò¸» ·¹Áö½ºÆ®¸®
  11. ¹®¼­ ÆíÁý±â ¹®¼­ Á¦°øÀÚ
  12. ¹®¼­ ÆíÁý±â
  13. Á¦¸ñ¾ø´Â ¾î³ëÅ×ÀÌ¼Ç Áö¿ø
  14. ÄÜ¼Ö º¸±â
  15. Java Áß´ÜÁ¡ ¸®½º³Ê
  16. UI ½º·¹µå¿¡¼­ÀÇ Å¬¸³º¸µå ¾×¼¼½º
  17. Ű ´Ù¿î À̺¥Æ®
  18. »ç¿ëÀÚ Á¤ÀÇ Á¦¾îÀÇ ÅÇ ¼øÈ¸
  19. SWT Å×ÀÌºí ¹× Æ®¸® À§ÁöÆ®(widget)¿¡¼­ÀÇ ¼±Åà À̺¥Æ® ¼ø¼­
  20. »óÅ ¿ÀºêÁ§Æ®ÀÇ »õ ½É°¢µµ ·¹º§
  21. ºôµå °ü·Ã ÀÚ¿ø º¯°æ ¾Ë¸²
  22. ÀÛ¾÷°ø°£ ¿ÀÆÛ·¹ÀÌ¼Ç Áß¿¡ Áß°£ ¾Ë¸²
  23. URL ½ºÆ®¸² Çڵ鷯 È®Àå
  24. Ŭ·¡½º ·Îµå ¼ø¼­
  25. Ŭ·¡½º ·Î´õ º¸È£ µµ¸ÞÀÎÀÌ ¼³Á¤µÇÁö ¾ÊÀ½
  26. PluginModel ¿ÀºêÁ§Æ® ij½ºÆÃ
  27. ºÒ¿ÏÀüÇÑ ILibrary ±¸Çö
  28. URL ¾ç½Ä¿¡ °üÇÑ ¿Ã¹Ù¸£Áö ¾ÊÀº °¡Á¤
  29. BootLoader ¸Þ¼Òµå À̵¿/»èÁ¦
  30. Ç÷¯±×ÀÎ ³»º¸³»±â¿¡ Ç÷¯±×ÀÎÀÇ JARÀÌ ÀÚµ¿À¸·Î Æ÷ÇÔµÇÁö ¾ÊÀ½
  31. ·±Å¸ÀÓ API ´Ù½Ã ³»º¸³»±â
  32. Ç÷§ÆûÀÇ Ç÷¯±×ÀÎ ±¸¹® ºÐ¼® ¸Þ¼Òµå
  33. ´ÜÆíÀ¸·Î Á¦°øµÇ´Â Ç÷¯±×ÀÎ ¶óÀ̺귯¸®
  34. ºôµå ½ºÅ©¸³Æ® º¯°æ»çÇ×
  35. PDE ºôµå Ant Ÿ½ºÅ© º¯°æ»çÇ×
  36. eclipse.build Ant Ÿ½ºÅ© º¯°æ»çÇ×
  37. eclipse.fetch Ant Ÿ½ºÅ© º¯°æ»çÇ×
  38. install.ini ¹Ù²Ù±â

1. Ç÷¯±×ÀÎ Manifest ¹öÀü

Ç÷¯±×ÀÎ(¹× Ç÷¯±×ÀÎ ´ÜÆí)ÀÇ Manifest ÆÄÀÏ Çì´õ°¡ ÀûÀýÇÑ Ç÷¯±×ÀÎ Manifest ¹öÀüÀ» ½Äº°ÇÏ´Â »õ ÇàÀ» Æ÷ÇÔÇϵµ·Ï º¯°æµÇ¾ú½À´Ï´Ù. 3.0 ÀÌÀü¿¡´Â Ç÷¯±×ÀÎÀÌ ÀÌ <?eclipse ...?> Çà Áß Çϳª¸¦ Àü´ÞÇÏÁö ¾Ê¾ÒÁö¸¸ 3.0 ÀÌÈÄ¿¡´Â Ç×»ó ÀÌ ÇàÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ º¯°æÀº Eclipse ·±Å¸ÀÓÀÌ 3.0À¸·Î À̽ĵÇÁö ¸øÇÑ 3.0 ÀÌÀü Ç÷¯±×ÀÎÀ» È®½ÇÇÏ°Ô ÀνÄÇÏ¿© ÀÚµ¿À¸·Î ±× Ç÷¯±×Àο¡ ´ëÇØ ´õ ³ªÀº 2Áø ȣȯ¼ºÀ» Á¦°øÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ­ÀÔ´Ï´Ù. ÀÌ´Â plugin.xml ÆÄÀÏÀÇ ÀϹÝÀûÀÎ ¾ç½ÄÀÔ´Ï´Ù(fragment.xmlÀÌ À¯»çÇÕ´Ï´Ù).

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin ...>
    ...
</plugin>

PDE 3.0ÀÌ ÀÛ¼ºÇÑ Ç÷¯±×ÀÎ Manifest´Â ÀÚµ¿À¸·Î ÀÌ ¾ç½ÄÀÌ ¼ö¹ÝµË´Ï´Ù. PDE Ç÷¯±×ÀÎ ÀÌÁÖ µµ±¸¸¦ »ç¿ëÇϵµ·Ï ÇϽʽÿÀ. ÀÌ µµ±¸´Â Ç¥½ÃµÈ ÇàÀ» ÀÚµ¿À¸·Î 2.1 Ç÷¯±×ÀÎÀÇ Manifest¿Í Ç÷¯±×ÀÎ ´ÜÆí¿¡ »ðÀÔÇÏ°í ¿©±â¿¡ ¼³¸íµÈ ´Ù¸¥ ¸¹Àº º¯°æ»çÇ×À» Á¦½ÃÇÕ´Ï´Ù.

ÀÌ Áö½Ã¹®À» plugin.xml¿¡ Ãß°¡ÇÑ °æ¿ì(¼öµ¿À¸·Î ¶Ç´Â PDE¸¦ »ç¿ëÇÏ¿©), ÆÄÀϵµ ÀÇÁ¸ÇÏ´Â Ç÷¯±×ÀÎÀ» ¸í½ÃÀûÀ¸·Î ³ª¿­Çϵµ·Ï °»½ÅÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Eclipse 3.0 ÀÌÀü¿¡´Â org.eclipse.core.runtime ¹× org.eclipse.core.boot¿¡ ´ëÇÑ Á¾¼Ó¼ºÀÌ ¹¬½ÃÀûÀ̾ú½À´Ï´Ù. 3.0¿¡¼­´Â org.eclipse.core.boot°¡ ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ¸¹Ç·Î °³¹ßÀÚ´Â org.eclipse.core.runtime ¶Ç´Â org.eclipse.core.runtime.compatibility¸¦ ÀûÀýÇÏ°Ô ¼±ÅÃÇØ¾ß ÇÕ´Ï´Ù(¾Æ´Ï¸é µÑ ´Ù ¼±ÅÃÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù).

Âü°í: ÀÌ´Â 2.1 2Áø Ç÷¯±×ÀÎÀÌ Eclipse 3.0¿¡¼­ ½ÇÇàµÇ´Â ¹æ½Ä¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â ºñȣȯ¼º Áß ÇϳªÀÔ´Ï´Ù.

2. Ç÷§Æû UI Ç÷¯±×ÀÎ ±¸Á¶ º¯°æ

±âº» Ç÷§Æû UI Ç÷¯±×ÀÎÀ̾ú´ø org.eclipse.ui Ç÷¯±×ÀÎÀº ÀÌÁ¦ ÀϹÝ(Áï, IDE¿¡ ƯÁ¤ÇÏÁö ¾ÊÀº) Workbench¿¡ ´ëÇØ API ¹× È®ÀåÁ¡¸¸ Á¦°øÇÕ´Ï´Ù. ¼±ÅÃÀû ¹× IDE ƯÁ¤ API¿Í È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×ÀÎÀ¸·Î À̵¿µÇ¾ú½À´Ï´Ù.

ÀÌ º¯°æÀÇ ¿µÇâÀº ´ÙÀ½ µÎ °¡Áö »çÇ×ÀÔ´Ï´Ù. (1) À̵¿µÈ org.eclipse.ui È®ÀåÁ¡ÀÌ »õ È®ÀåÁ¡ ID¸¦ °®½À´Ï´Ù. (2) Çʼö Ç÷¯±×ÀÎ ¸ñ·ÏÀÌ º¯°æµÇ¾ú½À´Ï´Ù.

´ÙÀ½ Å×ÀÌºí¿¡¼­ org.eclipse.ui È®ÀåÁ¡Àº ´Ù¸¥ Ç÷¯±×ÀÎÀ¸·Î À̵¿µÇ¾úÀ¸¹Ç·Î È®ÀåÁ¡ ID°¡ º¯°æµË´Ï´Ù. ±âÁ¸ Ç÷¯±×ÀÎÀÌ À̵¿µÈ È®ÀåÁ¡¿¡ È®ÀåÀ» Á¦°øÇÒ °æ¿ì, Ç÷¯±×ÀÎ Manifest ÆÄÀÏ¿¡¼­ <extension> ¿ä¼ÒÀÇ "point" ¼Ó¼º¿¡ ÀÖ´Â ÂüÁ¶¸¦ ÇØ´çµÇ´Â »õ È®ÀåÁ¡ ID¸¦ ÂüÁ¶Çϵµ·Ï º¯°æÇØ¾ß ÇÕ´Ï´Ù. PDE Ç÷¯±×ÀÎ ÀÌÁÖ µµ±¸°¡ ÀÌ ¼öÁ¤À» ¼öÇàÇÕ´Ï´Ù.

Âü°í: ÀÌ´Â 2.1 2Áø Ç÷¯±×ÀÎÀÌ Eclipse 3.0¿¡¼­ ½ÇÇàµÇ´Â ¹æ½Ä¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â ºñȣȯ¼º Áß ÇϳªÀÔ´Ï´Ù. Eclipse 3.0 ·±Å¸ÀÓÀº ÀÚµ¿À¸·Î 3.0 ÀÌÀü Ç÷¯±×ÀÎÀ» ¹ß°ßÇÏ¿©(¾Õ¿¡ ¾ð±ÞÇÑ <?eclipse version="3.0"?> ÇàÀÌ Ç÷¯±×ÀÎ Manifest¿¡ ¾øÀ» °æ¿ì) ÀÚµ¿À¸·Î È®ÀåÁ¡ ¹× Ç÷¯±×ÀÎ Á¾¼Ó¼º º¯°æ»çÇ׿¡ Àû¿ëÇÕ´Ï´Ù.

ÀÌÀü È®ÀåÁ¡ ID

»õ È®ÀåÁ¡ ID

org.eclipse.ui.markerHelp org.eclipse.ui.ide.markerHelp
org.eclipse.ui.markerImageProviders org.eclipse.ui.ide.markerImageProviders
org.eclipse.ui.markerResolution org.eclipse.ui.ide.markerResolution
org.eclipse.ui.projectNatureImages org.eclipse.ui.ide.projectNatureImages
org.eclipse.ui.resourceFilters org.eclipse.ui.ide.resourceFilters
org.eclipse.ui.markerUpdaters org.eclipse.ui.editors.markerUpdaters
org.eclipse.ui.documentProviders org.eclipse.ui.editors.documentProviders
org.eclipse.ui.workbench.texteditor.
markerAnnotationSpecification
org.eclipse.ui.editors.markerAnnotationSpecification

´ÙÀ½ Å×À̺íÀº ´Ù¸¥ Ç÷¯±×ÀÎÀ¸·Î À̵¿µÈ, ÀÌÀü¿¡ org.eclipse.ui Ç÷¯±×ÀÎÀÌ Á¦°øÇÑ API ÆÐŰÁö¸¦ ³ª¿­ÇÕ´Ï´Ù. (API ÆÐŰÁö, Ŭ·¡½º, ÇÊµå ¹× ¸Þ¼ÒµåÀÇ À̸§Àº º¯°æµÇÁö ¾Ê¾Ò½À´Ï´Ù.) ÀϺΠ°æ¿ì, API ÆÐŰÁö´Â ÀÌÁ¦ ¿©·¯ Ç÷¯±×ÀÎ »çÀÌ¿¡ ºÐÇҵ˴ϴÙ. ÁÖ¾îÁø Ç÷¯±×Àο¡ Ç¥½Ã °¡´ÉÇÑ API Ŭ·¡½º´Â Ç÷¯±×ÀÎÀÇ Çʼö Ç÷¯±×ÀÎ ¸ñ·Ï¿¡ ÀÇÇØ ÆÇº°µÇ¹Ç·Î, ÀÌ º¯°æ»çÇ׿¡¼­´Â API Ŭ·¡½º¿¡ ´ëÇÑ ¾×¼¼½º¸¦ ´Ù½Ã ¾ò±â À§ÇØ ±âÁ¸ Ç÷¯±×ÀÎÀÇ Manifest¿¡ ÀÖ´Â "<requires>" ¿ä¼Ò¸¦ Á¶Á¤ÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÌ º¯°æÀº org.eclipse.ui Ç÷¯±×Àο¡ ÀÇÁ¸ÇÏ´Â Ç÷¯±×Àο¡¸¸ ¿µÇâÀ» ÁÝ´Ï´Ù(Áï, Ç÷¯±×ÀÎ ManifestÀÇ <requires> ¼½¼Ç¿¡ <import plugin="org.eclipse.ui"/>¸¦ Æ÷ÇÔÇÕ´Ï´Ù). ´Ù¸¥ ¸ðµç Ç÷¯±×ÀÎÀº ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. ¿µÇâÀ» ¹ÞÀ» °æ¿ì, <import> ¿ä¼Ò¸¦ º¯°æÇØ¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é Ç÷¯±×ÀÎÀÌ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç API Ŭ·¡½º°¡ ¹üÀ§ ¾È¿¡ ÀÖµµ·Ï <import> ¿ä¼Ò¸¦ ´õ Ãß°¡ÇϽʽÿÀ. Ç÷¯±×ÀÎÀº ½ÇÁ¦·Î »ç¿ëÇÏ´Â Ç÷¯±×Àο¡ °üÇÑ Á¾¼Ó¼º¸¸ ¾ð±ÞÇϵµ·Ï ÇϽʽÿÀ. ºÒÇÊ¿äÇÑ Á¾¼Ó¼ºÀ» Æ÷ÇÔÇϸé Java Ŭ·¡½º ·Î´õ°¡ ¸ðµç Á¾¼Ó¼º¿¡¼­ Ŭ·¡½º¸¦ °Ë»öÇØ¾ß ÇϹǷΠ·±Å¸ÀÓ ¼º´ÉÀÌ ³ªºüÁú ¼ö ÀÖ½À´Ï´Ù. (PDE Ç÷¯±×ÀÎ ÀÌÁÖ µµ±¸´Â Á¾¼Ó¼ºÀ» ¼öÁ¤ÇϹǷΠÃÖ¼Ò ¼¼Æ®¸¦ ÆÇº°ÇÏ´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.)

API ÆÐŰÁö

2.1 Ç÷¯±×ÀÎ

ÇØ´çµÇ´Â 3.0 Ç÷¯±×ÀÎ

org.eclipse.jface.text.* org.eclipse.ui org.eclipse.jface.text
org.eclipse.text.* org.eclipse.ui org.eclipse.jface.text
org.eclipse.ui org.eclipse.ui org.eclipse.ui, org.eclipse.ui.ide
org.eclipse.ui.actions org.eclipse.ui org.eclipse.ui, org.eclipse.ui.ide
org.eclipse.ui.dialogs org.eclipse.ui org.eclipse.ui, org.eclipse.ui.ide
org.eclipse.ui.editors.* org.eclipse.ui org.eclipse.ui.editor
org.eclipse.ui.model org.eclipse.ui org.eclipse.ui, org.eclipse.ui.ide
org.eclipse.ui.part org.eclipse.ui org.eclipse.ui, org.eclipse.ui.ide
org.eclipse.ui.texteditor org.eclipse.ui org.eclipse.ui.workbench.texteditor, org.eclipse.ui.editors
org.eclipse.ui.texteditor.* org.eclipse.ui org.eclipse.ui.workbench.texteditor
org.eclipse.ui.views.bookmarkexplorer org.eclipse.ui org.eclipse.ui.ide
org.eclipse.ui.views.contentoutline org.eclipse.ui org.eclipse.ui.views
org.eclipse.ui.views.markers org.eclipse.ui org.eclipse.ui.ide
org.eclipse.ui.views.navigator org.eclipse.ui org.eclipse.ui.ide
org.eclipse.ui.views.properties org.eclipse.ui org.eclipse.ui.views
org.eclipse.ui.views.tasklist org.eclipse.ui org.eclipse.ui.ide
org.eclipse.ui.wizards.datatransfer org.eclipse.ui org.eclipse.ui.ide
org.eclipse.ui.wizards.newresource org.eclipse.ui org.eclipse.ui.ide

3. Ç÷§Æû ÄÚ¾î ·±Å¸ÀÓ Ç÷¯±×ÀÎÀÇ ±¸Á¶ º¯°æ

Eclipse 3.0 Platform RuntimeÀº OSGi¸¦ ±âÃÊ·Î ÇϹǷÎ, µÎ °³ÀÇ Ç÷§Æû ·±Å¸ÀÓ Ç÷¯±×ÀÎ org.eclipse.core.runtime ¹× org.eclipse.core.bootÀÇ ±¸Á¶¸¦ º¯°æÇØ¾ß ÇÕ´Ï´Ù.

»õ org.eclipse.core.runtime.compatibility Ç÷¯±×ÀÎÀº ÀÌÀü API¿Í »õ API »çÀÌÀÇ ±¸Çö ºê¸´Áö¸¦ Á¦°øÇϹǷÎ, ÀÌÀü¿¡ org.eclipse.core.runtime ¹× org.eclipse.core.boot¿¡¼­ ¹ß°ßµÇ¾ú´ø ¸¹Àº Æó±âµÈ APIÀÇ »õ·Î¿î ȨÀÔ´Ï´Ù. Ç÷§Æû ·±Å¸ÀÓ È®ÀåÁ¡Àº ±¸Á¶ º¯°æ ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.

±âÁ¸ Ç÷¯±×ÀÎÀ» 3.0À¸·Î ÀÌÁÖÇÒ °æ¿ì, Ç÷¯±×ÀÎÀÇ Manifest´Â Eclipse Ç÷§Æû ·±Å¸ÀÓ Ç÷¯±×ÀÎÀÇ »õ ±¸Á¶¸¦ ¹Ý¿µÇϱâ À§ÇØ °»½ÅµÇ¾î¾ß ÇÕ´Ï´Ù. PDE Ç÷¯±×ÀÎ Manifest ÀÌÁÖ µµ±¸´Â Çʿ信 µû¶ó Á¾¼Ó¼ºÀ» org.eclipse.core.runtime.compatibility¿¡ Ãß°¡ÇÕ´Ï´Ù.

¶ÇÇÑ Ç÷¯±×ÀÎÀ» 3.0À¸·Î Ç¥½ÃÇϰí(<?eclipse version="3.0"?>À» »ç¿ëÇÏ¿©) »ç¿ëÀÚ Ç÷¯±×ÀÎÀÌ Ç÷¯±×ÀΠŬ·¡½º¸¦ Á¤ÀÇÇÒ °æ¿ì, ¸í½ÃÀûÀ¸·Î Ç÷¯±×ÀÎ Manifest¿¡¼­ <import plugin="org.eclipse.core.runtime.compatibility"/>¸¦ Á¤ÀÇÇϰųª Ç÷¯±×ÀΠŬ·¡½º°¡ ±âº» »ý¼ºÀÚ¸¦ Á¤ÀÇÇÏ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

Âü°í: ÀÌ´Â 2.1 2Áø Ç÷¯±×ÀÎÀÌ Eclipse 3.0¿¡¼­ ½ÇÇàµÇ´Â ¹æ½Ä¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â ºñȣȯ¼º Áß ÇϳªÀÔ´Ï´Ù. Eclipse 3.0 ·±Å¸ÀÓÀº ÀÚµ¿À¸·Î 3.0 ÀÌÀü Ç÷¯±×ÀÎÀ» ¹ß°ßÇÏ¿©( <?eclipse version="3.0"?> ÇàÀÌ Ç÷¯±×ÀÎ Manifest¿¡ ¾øÀ» °æ¿ì) ÀÚµ¿À¸·Î Ç÷§Æû ·±Å¸ÀÓ º¯°æ»çÇ׿¡ º¸»óÇÕ´Ï´Ù.

4. Xerces Ç÷¯±×ÀÎ Á¦°Å

org.eclipse.xerces Ç÷¯±×ÀÎÀº ´õ ÀÌ»ó ÇÊ¿äÇÏÁö ¾ÊÀ¸¹Ç·Î »èÁ¦µÇ¾ú½À´Ï´Ù. XML ±¸¹® ºÐ¼® Áö¿øÀÌ J2SE 1.4¿¡ ³»ÀåµÇ¾î ÀÖÀ¸¹Ç·Î, Xerces Ç÷¯±×ÀÎÀÌ ÀÖÀ¸¸é Ŭ·¡½º ·Î´õ Ãæµ¹ÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÌÀü¿¡ org.eclipse.xerces Ç÷¯±×ÀÎÀÌ Á¦°øÇß´ø javax.xml.parsers, org.w3c.dom.* ¹× org.xml.sax.* API ÆÐŰÁö´Â ÀÌÁ¦ J2SE ¶óÀ̺귯¸®¿¡¼­ »ç¿ë °¡´ÉÇÕ´Ï´Ù.

Ç÷¯±×Àο¡ org.eclipse.xerces Ç÷¯±×ÀÎÀÌ ÇÊ¿äÇÒ °æ¿ì, ¾ð±ÞµÈ Á¾¼Ó¼ºÀÌ Á¦°ÅµÇµµ·Ï »ç¿ëÀÚÀÇ Ç÷¯±×ÀÎ Manifest¸¦ º¯°æÇØ¾ß ÇÕ´Ï´Ù. ¼öÇàµÇ°í ³ª¸é Ç÷¯±×ÀÎ ÄÚµå´Â Ãß°¡ º¯°æ ¾øÀÌ ÄÄÆÄÀÏ ¹× ½ÇÇàÇØ¾ß ÇÕ´Ï´Ù.

org.eclipse.xerces Ç÷¯±×Àο¡ ¾ð±ÞµÈ Á¾¼Ó¼ºÀ» °¡Áö°í ÀÖ´Â 2.1 2Áø Ç÷¯±×Àο¡¼­´Â Ç¥ÁØ Eclipse 3.0 ±¸¼º¿¡¼­ ½ÇÇàÇÒ ¶§ ÀüÁ¦Á¶°ÇÀÌ ¾ø¾îÁý´Ï´Ù. Ç÷¯±×ÀÎÀº °á±¹ Ȱ¼ºÈ­µÇÁö ¾Ê½À´Ï´Ù.

5. Eclipse 3.0ÀÇ µ¿½Ã¼º Çâ»ó

Eclipse 3.0 ÀÌÀü¿¡´Â Eclipse°¡ °ÅÀÇ ´ÜÀÏ ½º·¹µå¿¡¼­ ÀÛµ¿Çß½À´Ï´Ù. ´ëºÎºÐÀÇ API ¸Þ¼Òµå ¹× È®ÀåÁ¡Àº UI ½º·¹µå¸¦ ºí·ÏÈ­ÇÑ ÁøÇà ´ëÈ­ »óÀÚ¿¡¼­ »ý¼ºµÈ ½º·¹µå³ª UI ½º·¹µå¿¡¼­ ÀÛµ¿Çß½À´Ï´Ù. ´ëºÎºÐÀÇ Ç÷¯±×ÀÎ ÀÛ¼ºÀÚ´Â ¸ðµç UI Ȱµ¿ÀÌ UI ½º·¹µå¿¡¼­ ¹ß»ýÇßÀ½À» È®ÀÎÇÏ´Â °Í°ú´Â º°µµ·Î, ½º·¹µå ¾ÈÀü¼º¿¡ ´ëÇØ ¸¹Àº °ÆÁ¤À» ÇÒ Çʿ䰡 ¾ø¾ú½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â ÀϹÝÀûÀ¸·Î µ¿½Ã¼ºÀÌ ´õ Çâ»óµÇ¾ú½À´Ï´Ù. ¸¹Àº Á¶ÀÛÀÌ ¹é±×¶ó¿îµå ½º·¹µå¿¡¼­ ¹ß»ýÇϸç, ÀÌ Á¶ÀÛÀº UI ½º·¹µå¸¦ Æ÷ÇÔÇÏ¿© ´Ù¸¥ ½º·¹µå¿Í µ¿½Ã¿¡ ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. Äڵ尡 ¹é±×¶ó¿îµå ½º·¹µå¿¡¼­ ½ÇÇàµÇ´Â ¸ðµç Ç÷¯±×ÀÎÀº ÀÌÁ¦ ÇØ´ç ÄÚµåÀÇ ½º·¹µå ¾ÈÀü¼º¿¡ ´ëÇØ À¯ÀÇÇØ¾ß ÇÕ´Ï´Ù.

org.eclipse.core.runtime.jobs API¸¦ »ç¿ëÇÏ´Â ¹è°æ¿¡¼­ ¸í½ÃÀûÀ¸·Î Á¶ÀÛÀ» ½ÇÇàÇÏ´Â Ç÷¯±×ÀÎ ¿Ü¿¡µµ, ¹é±×¶ó¿îµå ½º·¹µå¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µå´Â ¸î °¡ÁöÀÇ Ç÷§Æû API ±â´É ¹× È®ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ÀÌ ±â´É¿¡ ¿¬°áµÇ´Â Ç÷¯±×ÀÎÀº Äڵ尡 ½º·¹µå ¾ÈÀü »óÅÂÀÎÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½ Å×À̺íÀº Eclipse 3.0¿¡¼­ ¹é±×¶ó¿îµå ½º·¹µå¿¡¼­ ¸ðµç ¶Ç´Â ÀϺΠÄڵ带 ½ÇÇàÇÏ´Â È®ÀåÁ¡°ú API¸¦ ¿ä¾àÇÑ °ÍÀÔ´Ï´Ù.

È®ÀåÁ¡ ¶Ç´Â API Ŭ·¡½º

Âü°í

org.eclipse.core.runtime.IRegistryChangeListener ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â Eclipse 3.0ÀÇ »õ ±â´É
org.eclipse.core.resources.IResourceChangeListener ÀÌÁ¦´Â ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â AUTO_BUILD À̺¥Æ®
org.eclipse.core.resources.builders(È®ÀåÁ¡) ÀÌÁ¦´Â ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â ÀÚµ¿ ºôµå
org.eclipse.core.resources.ISaveParticipant ÀÌÁ¦´Â ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â SNAPSHOT À̺¥Æ®
org.eclipse.ui.workbench.texteditor.quickdiffReferenceProvider(È®ÀåÁ¡) ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â Eclipse 3.0ÀÇ »õ ±â´É
org.eclipse.ui.decorators(È®ÀåÁ¡) Eclipse 2.1¿¡¼­ ÀÌ¹Ì ¹è°æ¿¡¼­ ½ÇÇàµÊ
org.eclipse.ui.startup(È®ÀåÁ¡) Eclipse 2.1¿¡¼­ ÀÌ¹Ì ¹è°æ¿¡¼­ ½ÇÇàµÊ
org.eclipse.team.core.org.eclipse.team.core.repository(È®ÀåÁ¡) ÀÌÁ¦´Â ¸¹Àº Á¶ÀÛÀÌ ¹è°æ¿¡¼­ ½ÇÇàµÊ
org.eclipse.team.ui.synchronizeParticipants(È®ÀåÁ¡) ¹è°æ¿¡¼­ ½ÇÇàµÇ´Â Eclipse 3.0ÀÇ »õ ±â´É
org.eclipse.debug.core.launchConfigurationTypes(È®ÀåÁ¡) ÀÌÁ¦´Â ¹è°æ¿¡¼­ ½ÇÇà
org.eclipse.jdt.core.IElementChangedListener ElementChangedEvent.PRE_AUTO_BUILD´Â ÀÌÁ¦ ¹è°æ¿¡¼­ ½ÇÇàµÇ°í, POST_RECONCILE´Â ÀÌ¹Ì ¹è°æ¿¡¼­ ½ÇÇàµÇ¾úÀ½

Äڵ带 ½º·¹µå ¾ÈÀü »óÅ·Π¸¸µé±â À§ÇØ »ç¿ë °¡´ÉÇÑ ´Ù¾çÇÑ Àü·«ÀÌ ÀÖ½À´Ï´Ù. ±âº» ¼Ö·ç¼ÇÀº ¸ðµç ÀÛ¾÷ÀÌ UI ½º·¹µå¿¡¼­ ¹ß»ýÇϵµ·Ï ÇÏ¿© Á÷·ÄÈ­µÈ ½ÇÇàÀÌ µÇµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ´Â CPU Áý¾àÀû 󸮸¦ ¼öÇàÇÏÁö ¾Ê´Â UI Ç÷¯±×Àο¡ ´ëÇÑ ÀϹÝÀûÀÎ Á¢±Ù ¹æ½ÄÀÔ´Ï´Ù. À̸¦ ¼öÇàÇÒ °æ¿ì, Display.syncExecÀÇ °íÀ¯ÇÑ ±³Âø »óÅ À§Ç輺¿¡ À¯ÀÇÇϽʽÿÀ. ÀϹÝÀûÀ¸·Î Display.asyncExec°¡ ´õ ¾ÈÀüÇÕ´Ï´Ù. ÄÚµå ½ÇÇà ½Ã±â¿¡ ´ëÇÑ Á¤È®ÇÑ Á¦¾î°¡ ¾ø´Â ´ë½Å ±³Âø »óÅ À§Ç輺ÀÌ µµÀÔµÇÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.

Äڵ带 ½º·¹µå ¾ÈÀü »óÅ·Π¸¸µé±â À§ÇÑ ´Ù¸¥ ±â¼úÀº ´ÙÀ½°ú °°½À´Ï´Ù.

6. IFiles¿¡¼­ ÆíÁý±â ¿­±â

´ÙÀ½ ¸Þ¼Òµå°¡ org.eclipse.ui.IWorkbenchPage ÀÎÅÍÆäÀ̽º¿¡¼­ »èÁ¦µÇ¾ú½À´Ï´Ù. IWorkbenchPage´Â ÀÏ¹Ý Workbench¿¡¼­ ¼±¾ðµÇÁö¸¸ ¸Þ¼Òµå´Â º»·¡ ÀÚ¿ø¿¡ °íÀ¯ÇÕ´Ï´Ù.

ÀÌ IWorkbenchPage.openEditor ¸Þ¼ÒµåÀÇ Å¬¶óÀÌ¾ðÆ®´Â Å¬·¡½º org.eclipse.ui.ide.IDE(org.eclipse.ui.ide Ç÷¯±×Àο¡ ÀÖ´Â)¿¡ ¼±¾ðµÈ ÇØ´çµÇ´Â °ø¿ë Á¤Àû ¸Þ¼Òµå¸¦ ´ë½Å È£ÃâÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ IWorkbenchPage.openSystemEditor(IFile) ¸Þ¼ÒµåÀÇ Å¬¶óÀÌ¾ðÆ®´Â »õ FileEditorInput(IFile)À» »ç¿ëÇÏ¿© IFileÀ» IEditorInputÀ¸·Î º¯È¯ÇÑ ÈÄ openEditor(IEditorInput,String) ¸Þ¼Òµå¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. Áï, page.openSystemEditor(file)À» page.openEditor(»õ FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)·Î ÀçÀÛ¼ºÇϽʽÿÀ. Âü°í: ÆíÁý±â ID IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®´Â org.eclipse.ui.IPathEditorInput(FileEditorInputÀÌ ¼öÇàÇÏ´Â)À» ±¸ÇöÇÏ´Â ÆíÁý±â ÀÔ·ÂÀ» Àü´ÞÇØ¾ß ÇÕ´Ï´Ù.

Âü°í: ÀÌ´Â 2.1 2Áø Ç÷¯±×ÀÎÀÌ Eclipse 3.0¿¡¼­ ½ÇÇàµÇ´Â ¹æ½Ä¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â ºñȣȯ¼º Áß ÇϳªÀÔ´Ï´Ù. Eclipse 3.0¿¡´Â »èÁ¦µÈ openEditor ¹× openSystemEditor ¸Þ¼Òµå Áß Çϳª¸¦ »ç¿ëÇÏ¿© ±âÁ¸ 2.1 Ç÷¯±×ÀÎ 2ÁøÀÌ ÀÌ API º¯°æ¿¡µµ ºÒ±¸Çϰí 2.1¿¡¼­¿Í °°ÀÌ °è¼Ó ÀÛµ¿Çϵµ·Ï ÇÏ´Â 2Áø ·±Å¸ÀÓ È£È¯¼º ¸ÞÄ¿´ÏÁòÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. (»èÁ¦µÈ ¸Þ¼Òµå´Â org.eclipse.ui.workbench.compatibility ´ÜÆí¿¡ ÀÇÇØ È¿À²ÀûÀ¸·Î "´Ù½Ã Ãß°¡"µË´Ï´Ù.)

7. ÆíÁý±â À̵¿ ¸¶Ä¿

´ÙÀ½ ¸Þ¼Òµå°¡ org.eclipse.ui.IEditorPart ÀÎÅÍÆäÀ̽º¿¡¼­ »èÁ¦µÇ¾ú½À´Ï´Ù. IEditorPart´Â ÀÏ¹Ý Workbench¿¡¼­ ¼±¾ðµÇÁö¸¸ ¸Þ¼Òµå´Â º»·¡ ÀÚ¿ø¿¡ °íÀ¯ÇÕ´Ï´Ù.

ÇØ´çµÇ´Â ¸Þ¼Òµå´Â org.eclipse.ui.part ÆÐŰÁö¿¡¼­ IEditorPart(Áï, EditorPart, MultiEditor, MultiPageEditorPart ¹× MultiPageEditor)¸¦ ±¸ÇöÇϴ Ŭ·¡½º¿¡¼­µµ »èÁ¦µÇ¾ú½À´Ï´Ù.  

ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ÆíÁý±â ÆÄÆ®°¡ org.eclipse.ui.ide.IGotoMarker¸¦ ±¸ÇöÇϰųª ÀÌ¿¡ ¸Â°Ô º¯°æÇÒ °æ¿ì(org.eclipse.ui.ide Ç÷¯±×Àο¡¼­) ´ë½Å Å×½ºÆ®ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ °æ¿ì gotoMarker(IMarker)¸¦ È£ÃâÇϽʽÿÀ. IDE Ŭ·¡½º´Â À̸¦ ¼öÇàÇϱâ À§ÇÑ Æí¸®ÇÑ ¸Þ¼Òµå(IDE.gotoMarker(ÆíÁý±â, ¸¶Ä¿))¸¦ °¡Áö°í ÀÖ½À´Ï´Ù.

IMarker Á¤º¸¸¦ ±âÃÊ·Î ÀÚüÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ÆíÁý±â¸¦ ±¸ÇöÇϴ Ŭ¶óÀÌ¾ðÆ®´Â org.eclipse.ui.ide.IGotoMarker¸¦ ±¸ÇöÇϰųª ÀÌ¿¡ ¸Â°Ô º¯°æÇØ¾ß ÇÕ´Ï´Ù.

IGotoMarkerÀÇ À¯ÀÏÇÑ ¸Þ¼Òµå´Â gotoMarker(IMarker)À̰í ÀÌÀü IEditorPart.gotoMarker(IMarker)¿Í °°Àº ¼­¸í ¹× ½ºÆåÀ» °¡Áö°í ÀÖÀ¸¹Ç·Î, ±âÁ¸ ÆíÁý±â ±¸ÇöÀº Ŭ·¡½º Á¤ÀÇÀÇ ±¸Çö Àý¿¡ IGotoMarker¸¦ Æ÷ÇÔ½ÃÄѼ­ ÀÌ º¯°æ¿¡ ¸Â°Ô ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â Äڵ尡 ÀÖ´Â 2.1 2Áø Ç÷¯±×ÀÎÀº Ç¥ÁØ Eclipse 3.0 ±¸¼º¿¡¼­ ½ÇÇàµÉ °æ¿ì Ŭ·¡½º ¸µÅ© ¿À·ù ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.

8. ÆíÁý±â ½ÇÇà±â

ÆíÁý±â ½ÇÇà±â ÀÎÅÍÆäÀ̽º org.eclipse.ui.IEditorLauncher´Â ¿ÜºÎ ÆíÁý±â¸¦ Á¦°øÇÏ´Â Ç÷¯±×Àο¡ ÀÇÇØ ±¸ÇöµË´Ï´Ù. ´ÙÀ½ ¸Þ¼Òµå°¡ ÀÌ ÀÎÅÍÆäÀ̽º¿¡¼­ Á¦°ÅµÇ¾ú½À´Ï´Ù. IEditorLauncher´Â ÀÏ¹Ý Workbench¿¡¼­ ¼±¾ðµÇÁö¸¸ ¸Þ¼Òµå´Â º»·¡ ÀÚ¿ø¿¡ °íÀ¯ÇÕ´Ï´Ù.

´ÙÀ½°ú °°ÀÌ ´ëüµÇ¾ú½À´Ï´Ù.

IEditorLauncher.open(file)À» È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ®´Â ´ë½Å IEditorLauncher.open(file.getLocation())À» È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϴ Ŭ¶óÀÌ¾ðÆ®´Â open(IFile) ±¸ÇöÀ» open(IPath) ±¸ÇöÀ¸·Î ¹Ù²ã¾ß(¶Ç´Â Áõ°¡½ÃÄѾß) ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â Äڵ尡 ÀÖ´Â 2.1 2Áø Ç÷¯±×ÀÎÀº Ç¥ÁØ Eclipse 3.0 ±¸¼º¿¡¼­ ½ÇÇàµÉ °æ¿ì Ŭ·¡½º ¸µÅ© ¿À·ù ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.

9. ÆíÁý±â ·¹Áö½ºÆ®¸®

´ÙÀ½ ¸Þ¼Òµå°¡ org.eclipse.ui.IEditorRegistry ÀÎÅÍÆäÀ̽º¿¡¼­ Á¦°ÅµÇ¾ú½À´Ï´Ù. IEditorRegistry´Â ÀÏ¹Ý Workbench¿¡¼­ ¼±¾ðµÇÁö¸¸ ¸Þ¼Òµå´Â º»·¡ ÀÚ¿ø¿¡ °íÀ¯ÇÕ´Ï´Ù.

getEditors(file) ¶Ç´Â getImageDescriptor(file)¸¦ È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ®´Â "String"¿¡ ÇØ´çµÇ´Â ¸Þ¼Òµå¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù. setDefaultEditor(IFile file, String editorId) ¹× getDefaultEditor(IFile file)¸¦ È£ÃâÇϴ Ŭ¶óÀÌ¾ðÆ®´Â Å¬·¡½º org.eclipse.ui.ide.IDE(org.eclipse.ui.ide Ç÷¯±×Àο¡ ÀÖ´Â)¿¡ ¼±¾ðµÈ ÇØ´çµÇ´Â °ø¿ë Á¤Àû ¸Þ¼Òµå¸¦ ´ë½Å È£ÃâÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ, ¸Þ¼Òµå IEditorRegistrygetDefaultEditor()¿¡ ´ëÇÑ API °è¾àÀÌ º¯°æµÇ¾ú½À´Ï´Ù. ÀÌ ¸Þ¼Òµå ¿ª½Ã ÀÌÁ¦´Â Æó±âµÇ¾î Ç×»ó '½Ã½ºÅÛ ¿ÜºÎ ÆíÁý±â' ÆíÁý±â ¼³¸íÀÚ¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ º¯°æÀº ¸®ÅÏµÈ ±âº» ÆíÁý±â°¡ ¹®¼­ ÆíÁý±âÀÏ °ÍÀ¸·Î °£ÁÖÇÑ Å¬¶óÀÌ¾ðÆ®¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.

½Ã½ºÅÛ ¿ÜºÎ ÆíÁý±â ¹× ½Ã½ºÅÛ In-Place ÆíÁý±â ID(SYSTEM_EXTERNAL_EDITOR_ID ¹× SYSTEM_INPLACE_EDITOR_ID)¸¦ Ç¥½ÃÇÏ´Â »õ »ó¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ µÎ °¡ÁöÀÇ ÆíÁý±â¸¦ »ç¿ëÇÏ·Á¸é org.eclipse.ui.IPathEditorInputÀ» ±¸ÇöÇϰųª ÀÌ¿¡ ¸Â°Ô º¯°æÇÏ´Â ÆíÁý±â ÀÔ·ÂÀÌ ÇÊ¿äÇÕ´Ï´Ù. In-Place ÆíÁý±â ¼³¸íÀÚ´Â In-Place ÆíÁýÀ» Áö¿øÇÏÁö ¾Ê´Â Eclipse ±¸¼º¿¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù.

10. Workbench ¸¶Ä¿ µµ¿ò¸» ·¹Áö½ºÆ®¸®

´ÙÀ½ ¸Þ¼Òµå°¡ org.eclipse.ui.IWorkbench ÀÎÅÍÆäÀ̽º¿¡¼­ »èÁ¦µÇ¾ú½À´Ï´Ù. IWorkbench´Â ÀÏ¹Ý Workbench¿¡¼­ ¼±¾ðµÇÁö¸¸ ¸Þ¼Òµå´Â º»·¡ ÀÚ¿ø¿¡ °íÀ¯ÇÕ´Ï´Ù.

IWorkbench.getMarkerHelpRegistry()ÀÇ Å¬¶óÀÌ¾ðÆ®´Â ´ë½Å °ø¿ë Á¤Àû ¸Þ¼Òµå org.eclipse.ui.ide.IDE.getMarkerHelpRegistry()(org.eclipse.ui.ide Ç÷¯±×Àο¡ ÀÖ´Â)¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â Äڵ尡 ÀÖ´Â 2.1 2Áø Ç÷¯±×ÀÎÀº Ç¥ÁØ Eclipse 3.0 ±¸¼º¿¡¼­ ½ÇÇàµÉ °æ¿ì ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.

11. ¹®¼­ ÆíÁý±â ¹®¼­ Á¦°øÀÚ

org.eclipse.ui.texteditor.AbstractTextEditor°¡ IFile°ú °ü°è°¡ ¾øµµ·Ï ¸¸µé±â À§ÇØ, org.eclipse.ui.texteditor.AbstractDocumentProvider´Â ¹®¼­ Á¦°øÀÚ Á¶ÀÛ(DocumentProviderOperation) ¹× ¹®¼­ Á¦°øÀÚ Á¶ÀÛ ½ÇÇà ÇÁ·Î±×·¥(IRunnableContext) °³³äÀ» µµÀÔÇß½À´Ï´Ù. Àç¼³Á¤, ÀúÀå ¶Ç´Â µ¿±âÈ­¸¦ ¼öÇàÇϵµ·Ï ¿äûÇÑ °æ¿ì, AbstractDocumentProvider´Â ¹®¼­ Á¦°øÀÚ Á¶ÀÛÀ» ÀÛ¼ºÇϰí Á¶ÀÛ ½ÇÇà ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© Á¶ÀÛÀ» ½ÇÇàÇÕ´Ï´Ù. ½ÇÇà °¡´É ÄÁÅØ½ºÆ®´Â getOperationRunner ¸Þ¼Òµå¸¦ ÅëÇØ ¼­ºêŬ·¡½º°¡ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº Ŭ¶óÀÌ¾ðÆ®°¡ ¾Ë¸Â°Ô º¯°æÇØ¾ß ÇÏ´Â º¯°æ»çÇ×ÀÇ ¿ä¾àÀÔ´Ï´Ù.

AbstractDocumentProvider ¼­ºêŬ·¡½º org.eclipse.ui.editors.text.StorageDocumentProvider´Â Ç×»ó ³Î(null)À» ¸®ÅÏÇϵµ·Ï getOperationRunner ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù. ÀÌ´Â StorageDocumentProviderÀÇ ¼­ºêŬ·¡½º°¡ ÀÌ º¯°æÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê¾Æ¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù.

StorageDocumentProvider ¼­ºêŬ·¡½º org.eclipse.ui.editors.text.FileDocumentProvider´Â WorkspaceModifyOperation¿¡ ÁöÁ¤µÈ DocumentProviderOperationsÀÇ ½ÇÇàÀ» À§ÇØ IRunnableContext¸¦ ¸®ÅÏÇÏ´Â getOperationRunner ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù. ´Ù¸¥ FileDocumentProvider º¯°æ»çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.

12. ¹®¼­ ÆíÁý±â

org.eclipse.ui.texteditor.AbstractTextEditor º¯°æ»çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.

AbstractTextEditor ¼­ºêŬ·¡½º org.eclipse.ui.texteditor.StatusTextEditor´Â ¼úºÎ ¸Þ¼Òµå isErrorStatus(IStatus)¸¦ Á¦°øÇÕ´Ï´Ù. ÁÖ¾îÁø »óŸ¦ ¿À·ù·Î °£ÁÖÇØ¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ °áÁ¤Çϱâ À§ÇØ ¼­ºêŬ·¡½º¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù.

org.eclipse.ui.editors.text.AbstractDecoratedTextEditor º¯°æ»çÇ×Àº ´ÙÀ½°ú °°½À´Ï´Ù.

13. Á¦¸ñ¾ø´Â ¾î³ëÅ×ÀÌ¼Ç Áö¿ø

Á¦¸ñ¾ø´Â ¾î³ëÅ×ÀÌ¼Ç Áö¿ø µµÀÔÀÇ ÀϺηÎ, ´ÙÀ½°ú °°ÀÌ ¾î³ëÅ×À̼ÇÀÌ º¯°æµÇ¾ú½À´Ï´Ù.

        org.eclipse.jface.text.source.Annotation 
        org.eclipse.jface.text.source.AnnotationModel 
        org.eclipse.jface.text.source.AnnotationModelEvent 
        org.eclipse.jface.text.source.IAnnotationModel 
        org.eclipse.jface.text.source.IAnnotationModelListener 
        org.eclipse.jface.text.source.IAnnotationModelListenerExtension

14. ÄÜ¼Ö º¸±â

Eclipse 3.0¿¡´Â »õ ÀÏ¹Ý ÄÜ¼Ö Áö¿øÀÌ ÀÖ½À´Ï´Ù. ÀÏ¹Ý ÄܼÖÀº â > º¸±â Ç¥½Ã > ±âº» > ÄܼÖÀ» ÅëÇØ »ç¿ë °¡´ÉÇϸç Eclipse µð¹ö±×¿Í Ant ÅëÇÕ¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.

Äֿܼ¡ ´ëÇÑ º¸±â ID´Â org.eclipse.debug.ui.ConsoleView¿¡¼­ org.eclipse.ui.console.ConsoleView·Î º¯°æµÇ¾ú½À´Ï´Ù. ÇÁ·Î±×·¥ ¹æ½ÄÀ¸·Î ÄܼÖÀ» ¿©´Â 2.1 Ç÷¯±×ÀÎÀº ÀÌÀü º¸±â°¡ ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾ÊÀ¸¹Ç·Î ½ÇÆÐÇÕ´Ï´Ù.

15. Java Áß´ÜÁ¡ ¸®½º³Ê

3.0¿¡¼­, ¸®½º³Ê°¡ "don't care"¸¦ Á¦¾ÈÇÒ ¼ö ÀÖµµ·Ï ¸Þ¼Òµå org.eclipse.jdt.debug.core.IJavaBreakpointListener.breakpointHit(IJavaBreakpoint, IJavaThread) ¹× installingBreakpoing(IJavaTarget, IJavaBreakpoint, IJavaType)ÀÌ ºÎ¿ï¿¡¼­ int·Î º¯°æµÇ¾ú½À´Ï´Ù. 3.0 ÀÌÀü ¸±¸®½º¿¡¼­´Â ¸®½º³Ê°¡ Áß´ÜÁ¡À» È÷Æ®ÇßÀ» ¶§ "suspend" ¶Ç´Â "don't suspend"¸¸ Á¦¾ÈÇϰí Áß´ÜÁ¡ÀÌ ¼³Ä¡µÇ·Á°í ÇÒ ¶§ "install" ¶Ç´Â "don't install"¸¸ Á¦¾ÈµÇ¾ú½À´Ï´Ù. 3.0¿¡¼­´Â ¸®½º³Ê°¡ À§ÀÇ µÎ ¾Ë¸² Áß Çϳª¿¡ ´ëÇØ "don't care"µµ Á¦¾ÈÇÒ ¼ö ÀÖ½À´Ï´Ù. À̷μ­ Ŭ¶óÀÌ¾ðÆ®´Â °ÆÁ¤ÀÌ µÇ´Â »óȲ¿¡¼­ °áÁ¤ÀûÀÎ Á¦¾È¸¸ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. "Áß´ÜÁ¡ È÷Æ®" ¾Ë¸²ÀÇ °æ¿ì¿¡´Â Áß´ÜÁ¡ÀÌ ÀÓÀÇ ¸®½º³Ê°¡ "suspend"¸¦ Á¦¾ÈÇϰųª ¸ðµç ¸®½º³Ê°¡ "don't care"¸¦ Á¦¾ÈÇÒ °æ¿ì ÀϽÃÁß´ÜÇÏ°Ô µË´Ï´Ù. ±×¸®°í ÃÖ¼Ò ÇϳªÀÇ ¸®½º³Ê°¡ "don't suspend"¸¦ Á¦¾ÈÇÏ°í ¾î¶² ¸®½º³Êµµ "suspend"¸¦ Á¦¾ÈÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â ÀϽÃÁß´ÜÇÏÁö ¾Ê½À´Ï´Ù. ¸¶Âù°¡Áö·Î, "breakpoint installing" ¾Ë¸²ÀÇ °æ¿ì, Áß´ÜÁ¡Àº ¸®½º³Ê°¡ ¼³Ä¡ÇÒ °ÍÀ» Á¦¾ÈÇÒ °æ¿ì, ¶Ç´Â ¸ðµç ¸®½º³Ê°¡ "don't care"¸¦ Á¦¾ÈÇÒ °æ¿ì¿¡ ¼³Ä¡µË´Ï´Ù. ÃÖ¼Ò ÇϳªÀÇ ¸®½º³Ê°¡ "don't install"À» Á¦¾ÈÇÏ°í ¾î¶² ¸®½º³Êµµ "install"À» Á¦¾ÈÇÏÁö ¾ÊÀ» °æ¿ì Áß´ÜÁ¡Àº ¼³Ä¡µÇÁö ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î, ±¸ÇöÀÚ´Â ¾î´À ÂÊÀ̵çÁö °­·ÂÇÑ °ßÇØ¸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸¸é DONT_CARE¸¦ ¸®ÅÏÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, "suspend"¸¦ Á¦¾ÈÇÏ¸é ´Ù¸¥ ¸®½º³Ê Á¦¾È "don't suspend"¸¦ ´ëüÇÑ´Ù´Â Á¡À» ±â¾ïÇØ¾ß ÇÕ´Ï´Ù.

IJavaBreakpointListener ÀÎÅÍÆäÀ̽º´Â Java ÄÚµå·Î Áß´ÜÁ¡À» ÀÛ¼ºÇϰųª Áß´ÜÁ¡¿¡ ¹ÝÀÀÇϴ Ŭ¶óÀÌ¾ðÆ®°¡ ±¸ÇöÇÕ´Ï´Ù. JDT ÀÚü¸¦ ³Ñ¾î¼­´Â ¼Ò¼öÀÇ Å¬¶óÀÌ¾ðÆ®°¡ ÀÖ½À´Ï´Ù. ÀÌ º¯°æÀ¸·Î ¼öÁ¤µÇ´Â ¹®Á¦Á¡(¹ö±× 37760)À» º¸°íÇÑ Å¬¶óÀÌ¾ðÆ®¸¦ ÀúÀåÇϽʽÿÀ. ÀÌ´Â IJavaBreakpointListener ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ±âÁ¸ Äڵ忡 ´ëÇÑ Áß´Ü º¯°æÀÔ´Ï´Ù. ÀÌ ÄÚµå´Â 3.0¿¡¼­ ÄÄÆÄÀÏ ¶Ç´Â ½ÇÇàµÇ±â Àü¿¡ ÀûÀýÇÑ int °ªÀ» ¸®ÅÏÇϵµ·Ï ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

16. UI ½º·¹µå¿¡¼­ÀÇ Å¬¸³º¸µå ¾×¼¼½º

3.0 ÀÌÀü¿¡´Â, SWT Ŭ·¡½º org.eclipse.swt.dnd.ClipboardÀÇ ¸Þ¼Òµå°¡ UI ½º·¹µå°¡ ¾Æ´Ñ ´Ù¸¥ ½º·¹µå¿¡¼­ ½ÇÇàµÇµµ·Ï Çã¿ëµÇ¾ú½À´Ï´Ù. ÀÌ ½Ç¼ö·Î ¿î¿µ üÁ¦°¡ ¸ðµç Ŭ¸³º¸µå »óÈ£ÀÛ¿ëÀ» UI ½º·¹µå¿¡¼­ ¼öÇàÇϵµ·Ï ¿ä±¸ÇÏ´Â GTK¿¡¼­ ½ÇÆÐ°¡ ¹ß»ýÇß½À´Ï´Ù. ¸¹Àº ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ´ÜÀÏ ½º·¹µå »óÅÂÀ̰í Windows¿¡¼­ ´ëºÎºÐÀÇ Å×½ºÆ®¸¦ ¹ÞÀ¸¹Ç·Î ÀÌÀü¿¡¼­ ½Ç¼ö°¡ µå·¯³ªÁö ¾Ê¾Ò½À´Ï´Ù. Ŭ¸³º¸µå API°¡ Ç÷§Æû »çÀÌ¿¡ Áö¼Ó °¡´ÉÇϵµ·Ï Çϱâ À§ÇØ, 3.0¿¡¼­´Â UI°¡ ¾Æ´Ñ ½º·¹µå¿¡¼­ È£ÃâÇÑ °æ¿ì SWT ¿¹¿Ü(ERROR_THREAD_INVALID_ACCESS)°¡ ¹ß»ýÇϵµ·Ï ¸ðµç Ŭ¸³º¸µå API ¸Þ¼ÒµåÀÇ ±¸Çö ¹× ½ºÆåÀÌ º¯°æµÇ¾ú½À´Ï´Ù. Ŭ¸³º¸µå ¼­ºñ½º´Â º¸Åë ¸¹Àº Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ Áß´Ü º¯°æ¿¡¼­ °Ý¸®µÇµµ·Ï ÇÏ´Â Eclipse ÄÄÆ÷³ÍÆ®(¿¹: ¹®¼­ ÆíÁý±â)¿¡ ÀÇÇØ ÀÚµ¿À¸·Î Á¦°øµË´Ï´Ù. Ŭ¸³º¸µå¸¦ Á÷Á¢ »ç¿ëÇÏ´Â ±âÁ¸ ÄÚµå´Â UI ½º·¹µå·Î ¾×¼¼½º¸¦ À̵¿ÇÏ´Â °ÍÀÌ ÀûÀýÇÑ °æ¿ì Display.asyncExec ¶Ç´Â syncExec¸¦ »ç¿ëÇÏ¿© ¿Ã¹Ù¸¥ ½º·¹µå¿¡¼­ API ¸Þ¼Òµå°¡ È£ÃâµÇ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

17. Ű ´Ù¿î À̺¥Æ®

3.0¿¡¼­, SWT´Â ÀÛ¾÷ÀÌ OS¿¡¼­ ¼öÇàµÇ±â Àü¿¡ Ű ´Ù¿î À̺¥Æ®¸¦ º¸°íÇÕ´Ï´Ù. ÀÌ´Â 3.0 ÀÌÀü ¹öÀü¿¡¼­º¸´Ù ÈξÀ ºü¸¨´Ï´Ù. ÀÌ º¯°æÀº À§ÁöÆ®(widget)°¡ ¹®ÀÚ¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ±âȸ¸¦ °®±â Àü¿¡ Ű À̺¥Æ®¸¦ ÀÎÅͼÁÆ®ÇØ¾ß ÇÏ´Â Eclipse¿¡¼­ÀÇ Å° ¹ÙÀεùÀ» Áö¿øÇϱâ À§ÇØ ¼öÇàµÇ¾ú½À´Ï´Ù. ÀÌ º¯°æÀÇ °á°ú´Â ÇÏÀ§ ·¹º§ org.eclipse.swt.SWT.KeyDown À̺¥Æ®¸¦ Á÷Á¢ ó¸®ÇÏ´Â Äڵ忡 Ç¥½Ã °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÀÌ´Â ÅØ½ºÆ® À§ÁöÆ®ÀÇ ¸®½º³Ê°¡ Ű ´Ù¿î À̺¥Æ®¸¦ ¼ö½ÅÇÒ ¶§ À§ÁöÆ®ÀÇ ÄÁÅÙÃ÷(getText())°¡ ¹æ±Ý ÀÔ·ÂÇÑ Å°¸¦ ¾ÆÁ÷ Æ÷ÇÔÇÏÁö ¾ÊÀ½À» ÀǹÌÇÕ´Ï´Ù(3.0 ÀÌÀü¿¡´Â Æ÷ÇÔÇß½À´Ï´Ù). ÇöÀç ۸¦ Æ÷ÇÔÇÏ´Â À§ÁöÆ®¿¡¼­ Àüü ÅØ½ºÆ®¸¦ °¡Á®¿À±â À§ÇÑ ±ÇÀåµÇ´Â ¹æ¹ýÀº ÇÏÀ§ ·¹º§ SWT.KeyDown À̺¥Æ®°¡ ¾Æ´Ñ ´õ ³ôÀº ·¹º§ÀÇ SWT.Modify ¶Ç´Â SWT.Verify À̺¥Æ®¸¦ ó¸®ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ¹Ì ÀÌ ¹æ½ÄÀ¸·Î ¼öÇàÇÏ´Â ÄÚµå´Â ÀÌ º¯°æÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù.

18. »ç¿ëÀÚ Á¤ÀÇ Á¦¾îÀÇ ÅÇ ¼øÈ¸

3.0 ÀÌÀü¿¡´Â, ÃÊÁ¡ÀÌ SWT Ŭ·¡½º org.eclipse.swt.widgets.Canvas³ª ÇØ´çµÇ´Â ¼­ºêŬ·¡½º(»ç¿ëÀÚ Á¤ÀÇ À§ÁöÆ®¸¦ Æ÷ÇÔÇÏ¿©) Áß Çϳª¿¡ ÀÖÀ» °æ¿ì Ctrl+Tab, Shift+Tab, Ctrl+PgUp ¶Ç´Â Ctrl+PgDnÀ» ´©¸£¸é Ű À̺¥Æ®¸¦ º¸°íÇÏÁö ¾Ê°í ÀÚµ¿À¸·Î ´ÙÀ½/ÀÌÀü À§ÁöÆ®·ÎÀÇ ¼øÈ¸°¡ Æ®¸®°ÅµË´Ï´Ù. ÀÌ µ¿ÀÛÀº ÁöÁ¤ÇÏÁö ¾Ê¾ÒÁö¸¸, Canvase°¡ ÀÔ·ÂµÈ ¸ðµç ۸¦ È®ÀÎÇÏ´Â ±ÔÄ¢¿¡ ´ëÇØ Ä«¿îÅ͸¦ ½ÇÇàÇÕ´Ï´Ù. ¼øÈ¸¸¦ ó¸®ÇÏ´Â ÀûÀýÇÑ ¹æ¹ýÀº ¼øÈ¸ ¸®½º³Ê¸¦ µî·ÏÇÏ´Â °ÍÀÔ´Ï´Ù. 3.0¿¡¼­ÀÇ Eclipse Ű ¹ÙÀεùÀ» ÀûÀýÇÏ°Ô Áö¿øÇϱâ À§ÇØ, ÀÌÁ¦´Â Canvas°¡ ¼øÈ¸ÇÏ´Â ´ë½Å Ctrl+Tab, Shift+Tab, Ctrl+PgUp ¹× Ctrl+PgDn Ű À̺¥Æ®¸¦ È®ÀÎÇϵµ·Ï ±âº» µ¿ÀÛÀÌ º¯°æµÇ¾ú½À´Ï´Ù. ¿ø·¡ Canvas¸¦ »ç¿ëÇϰųª CanvasÀÇ ¼­ºêŬ·¡½º¸¦ Á¤ÀÇÇÒ °æ¿ì, ¼øÈ¸ ¸®½º³Ê¸¦ µî·ÏÇÏ´ÂÁö È®ÀÎÇϽʽÿÀ.

19. SWT Å×ÀÌºí ¹× Æ®¸® À§ÁöÆ®(widget)¿¡¼­ÀÇ ¼±Åà À̺¥Æ® ¼ø¼­

SWT Ŭ·¡½º org.eclipse.swt.widgets.Table ¹× Tree¿¡¼­ Ç׸ñÀ» ¸¶¿ì½º·Î ¼±ÅÃÇÏ¸é ¸ðµç ¿î¿µ ȯ°æ¿¡¼­ ÀÏÁ¤ÇÏ°Ô À̺¥Æ® ½ÃÄö½º MouseDown-Selection-MouseUpÀÌ »ý¼ºµË´Ï´Ù. ¸¶Âù°¡Áö·Î, Űº¸µå ¼±ÅûçÇ×Àº ¸ðµç ¿î¿µ ȯ°æ¿¡¼­ ÀÏÁ¤ÇÏ°Ô À̺¥Æ® ½ÃÄö½º KeyDown-Selection-KeyUpÀ» »ý¼ºÇÕ´Ï´Ù. 3.0 ÀÌÀü¿¡´Â À̺¥Æ® ¼ø¼­°¡ ÀÏÁ¤ÇÏÁö ¾Ê¾Ò½À´Ï´Ù. Motif ¹× Photon¿¡¼­ Ç×»ó Selection À̺¥Æ®¸¦ ¸ÕÀú º¸°íÇÏ¿© ³ª¸ÓÁö¿Í ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù(Áï, Selection-MouseDown-MouseUp ¶Ç´Â Selection-KeyDown-KeyUp). 3.0ÀÇ °æ¿ì, Motif ¹× PhotonÀÇ À̺¥Æ® ¼ø¼­°¡ ´Ù¸¥ °Í°ú ÀÏÄ¡Çϵµ·Ï º¯°æµÇ¾ú½À´Ï´Ù. {Windows, GTK} ¹× {Motif, Photon}¿¡¼­ ¿Ã¹Ù¸£°Ô ÀÛµ¿Çß´ø ±âÁ¸ ÄÚµå´Â ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. ±×·¯³ª ¿Ã¹Ù¸£Áö ¾ÊÀº À̺¥Æ® ¼ø¼­¿¡ ÀÇÁ¸ÇÏÁö ¾Êµµ·Ï Äڵ带 È®ÀÎÇÏ´Â °ÍÀÌ ±ÇÀåµË´Ï´Ù.

20. »óÅ ¿ÀºêÁ§Æ®ÀÇ »õ ½É°¢µµ ·¹º§

org.eclipse.core.runtime.IStatus¿¡´Â Ãë¼Ò¸¦ Ç¥½ÃÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â »õ·Î¿î ½É°¢µµ »ó¼öÀÎ IStatus.CANCELÀÌ ÀÖ½À´Ï´Ù. IStatus.OK, INFO, WARNING ¹× ERROR·Î Á¦ÇѵǴ °¡´ÉÇÑ ½É°¢µµ ¼¼Æ®¿¡ ÀÇÁ¸ÇÏ´Â IStatus.getSeverity() È£ÃâÀÚ´Â ÀÌ Ãß°¡ÀÇ ¿µÇâÀ» ¹Þ½À´Ï´Ù. getSeverity È£ÃâÀÚ´Â »õ ½É°¢µµ¸¦ Æ÷ÇÔÇϵµ·Ï Äڵ带 °»½ÅÇØ¾ß ÇÕ´Ï´Ù.

21. ºôµå °ü·Ã ÀÚ¿ø º¯°æ ¾Ë¸²

Eclipse 3.0¿¡¼­, ÀÛ¾÷°ø°£ ÀÚµ¿ ºôµå´Â ÀÌÁ¦ ¹é±×¶ó¿îµå ½º·¹µå¿¡¼­ ¹ß»ýÇÕ´Ï´Ù. ÀÌ´Â org.eclipse.core.resources.IResourceChangeEvent·ÎÀÇ API °è¾à º¯°æÀ» ¿ä±¸Çß½À´Ï´Ù. IResourceChangeEvent °è¾àÀº ÀÌÀü¿¡ ¸ðµç ÀÛ¾÷°ø°£ º¯°æ»çÇ׿¡ ´ëÇØ ´ÙÀ½ ¼ø¼­ÀÇ À̺¥Æ®¸¦ º¸ÀåÇß½À´Ï´Ù.

  1. Àû¿ë °¡´ÉÇÒ °æ¿ì PRE_DELETE ¶Ç´Â PRE_CLOSE À̺¥Æ® ¾Ë¸²
  2. Á¶ÀÛ ¼öÇà
  3. PRE_AUTO_BUILD À̺¥Æ® ¾Ë¸²
  4. ÀÚµ¿ ºôµå°¡ ¼³Á¤µÈ °æ¿ì Á¡ÃþÀûÀÎ ÀÛ¾÷°ø°£ ºôµå ¼öÇà
  5. POST_AUTO_BUILD À̺¥Æ® ¾Ë¸²
  6. POST_CHANGE À̺¥Æ® ¾Ë¸²

ÀÌÁ¦´Â ÀÚµ¿ ºôµå°¡ ¹è°æ¿¡¼­ ½ÇÇàµÇ¹Ç·Î, ´õ ÀÌ»ó AUTO_BUILD À̺¥Æ®¿Í POST_CHANGE À̺¥Æ® »çÀÌÀÇ Àӽà °ü°è¿¡ ´ëÇÑ º¸ÁõÀÌ ¾ø½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â, À§ÀÇ ±¸Á¶¿¡ ÀÖ´Â 3 - 5 ´Ü°è°¡ Á¶ÀÛ¿¡¼­ Á¦°ÅµË´Ï´Ù. °á°ú ±×¸²Àº ´ÙÀ½°ú À¯»çÇÕ´Ï´Ù.

  1. Àû¿ë °¡´ÉÇÒ °æ¿ì PRE_DELETE ¶Ç´Â PRE_CLOSE À̺¥Æ® ¾Ë¸²
  2. Á¶ÀÛ ¼öÇà
  3. POST_CHANGE À̺¥Æ® ¾Ë¸²

Á¤±âÀûÀ¸·Î, Ç÷§ÆûÀº ¹è°æ ÀÛ¾÷°ø°£ ºôµå Á¶ÀÛÀ» ¼öÇàÇÕ´Ï´Ù. ÀÌ´Â ÀÚµ¿ ºôµåÀÇ ¼³Á¤ ¶Ç´Â ÇØÁ¦ ¿©ºÎ¿¡ °ü°è¾øÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÌ ºôµå°¡ ¹ß»ýÇÏ´Â Á¤È®ÇÑ ½Ã°£Àº ÁöÁ¤µÇÁö ¾Ê½À´Ï´Ù. ºôµå Á¶ÀÛ ±¸Á¶´Â ´ÙÀ½°ú À¯»çÇÏ°Ô µË´Ï´Ù.

  1. PRE_BUILD À̺¥Æ® ¾Ë¸²(PRE_BUILD´Â PRE_AUTO_BUILDÀÇ »õ À̸§ÀÓ)
  2. ÀÚµ¿ ºôµå°¡ ¼³Á¤µÈ °æ¿ì Á¡ÃþÀûÀÎ ÀÛ¾÷°ø°£ ºôµå ¼öÇà
  3. POST_BUILD À̺¥Æ® ¾Ë¸²(POST_BUILD´Â POST_AUTO_BUILDÀÇ »õ À̸§ÀÓ)
  4. POST_CHANGE À̺¥Æ® ¾Ë¸²

ÀÚµ¿ ºôµå ¸®½º³Ê°¡ ¼ö½ÅÇÑ µ¨Å¸¿¡ ´ëÇÑ ÂüÁ¶Á¡Àº º¯°æ ÈÄ ¸®½º³Ê¿Í ´Ù¸£°Ô µË´Ï´Ù. ºôµå ¸®½º³Ê´Â ¸¶Áö¸· ºôµå Á¶ÀÛ ³¡ ÀÌÈÄÀÇ ¸ðµç º¯°æ»çÇ× ¾Ë¸²À» ¼ö½ÅÇÕ´Ï´Ù. º¯°æ ÈÄ ¸®½º³Ê´Â ¸¶Áö¸· º¯°æ ÈÄ ¾Ë¸² ÀÌÈÄÀÇ ¸ðµç º¯°æ»çÇ×À» ¼³¸íÇÏ´Â µ¨Å¸¸¦ ¼ö½ÅÇÕ´Ï´Ù. ÀÌ »õ ±¸Á¶´Â Eclipse 1.0 ÀÌÈÄ·Î Àû¿ëµÇ¾ú´ø ÀÚ¿ø º¯°æ ¸®½º³ÊÀÇ ¼¼ °¡Áö Ư¼ºÀ» º¸À¯ÇÕ´Ï´Ù.

±×·¯³ª ÀÌ Á¢±Ù ¹æ½Ä¿¡´Â Áß¿äÇÑ Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù. Eclipse 3.0 ÀÌÀü¿¡´Â, ÀÚµ¿ ºôµå ¸®½º³Ê°¡ Ç×»ó POST_CHANGE ¸®½º³Ê ÀÌÀü¿¡ È£ÃâµÇ¾ú½À´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î, ÀÚµ¿ ºôµå ¸®½º³Ê°¡ ¼ö½ÅÇÑ µ¨Å¸´Â Ç×»ó POST_CHANGE ¸®½º³Ê°¡ ¼ö½ÅÇÑ µ¨Å¸ÀÇ ¼­ºê¼¼Æ®¿´½À´Ï´Ù. ÀÌ °ü°è´Â ÀÌÁ¦ º»ÁúÀûÀ¸·Î ¹Ý´ë·Î µÇ¾ú½À´Ï´Ù. ÀÚµ¿ ºôµå ¸®½º³Ê´Â ¸¶Áö¸· ¹è°æ ºôµå ³¡ ÀÌÈÄ·Î POST_CHANGE ¸®½º³Ê¿¡ Á¦°øµÈ ¸ðµç µ¨Å¸ÀÇ »óÀ§ ¼¼Æ®ÀÎ µ¨Å¸¸¦ ¼ö½ÅÇÕ´Ï´Ù. ÀÌÀü°ú °°ÀÌ, ÀÚµ¿ ºôµå ¸®½º³Ê´Â ÀÛ¾÷ °ø°£À» ¼öÁ¤ÇÒ ¼ö ÀÖÁö¸¸ º¯°æ ÈÄ ¸®½º³Ê´Â ¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù.

ÀÛ¾÷°ø°£ º¯°æ Á¶ÀÛ ¿Ï·á ½Ã AUTO_BUILD À̺¥Æ® ¸®½º³Ê¿¡°Ô ¾Ë¸®´Â °ÍÀº ÀÌÁ¦ ´õ ÀÌ»ó »ç½ÇÀÌ ¾Æ´Õ´Ï´Ù. IWorkspace.addResourceChangeListener(IResourceChangeListener)·Î ÀÚ¿ø º¯°æ ¸®½º³Ê¸¦ µî·ÏÇϴ Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â AUTO_BUILD À̺¥Æ®°¡ ÀÌ ¸®½º³Ê¿¡ º¸°íµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î ÀÌ º¯°æÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê½À´Ï´Ù. ±×·¯³ª IWorkspace.addResourceChangeListener(IResourceChangeListener,int)¸¦ »ç¿ëÇϰí AUTO_BUILD À̺¥Æ®¸¦ Æ÷ÇÔÇÏ´Â À̺¥Æ® ¸¶½ºÅ©¸¦ ÁöÁ¤Çϴ Ŭ¶óÀÌ¾ðÆ®´Â ÀÚµ¿ ºôµå ¸®½º³Ê°¡ ½ÇÇàµÇ´Â ½Ã±â³ª ½ÇÇàµÇ´Â ½º·¹µå¿¡ °üÇÑ »çÇ×À» °¡Á¤ÇÒ °æ¿ì ÀÌ º¯°æÀ¸·Î Áß´ÜµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÚµ¿ ºôµå ¸®½º³Ê°¡ ÀÛ¾÷°ø°£¿¡ º¯°æ»çÇ×À» ¹Ý¿µÇϱâ À§ÇØ µµ¸ÞÀÎ ¸ðµ¨À» °»½ÅÇÏ´Â °æ¿ì, ÀÌ °»½ÅÀº ÀÛ¾÷°ø°£ º¯°æ Á¶ÀÛÀÌ ¸®ÅÏÇÒ ¶§ ¹ß»ýÇÏÁö ¾Ê¾ÒÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ½Ä¿¡¼­´Â UI ·¹º§ Äڵ常 ¿µÇâÀ» ¹ÞÀ» ¼ö ÀÖÀ¸¹Ç·Î °¡Ä¡°¡ ¾ø½À´Ï´Ù. API¸¦ ÅëÇØ È£ÃâµÇ´Â ÄÚ¾î ·¹º§ ÄÚµå´Â IWorkspaceRunnable ¹üÀ§ ³»¿¡¼­ È£ÃâÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÚ¿ø º¯°æ ¸®½º³Ê¸¦ È£ÃâÇÒ ½Ã±â¿¡ ´ëÇØ È®½ÅÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ Áß´Ü¿¡ ´ëÇØ Á¦¾ÈµÇ´Â ¼öÁ¤»çÇ×Àº Á¶ÀÛ ¿Ï·á ÀÌÀü¿¡ ¾Ë¸²ÀÌ ¹ß»ýµÇ¾î¾ß ÇÒ °æ¿ì ºôµå ¸®½º³Ê ´ë½Å POST_CHANGE¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.

22. ÀÛ¾÷°ø°£ ¿ÀÆÛ·¹ÀÌ¼Ç µ¿¾È Áß°£ ¾Ë¸²

´õ ÀÌ»ó IWorkspaceRunnableÀÇ µ¿Àû ¹üÀ§¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç ÀÚ¿ø º¯°æ»çÇ×ÀÌ ´ÜÀÏ ¾Ë¸²À¸·Î Àϰýó¸®µÈ´Ù°í º¸ÁõÇÏÁö ¸øÇÕ´Ï´Ù. ÀÌ ¸ÞÄ¿´ÏÁòÀº ºÒÇÊ¿äÇÑ ºôµå ¹× ¾Ë¸²À» ÇÇÇϱâ À§ÇØ °è¼Ó Àϰýó¸® º¯°æ»çÇ׿¡ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ Ç÷§ÆûÀº ÀÌÁ¦ Á¶ÀÛ µ¿¾È ¾Ë¸²À» ¼öÇàÇÒ °ÍÀ» °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ API °è¾à ¹üÀ§´Â ±âÁ¸ Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ Áß´Ü º¯°æÀÌ µÇÁö ¾Ê½À´Ï´Ù. Àå±â ½ÇÇà Á¶ÀÛ µ¿¾È Á¤±âÀûÀ¸·Î IWorkspace.checkpoint¸¦ È£ÃâÇÒ °ÍÀ» °áÁ¤ÇÏ´Â Ç÷§Æû°ú °°½À´Ï´Ù. ÀÌ º¯°æÀÇ ÀÌÀ¯´Â ÀÌÁ¦ ¿©·¯ ½º·¹µå¿¡ ´ëÇØ µ¿½Ã¿¡ ÀÛ¾÷°ø°£À» ¼öÁ¤ÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ÇϳªÀÇ ½º·¹µå°¡ ÀÛ¾÷°ø°£ ¼öÁ¤À» ¿Ï·áÇÒ °æ¿ì ´Ù¸¥ Á¶ÀÛÀÌ ¾ÆÁ÷ ¿Ï·áµÇÁö ¾ÊÀº °æ¿ì¿¡µµ ÀÀ´ä¼º ¹®Á¦Á¡À» ¹æÁöÇϱâ À§ÇØ ¾Ë·Á¾ß ÇÕ´Ï´Ù. ÀÌ º¯°æÀ¸·Î »ç¿ëÀÚ´Â Á¶ÀÛÀ» ¿Ï·áÇϱâ Àü¿¡ ÀÚ¿ø ¼¼Æ®¿¡ ´ëÇÑ ÀÛ¾÷À» ½ÃÀÛÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ëÀÚ´Â ÀÌÁ¦ °è¼Ó üũ¾Æ¿ô ó¸® ÁßÀÎ ÇÁ·ÎÁ§Æ®¿¡¼­ ÆÄÀÏ Ã£¾Æº¸±â¸¦ ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ ¸Þ¼Òµå IWorkspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)¿¡´Â ¼±ÅÃÀû Ç÷¡±× AVOID_UPDATE°¡ ÀÖ½À´Ï´Ù. ÀÌ Ç÷¡±×´Â Á¤±âÀû °»½ÅÀ» ¿øÇÏ´ÂÁö ÁöÁ¤Çϱâ À§ÇØ Á¶ÀÛÀÌ Ç÷§Æû¿¡ ´ëÇÑ ÈùÆ®·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

23. URL ½ºÆ®¸² Çڵ鷯 È®Àå

¿µÇâÀ» ¹Þ´Â ´ë»ó: org.eclipse.core.runtime.urlHandlers È®ÀåÁ¡¿¡ È®ÀåÀ» Á¦°øÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: org.eclipse.core.runtime.urlHandlers È®ÀåÁ¡¿¡ ´ëÇÑ °è¾àÀÌ OSGi°¡ Á¦°øÇÏ´Â URL ½ºÆ®¸² Çڵ鷯 ¼­ºñ½º¸¦ »ç¿ëÇϵµ·Ï º¯°æµÇ¾ú½À´Ï´Ù. OSGi Áö¿øÀº Eclipse 2.1¿¡¼­ÀÇ Áö¿øº¸´Ù ³´°í µ¿Àû Çڵ鷯¸¦ ¿Ã¹Ù¸£°Ô ó¸®ÇÕ´Ï´Ù. ±âº» Java URL Çڵ鷯 ¸ÞÄ¿´ÏÁò¿¡ ´ëÇØ ´Ù¾çÇÑ ¼³°è ¹®Á¦°¡ ÀÖÀ¸¹Ç·Î, OSGi Çڵ鷯 ¼­ºñ½º¿¡ ´ëÇØ µî·ÏµÈ URLStreamHandlers´Â org.osgi.service.url.URLStreamHandlerService¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÀÌÀü¿¡´Â Çڵ鷯 Ŭ·¡½º°¡ java.net.URLStreamHandler¸¦ ±¸ÇöÇϰí urlHandlers È®ÀåÁ¡À» È®ÀåÇØ¾ß Çß½À´Ï´Ù. È®ÀåÁ¡Àº ´õ ÀÌ»ó Áö¿øµÇÁö ¾ÊÀ¸¸ç Çڵ鷯´Â org.osgi.service.url.URLStreamHandlerService ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϵµ·Ï °»½ÅÇØ¾ß ÇÕ´Ï´Ù. OSGi ÇÁ·¹ÀÓ¿öÅ©´Â ÀÌ ¿ªÇÒÀ» ä¿ì±â À§ÇØ »ç¼ÒÇÏ°Ô ¼­ºêŬ·¡½ºÈ­ÇÒ ¼ö ÀÖ´Â Ãß»ó ±âº» Ŭ·¡½º(org.osgi.service.url.AbstractURLStreamHandlerService)¸¦ Á¦°øÇÕ´Ï´Ù.

È®ÀåÁ¡À» »ç¿ëÇÏ¿© Çڵ鷯¸¦ µî·ÏÇÏ´Â ´ë½Å Ç÷¯±×ÀÎÀº ÀÌÁ¦ ¼­ºñ½º·Î Çڵ鷯¸¦ µî·ÏÇÏ¿© À̸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

    Hashtable properties = new Hashtable(1);
    properties.put(URLConstants.URL_HANDLER_PROTOCOL, new String[] {MyHandler.PROTOCOL});
    String serviceClass = URLStreamHandlerService.class.getName();
    context.registerService(serviceClass, new MyHandler(), properties);

24. Ŭ·¡½º ·Îµå ¼ø¼­

¿µÇâÀ» ¹Þ´Â ´ë»ó: ´Ù¸¥ Ç÷¯±×Àο¡¼­µµ Á¦°øµÉ °æ¿ì ÆÐŰÁö¸¦ Á¦°øÇÏ´Â Ç÷¯±×ÀÎ. ¾ÆÁÖ Á¦ÇÑµÈ ¸î °³ÀÇ Ç÷¯±×ÀÎÀÌ ÀÌ º¯°æÀÇ ¿µÇâÀ» ¹ÞÀ¸¸ç ¿µÇâÀ» ¹Þ´Â Ç÷¯±×ÀÎ Áß ÀϺδ ½ÇÁ¦·Î À̵æÀ» ¾ò½À´Ï´Ù(¾Æ·¡ ÂüÁ¶).

¼³¸í: Eclipse 2.x¿¡¼­, Ŭ·¡½º ·Î´õ´Â (1) »óÀ§ Ŭ·¡½º ·Î´õ(»ç·Ê¿¡¼­ Java ½Ãµ¿ Ŭ·¡½º ·Î´õ), (2) ÇØ´çµÇ´Â °íÀ¯ Ŭ·¡½º °æ·Î ÄÁÅÙÃ÷, ¸¶Áö¸·À¸·Î (3) ¼±¾ðµÈ ¼ø¼­¿¡ ÀÖ´Â ÇØ´çµÇ´Â ¸ðµç ÀüÁ¦Á¶°Ç ¼ø¼­·Î Ŭ·¡½º¸¦ °Ë»öÇÕ´Ï´Ù. OSGi´Â ÀÌ ¸ðµ¨¿¡ ´ëÇÑ ÃÖÀûÀ» Á¦°øÇÕ´Ï´Ù. ÀÌ Á¢±Ù ¹æ½Ä¿¡¼­ Ŭ·¡½º ·Î´õ´Â (1) »óÀ§ Ŭ·¡½º ·Î´õ(È¿À²ÀûÀ¸·Î´Â Java ½Ãµ¿ Ŭ·¡½º ·Î´õ), (2a) Á¶È¸ÇÏ´Â ÆÐŰÁö¿¡¼­ Ŭ·¡½º¸¦ Á¦°øÇϱâ À§ÇÑ ¾Ë·ÁÁø ´ÜÀÏ ÀüÁ¦Á¶°ÇÀ̳ª (2b) ¿øÇϴ Ŭ·¡½º¿¡ ´ëÇÑ °íÀ¯ Ŭ·¡½º °æ·Î Ç׸ñÀ» ¼ø¼­´ë·Î ã½À´Ï´Ù.

Ŭ·¡½º ·Î´õ´Â ÀÚü¸¦ º¼ °ÍÀÎÁö °¡Á®¿Â ÆÐŰÁö¿Í Çʼö ÆÐŰÁö¸¦ ±âÃÊ·Î ÇØ´çµÇ´Â ÀüÁ¦Á¶°ÇÀ» ãÀ» °ÍÀÎÁö ÆÇº°ÇÕ´Ï´Ù. ÀÌ Á¤º¸´Â ÀϹÝÀûÀÎ Ç÷¯±×ÀÎÀÇ ÄÉÀ̽º¿¡ ÀÖ´Â Ç÷¯±×ÀÎ ÄÁÅÙÃ÷¸¦ ÅëÇØ ÃßÃøÇÏ¸ç ¸í½ÃÀû OSGi ¹øµé Manifest¸¦ »ç¿ëÇÏ¿© Ç÷¯±×ÀÎÀÇ ÄÉÀ̽º¿¡ Á÷Á¢ ÁöÁ¤ÇÕ´Ï´Ù. ¾î´À ÄÉÀ̽ºµçÁö, ¾î´À Ŭ·¡½º ·Î´õ°¡ ¾î´À ÆÐŰÁö¿¡ ´ëÇÑ Å¬·¡½º¸¦ Á¦°øÇÒ °ÍÀÎÁö ÃßÃøÇÏ¿© ¾Ë·ÁÁý´Ï´Ù. ÀÌ´Â ¼º´É °³¼±°ú µ¿ÀÏ Å¬·¡½º¸¦ Á¦°øÇÏ´Â ¿©·¯ ÀüÁ¦Á¶°ÇµéÀÇ ³­Ã³ÇÑ ¹®Á¦Á¡¿¡ ´ëÇÑ ¼Ö·ç¼ÇÀ» Á¦°øÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, µÑ ´Ù org.xml ÆÐŰÁöÀÇ ´Ù¾çÇÑ Å¬·¡½º¸¦ Æ÷ÇÔÇÏ´Â Xerces ¹× Xalan ÄÉÀ̽º¸¦ »ý°¢ÇØ º¸½Ê½Ã¿À. ù ¹øÂ° Á¢±Ù ¹æ½ÄÀ» »ç¿ëÇÒ °æ¿ì Xerces Ç÷¯±×ÀÎÀº ÇØ´ç Ŭ·¡½ºÀÇ »çº»À» ã´Â ¹Ý¸é Xalan Ç÷¯±×ÀÎÀº ÇØ´çµÇ´Â »çº»À» ã½À´Ï´Ù. ÀÌ Ç÷¯±×ÀÎÀº Åë½ÅÇØ¾ß ÇϹǷΠClassCastExceptions°¡ ¹ß»ýÇÕ´Ï´Ù. µÎ ¹øÂ° Á¢±Ù ¹æ½ÄÀ» »ç¿ëÇÒ °æ¿ì, µÎ °³ÀÇ Ç÷¯±×ÀÎ Áß Çϳª¸¸ Áߺ¹ Ŭ·¡½º¸¦ Á¦°øÇÏ°í µÎ Ç÷¯±×ÀÎ ¸ðµÎ´Â µ¿ÀÏ »çº»À» ã½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÇÊ¿äÇÑ Á¶Ä¡´Â À¯½º ÄÉÀ̽ºÀÇ Æ¯¼ö¼º¿¡ ´Þ·Á ÀÖ½À´Ï´Ù. ¿µÇâÀ» ¹Þ´Â °³¹ßÀڴ Ŭ·¡½º °æ·Î¸¦ °ËÅäÇÏ°í ¹ß»ýÇÒ ¼ö ÀÖ´Â Ãæµ¹À» ÇØ°áÇØ¾ß ÇÕ´Ï´Ù.

25. Ŭ·¡½º ·Î´õ º¸È£ µµ¸ÞÀÎÀÌ ¼³Á¤µÇÁö ¾ÊÀ½

¿µÇâÀ» ¹Þ´Â ´ë»ó: Ç×»ó Ŭ·¡½º ·ÎµåÀÇ º¸È£ µµ¸ÞÀÎÀÌ ¼³Á¤µÉ °ÍÀ¸·Î ¿¹»óÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: Eclipse 2.1¿¡¼­ Ç÷¯±×ÀΠŬ·¡½º ·Î´õ´Â java.security.SecureClassloaders¿´À¸¸ç Ç×»ó º¸È£ µµ¸ÞÀÎÀÌ ¼³Á¤µÇ¾î ÀÖ¾ú½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â Ŭ·¡½º ·Î´õ°¡ SecureClassloader¸¦ È®ÀåÇÏÁö ¾ÊÀ¸¹Ç·Î Java º¸¾ÈÀÌ ¼³Á¤µÈ °æ¿ì(º¸ÅëÀÇ °æ¿ì°¡ ¾Æ´Ô)¿¡¸¸ º¸È£ µµ¸ÞÀÎÀ» ¼³Á¤ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÇÊ¿äÇÑ Á¶Ä¡´Â Ç÷¯±×ÀÎÀÌ º¸È£ µµ¸ÞÀÎÀ» »ç¿ëÇÏ´Â ½Ã³ª¸®¿À¿¡ µû¶ó ´Ù¸¨´Ï´Ù.

26. PluginModel ¿ÀºêÁ§Æ® ij½ºÆÃ

¿µÇâÀ» ¹Þ´Â ´ë»ó: org.eclipse.core.runtime.IPlugin* À¯Çü ¿ÀºêÁ§Æ®¸¦ org.eclipse.core.runtime.model.Plugin*Model·Î ij½ºÆÃÇÏ´Â Ç÷¯±×ÀÎ. ÀÌ ÀÎÅÍÆäÀ̽º¿Í ¸ðµ¨ Ŭ·¡½º »çÀÌÀÇ °ü°è°¡ Eclipse 2.1 API¿¡ ÁöÁ¤µÇÁö ¾Ê¾Æµµ, 2.1 ±¸Çö¿¡¼­ ÀÌ °ü°è¿¡ µû¶ó Ç÷¯±×ÀÎ ÀνºÅϽº¸¦ ¹ß°ßÇßÀ¸¹Ç·Î ÀÌ º¯°æÀ» ¸í½ÃÀûÀ¸·Î È£ÃâÇÕ´Ï´Ù.

¼³¸í: Eclipse API´Â Ç÷¯±×ÀÎ ¹× Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®¿¡ °ü·ÃµÇ´Â ÀÏ·ÃÀÇ ÀÎÅÍÆäÀ̽º(¿¹: IPluginDescriptor)¿Í ¼ÒÀ§ "¸ðµ¨" Ŭ·¡½º(¿¹: PluginDescriptorModel)¸¦ Á¦°øÇÕ´Ï´Ù. Eclipse 2.1 ±¸Çö¿¡¼­´Â ¸ðµ¨ Ŭ·¡½º°¡ °ü·Ã ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù. »õ·Î¿î OSGi ±â¹Ý ·±Å¸ÀÓ¿¡¼­, Ç÷¯±×ÀÎ ·¹Áö½ºÆ®¸®´Â Ç÷¯±×ÀÎÀÇ Å¬·¡½º ·Îµù ¹× ÀüÁ¦Á¶°Ç Ãø¸é°ú È®Àå ¹× È®ÀåÁ¡ Ãø¸é »çÀÌÀÇ ±¸ºÐÀ» Çã¿ëÇϱâ À§ÇØ »ó´çºÎºÐ °³Á¤µÇ¾ú½À´Ï´Ù. ÀÌ¿Í °°ÀÌ Eclipse 3.0 ·±Å¸ÀÓÀº 2.1¿¡ ÀÖ´Â ±¸Çö °ü°è¸¦ À¯ÁöÇÒ ¼ö ¾ø½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ºñAPI °ü°è¿¡ ÀÇÁ¸ÇÏ´Â Ç÷¯±×ÀÎÀº À¯½º ÄÉÀ̽º¿¡ µû¶ó Äڵ带 °³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â ÀÌ ¹®¼­ÀÇ ±ÇÀå º¯°æ»çÇ× ¼½¼Ç°ú °ü·ÃµÈ Ŭ·¡½º ¹× ¸Þ¼ÒµåÀÇ Javadoc¿¡ Á¦°øµÇ¾î ÀÖ½À´Ï´Ù.

27. ºÒ¿ÏÀüÇÑ ILibrary ±¸Çö

¿µÇâÀ» ¹Þ´Â ´ë»ó: org.eclipse.core.runtime.ILibrary¸¦ »ç¿ëÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: »õ ·±Å¸ÀÓÀº Eclipse¿Í ´Ù¸£°í ȣȯ ºÒ°¡´ÉÇÑ ¾ç½ÄÀ¸·Î Ŭ·¡½º °æ·Î Ç׸ñÀ» À¯Áöº¸¼öÇÕ´Ï´Ù. °á°úÀûÀ¸·Î, ȣȯ¼º °èÃþÀº ILibrary ¿ÀºêÁ§Æ®Ã³·³ ±âº»ÀûÀÎ OSGi ±¸Á¶¸¦ ¿Ã¹Ù¸£°Ô ¸ðµ¨¸µÇÒ ¼ö ¾ø½À´Ï´Ù. ·±Å¸ÀÓÀÇ È£È¯¼º Áö¿øÀº ILibrary ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏÁö¸¸ ¶óÀ̺귯¸®ÀÇ °æ·Î¸¦ Á¦¿ÜÇÏ°í ¸ðµç °Í¿¡ ´ëÇØ ±âº»°ªÀ» °¡Á¤ÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ILibraryÀÇ »ç¿ëÀÚ´Â ÀûÀýÇÑ ¹øµé(Bundle.getHeaders() ÂüÁ¶)¿¡¼­ ¿øÇÏ´Â Çì´õ °ª(¿¹: Bundle-Classpath)¿¡ ¾×¼¼½ºÇϰí ManifestElement ÇïÆÛ Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© Ç׸ñÀ» ÇØ¼®ÇÒ °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù. ¼¼ºÎ»çÇ×Àº Ŭ·¡½º Javadoc¸¦ ÂüÁ¶ÇϽʽÿÀ.

28. URL ¾ç½Ä¿¡ °üÇÑ ¿Ã¹Ù¸£Áö ¾ÊÀº °¡Á¤

¿µÇâÀ» ¹Þ´Â ´ë»ó: ¼³Ä¡ ±¸Á¶, À§Ä¡ ¹× ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ ·¹À̾ƿô¿¡ °üÇÑ »çÇ×À» °¡Á¤ÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: IPluginDescriptor.getInstallURL()°ú °°Àº ¸Þ¼Òµå´Â ƯÁ¤ ¾ç½ÄÀÇ URLÀ» ¸®ÅÏÇÕ´Ï´Ù. ¾ç½ÄÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ½¿¡µµ ºÒ±¸Çϰí, ´Ù¾çÇÑ Ç÷¯±×ÀÎÀÌ ÇöÀç ±¸ÇöÀ» ±âÃÊ·Î °¡Á¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Ç÷¯±×ÀÎÀº file: URLÀ» °¡Á®¿À°í URL.getFile()À» »ç¿ëÇÏ¸ç °á°ú¿¡ ´ëÇØ java.io.File Á¶ÀÛÀ» »ç¿ëÇÒ °ÍÀ» ¿¹»óÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇöÀç±îÁö´Â ¿¬±¸ °¡´ÉÇÑ ¹æ½ÄÀ̾úÁö¸¸ ¿ÀÈ÷·Á ºó¾àÇÑ Á¢±Ù ¹æ½ÄÀ̾ú½À´Ï´Ù. ¿¹¸¦ µé¾î, Ç÷¯±×ÀÎÀÌ À¥ ¼­¹ö¿¡ ¼³Ä¡µÈ °æ¿ì http: URLÀ» ¸®ÅÏÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ Eclipse 3.0 ·±Å¸ÀÓÀº ´õ À¯¿¬Çϸ鼭 ½ÇÇà ±¸¼º¿¡ ´ëÇØ ´õ ¸¹Àº °¡´É¼ºÀ» °³¹æÇÕ´Ï´Ù(¿¹: µð·ºÅ丮¿¡¼­ Ž»öÇϱ⠺¸´Ù´Â JAR¿¡¼­ Àüü Ç÷¯±×ÀÎÀ» À¯Áöº¸¼öÇÕ´Ï´Ù). Áï, »õ OSGi ±â¹Ý ·±Å¸ÀÓÀº ½ÇÁ¦·Î 2.1 API¸¦ Áß´ÜÇÏÁö ¾Ê´Â ¹Ý¸é ÇöÀç Ç÷¯±×Àο¡¼­ÀÇ °¡Á¤»çÇ×ÀÌ ¿Ã¹Ù¸£Áö ¾Ê´Â ´õ ¸¹Àº ÄÉÀ̽º¸¦ ³ëÃâÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: Ç÷¯±×ÀÎ ÀÛ¼ºÀÚ´Â ¾×¼¼½ºÇØ¾ß ÇÏ´Â Á¤º¸°¡ getResource()¸¦ ÅëÇØ »ç¿ë °¡´ÉÇϰí Ŭ·¡½º °æ·Î¿¡ ÀÖ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é °ü·Ã API¸¦ »ç¿ëÇÏ¿© Ç÷¯±×ÀÎ ÄÁÅÙÃ÷¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù(¿¹: Bundle.getEntry(String)).

29. BootLoader ¸Þ¼Òµå À̵¿/»èÁ¦

¿µÇâÀ» ¹Þ´Â ´ë»ó: org.eclipse.core.boot.BootLoader Ŭ·¡½º¿¡¼­ ƯÁ¤ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â ºñÇ÷¯±×ÀÎ ÄÚµå.

¼³¸í: Á¤Àû ¸Þ¼ÒµåÀÎ BootLoader.startup(), shutdown() ¹× run()Àº OSGi ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀϺÎÀÎ org.eclipse.core.runtime.adaptor.EclipseStarter·Î À̵¿µÇ¾ú½À´Ï´Ù. ÀÌ API´Â startup.jarÀÇ main()°ú OSGi ÇÁ·¹ÀÓ¿öÅ©/Eclipse ·±Å¸ÀÓ »çÀÌÀÇ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ·±Å¸ÀÓ ±¸Á¶ º¯°æ¿¡¼­´Â ÀÌ ¸Þ¼ÒµåµéÀ» BootLoader¿¡¼­ À¯ÁöÇÏ´Â °ÍÀÌ Çã¿ëµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÀÌÀü BootLoader Ŭ·¡½º´Â ÀÌÁ¦ ·±Å¸ÀÓ È£È¯¼º °èÃþ¿¡ À§Ä¡µÇ¾î Æó±âµÇ¾úÀ¸¸ç À̵¿µÈ ¸Þ¼Òµå´Â ¾î¶² °Íµµ ¼öÇàÇÏÁö ¾Êµµ·Ï ½ºÅӵǾî ÀÖ½À´Ï´Ù.

·±Å¸ÀÓÀº ´õ ÀÌ»ó °³ÀÎ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ È®º¸¸¦ Áö¿øÇÒ ¼ö ¾øÀ¸¹Ç·Î ÀÌÀü BootLoader.getRunnable()¿¡ ´ëÇÑ ´ëü°¡ ¾ø½À´Ï´Ù. ¿ÀÈ÷·Á, »ç¿ëÀÚ°¡ Ç÷§ÆûÀ» ½ÃÀÛÇÒ ¶§ °ü½ÉÀÖ´Â ÀÀ¿ëÇÁ·Î±×·¥À» Ç¥½ÃÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÀϹÝÀûÀ¸·Î ÀÌ API´Â ¾ÆÁÖ ¼Ò¼öÀÇ »ç¿ëÀÚ¸¸ »ç¿ëÇÕ´Ï´Ù(Eclipse Ç÷¯±×ÀÎ ³»¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù). µå¹°±â´Â ÇÏÁö¸¸ EclipseStarter¿¡¼­ ÇØ´ç ¸Þ¼Òµå¸¦ »ç¿ëÇÏ·Á¸é Äڵ带 äÅÃÇØ¾ß ÇÕ´Ï´Ù.

30. Ç÷¯±×ÀÎ ³»º¸³»±â¿¡ Ç÷¯±×ÀÎÀÇ JARÀÌ ÀÚµ¿À¸·Î Æ÷ÇÔµÇÁö ¾ÊÀ½

¿µÇâÀ» ¹Þ´Â ´ë»ó: ¸ðµç Ç÷¯±×ÀÎ.

¼³¸í: Eclipse 2.1¿¡¼­´Â Ç÷¯±×ÀÎ build.propertiesÀÇ bin.includes Çà¿¡ plugin.xml ÆÄÀÏ¿¡ ÀÖ´Â ¶óÀ̺귯¸® ¼±¾ðÀÇ JAR ¸ñ·ÏÀ» Æ÷ÇÔÇÒ Çʿ䰡 ¾ø¾ú½À´Ï´Ù. ÀÌ JARÀº ÀÚÀ¯·Ó°Ô Ãß°¡µÇ¾ú½À´Ï´Ù. Eclipse 3.0¿¡¼­´Â build.propertiesÀÇ bin.includes ¼½¼Ç¿¡ ÀÖ´Â ÆÄÀÏ ¸ñ·ÏÀÌ Ã¶ÀúÇÑ ¸ñ·ÏÀ̹ǷΠÇ÷¯±×ÀÎ °³¹ßÀÚ°¡ ºôµåÇϰųª ³»º¸³¾ ¶§ Ç÷¯±×Àο¡ Æ÷ÇÔ½ÃŰ·Á´Â ¸ðµç ÆÄÀÏÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: build.properties ÆÄÀÏÀÇ bin.includes Çà¿¡ »ç¿ëÀÚ plugin.xml ÆÄÀÏ¿¡ ³ª¿­µÈ ¸ðµç JARÀÌ Æ÷ÇԵǾî ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.

31. ·±Å¸ÀÓ API ´Ù½Ã ³»º¸³»±â

¿µÇâÀ» ¹Þ´Â ´ë»ó: º¯°æµÈ ·±Å¸ÀÓ APIÀÇ ¿ä¼Ò¸¦ Æ÷ÇÔÇÏ´Â API¸¦ ³ëÃâÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: ´Ù¾çÇÑ Ç÷¯±×ÀÎÀÌ ·±Å¸ÀÓ APIÀÇ ¿ä¼Ò¸¦ Æ÷ÇÔÇÏ´Â API¸¦ ³ëÃâÇÕ´Ï´Ù. ¿©±â¿¡ ¿ä¾àµÈ Eclipse 3.0 ·±Å¸ÀÓ º¯°æ»çÇ׿¡ µû¶ó, Ŭ¶óÀÌ¾ðÆ® Ç÷¯±×ÀÎÀº API¿¡¼­ÀÇ ·±Å¸ÀÓ API »ç¿ëÀ» ´Ù½Ã Æò°¡ÇØ¾ß ÇÕ´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÀÌ ½Ã³ª¸®¿À´Â Eclipse ·±Å¸ÀÓ API°¡ ¾ÆÁÖ ¾à°£¸¸ º¯°æµÇ¹Ç·Î ²Ï µå¹® ½Ã³ª¸®¿ÀÀÔ´Ï´Ù. ½Ã³ª¸®¿À¿¡ µû¶ó Ŭ¶óÀÌ¾ðÆ®´Â API¸¦ º¯°æÇϰųª °è¼Ó ȣȯ¼º °èÃþ¿¡ ÀÇÁ¸ÇØ¾ß ÇÕ´Ï´Ù.

32. Ç÷§ÆûÀÇ Ç÷¯±×ÀÎ ±¸¹® ºÐ¼® ¸Þ¼Òµå

¿µÇâÀ» ¹Þ´Â ´ë»ó: org.eclipse.core.runtime.Platform.parsePlugins(..., Factory)¸¦ »ç¿ëÇÏ´Â Ç÷¯±×ÀÎ.

¼³¸í: org.eclipse.core.runtime.Platform.parsePlugins(..., Factory) ¸Þ¼Òµå°¡ À̵¿µÇ¾ú½À´Ï´Ù. ÆÑÅ丮 Àμö¿Í ¿¬°üµÇ´Â API´Â org.eclipse.core.runtime Ç÷¯±×Àο¡¼­ org.eclipse.core.runtime.compatibility Ç÷¯±×ÀÎ(·±Å¸ÀÓ Ç÷¯±×Àο¡ ÀÇÁ¸ÇÏ´Â)À¸·Î À̵¿µÇ¾ú½À´Ï´Ù. °á±¹, ±¸¹® ºÐ¼® ¸Þ¼Òµåµµ À̵¿µÇ¾ú½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÀÌ ¸Þ¼ÒµåÀÇ »ç¿ëÀÚ´Â org.eclipse.core.runtime.model.PluginRegistryModel Ŭ·¡½º¿¡¼­ µ¿ÀÏ ¸Þ¼Òµå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

33. ´ÜÆíÀ¸·Î Á¦°øµÇ´Â Ç÷¯±×ÀÎ ¶óÀ̺귯¸®

¿µÇâÀ» ¹Þ´Â ´ë»ó: Ŭ·¡½º °æ·Î¿¡ Äڵ带 ÁöÁ¤ÇÏÁö¸¸ ÇØ´ç Äڵ带 Á¦°øÇÏÁö´Â ¾Ê´Â Ç÷¯±×ÀÎ(Áï, JARÀÌ ÇϳªÀÇ ´ÜÆíÀ¸·Î Á¦°øµË´Ï´Ù. ¿¹: org.eclipse.swt Ç÷¯±×ÀÎ).

¼³¸í: »õ ·±Å¸ÀÓÀº »óȲ µÚ¿¡¼­ plug.xml ÆÄÀÏÀ» manifest.mf ÆÄÀÏ·Î º¯È¯ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ´Â Ç÷¯±×ÀÎÀÌ Á¦°øÇÏ´Â ³ª¿­µÈ jarÀÇ Á÷Á¢ÀûÀÎ ±â°èÀû º¯È¯ ¹× ºÐ¼®À» ÅëÇØ ¼öÇàµË´Ï´Ù. Ç÷¯±×ÀÎÀÌ Å¬·¡½º °æ·Î¿¡ jarÀ» ÁöÁ¤ÇÏÁö¸¸ jarÀ» Á¦°øÇÏÁö´Â ¾Ê´Â °æ¿ì, ºÐ¼®ÇÒ Äڵ尡 ¾øÀ¸¹Ç·Î Ç÷¯±×ÀÎ º¯È¯±â´Â ¿Ã¹Ù¸¥ manifest.mf¸¦ »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: ÀÌ¿Í °°Àº Ç÷¯±×ÀÎÀÇ Á¦°øÀÚ´Â Ç÷¯±×ÀÎ ÀÚü¿¡¼­ ÀûÀýÇÑ jarÀ» Á¦°øÇϰųª Ç÷¯±×Àο¡ ¸Â´Â META-INF/MANIFEST.MF ÆÄÀÏÀ» Á÷Á¢ ÀÛ¼º/À¯Áöº¸¼öÇϵµ·Ï º¯°æÇØ¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ´Â PDE¸¦ ÅëÇØ Ãʱâ Manifest¸¦ °¡Á®¿Â ÈÄ ÀûÀýÇÑ Provide-Package Çì´õ¿¡ Ãß°¡ÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

34. ºôµå ½ºÅ©¸³Æ® º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: ·±Å¸ÀÓ °ü·Ã jar ¹× Ŭ·¡½º µð·ºÅ丮¸¦ Æ÷ÇÔÇϴ Ŭ·¡½º °æ·Î¸¦ Á¤ÀÇÇÏ´Â ½ºÅ©¸³Æ®(¿¹: Ant build.xml ÆÄÀÏ).

¼³¸í: »õ ·±Å¸ÀÓ¿¡´Â ¿©·¯ °¡ÁöÀÇ »õ·Î¿î Ç÷¯±×Àΰú jarÀÌ ÀÖ½À´Ï´Ù. ÀÌ Ç÷¯±×Àΰú jarÀº ·±Å¸ÀÓÀ» ±¸¼º °¡´É ºÎºÐµé·Î ¸®ÆÑÅ丵ÇÔ¿¡ µû¶ó ÁöÁ¤µÇ¾ú½À´Ï´Ù. ´ëºÎºÐÀÇ ·±Å¸ÀÓ »óȲ¿¡¼­´Â ÀÌ º¯°æ»çÇ×ÀÌ ÆòÀÌÇÏÁö¸¸ ÇöÀç org.eclipse.core.runtime¿¡ ´ëÇØ Äڵ带 ÄÄÆÄÀÏÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ build.xml(¶Ç´Â À¯»çÇÑ) ½ºÅ©¸³Æ®°¡ ÀÖ´Â °æ¿ì¿¡´Â ¸ÕÀú °»½ÅÇØ¾ß ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÕ´Ï´Ù. ÀϹÝÀûÀÎ ½ºÅ©¸³Æ®¿¡´Â ´ÙÀ½°ú °°ÀÌ org.eclipse.core.runtime Ç÷¯±×ÀÎÀ» ÂüÁ¶ÇÏ´Â <javac> Ÿ½ºÅ©¿¡ Ŭ·¡½º °æ·Î Ç׸ñÀÌ ÀÖ½À´Ï´Ù.

    ../org.eclipse.core.runtime/bin;../org.eclipse.core.runtime/runtime.jar

·±Å¸ÀÓ Ç÷¯±×ÀÎÀº °è¼ÓÇØ¼­ ¿ø·¡ ·±Å¸ÀÓ ÄÚµå Áß ¸¹Àº °ÍÀ» Æ÷ÇÔÇÕ´Ï´Ù. ȣȯ¼º Ç÷¯±×ÀÎ(org.eclipse.core.runtime.compatibility)¿¡´Â ȣȯ¼º¸¸À» À§ÇÑ ¿©·¯ ·±Å¸ÀÓ ÆÄÆ®°¡ µé¾î ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ »õ ·±Å¸ÀÓ ÄÚµå´Â Ç÷¯±×ÀÎ ÄÝ·º¼Ç(org.eclipse.osgi.*)¿¡ Æ÷ÇԵ˴ϴÙ.

ÇÊ¿äÇÑ Á¶Ä¡: °³¹ßÀÚ´Â ÄÄÆÄÀÏ ¿À·ù¸¦ Á¦°ÅÇϱâ À§ÇØ ÇÊ¿äÇÑ ¸¸Å­ ¾Æ·¡ Ç׸ñÀ» Ãß°¡ÇØÇá ÇÕ´Ï´Ù. Á¦°øµÈ Àüü jar ¼¼Æ®°¡ ¾Æ·¡¿¡ ³ª¿­µÇ¾î ÀÖÁö¸¸ ÀϹÝÀû »ç¿ë¿¡¼­´Â ÄÄÆÄÀÏ ½Ã Ŭ·¡½º °æ·Î¿¡¼­ ÇϳªÀÇ ¼­ºê¼¼Æ®¸¸ ÇÊ¿äÇÕ´Ï´Ù. ÀϹÝÀûÀÎ °æ¿ìó·³ /bin µð·ºÅ丮 Æ÷ÇÔÀº ÀÓÀÇÀûÀÔ´Ï´Ù. Ç׸ñÀº Ç÷¯±×ÀÎÀ» Á¦°øÇÏ¿© ³í¸® ±×·ìÀ¸·Î Á¦°øµË´Ï´Ù.

¶ÇÇÑ ´ÙÀ½ jarÀÌ Æ¯¼öÇÑ °æ¿ì¿¡ ÇÊ¿äÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ¿Í °°Àº ½ºÅ©¸³Æ®¸¦ °»½ÅÇÏ´Â µ¿¾È, org.eclipse.core.boot¿¡ ´ëÇÑ ÂüÁ¶¸¦ Á¤¸®(Á¦°Å)ÇÒ ±âȸ¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù. ÀÌ Ç÷¯±×ÀÎÀº Æó±âµÇ¾î ´õ ÀÌ»ó ¾î¶² Äڵ嵵 Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù. Ç׸ñÀº Ŭ·¡½º °æ·Î¿¡ ³²°Ü µÑ ¼ö ÀÖÁö¸¸ ¾î¶² ¸ñÀûµµ Á¦°øÇÏÁö ¾ÊÀ¸¹Ç·Î Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½ Á¦°Å¿¡ ÁÖÀÇÇϽʽÿÀ.

    ../org.eclipse.core.boot/bin;../org.eclipse.core.boot/boot.jar

35. PDE ºôµå Ant Ÿ½ºÅ© º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: eclipse.buildScript Ÿ½ºÅ©¸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ®(¿¹: Ant build.xml ÆÄÀÏ).

¼³¸í: PDE ºôµå´Â Ç÷¯±×ÀÎ ºôµå ½ºÅ©¸³Æ® »ý¼ºÀ» Á¦¾îÇϱâ À§ÇØ eclipse.buildScript Ÿ½ºÅ©¿¡ »õ Ư¼ºÀ» µµÀÔÇß½À´Ï´Ù. ÀÌ´Â »õ·Î¿î OSGi ±â¹Ý ·±Å¸ÀÓ µµÀÔÀ¸·Î ÁöÁ¤µÇ¾ú½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: Eclipse 3.0À» »ç¿ëÇÏ¿© 2.1 ±â¹Ý Á¦Ç°À» ºôµåÇÏ·Á¸é eclipse.buildScript¿¡ Ư¼º "buildingOSGi"¸¦ µµÀÔÇÑ ÈÄ false·Î ¼³Á¤ÇϽʽÿÀ. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

<eclipse.buildScript ... buildingOSGi="false"/>

36. eclipse.build Ant Ÿ½ºÅ© º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: eclipse.buildScript Ÿ½ºÅ©¸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ®(¿¹: Ant build.xml ÆÄÀÏ).

¼³¸í: PDE ºôµå´Â Ç÷¯±×ÀÎ ºôµå ½ºÅ©¸³Æ® »ý¼ºÀ» Á¦¾îÇϱâ À§ÇØ eclipse.buildScript Ÿ½ºÅ©¿¡ »õ Ư¼ºÀ» µµÀÔÇß½À´Ï´Ù. ÀÌ´Â »õ·Î¿î OSGi ±â¹Ý ·±Å¸ÀÓ µµÀÔÀ¸·Î ÁöÁ¤µÇ¾ú½À´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: Eclipse 3.0À» »ç¿ëÇÏ¿© 2.1 ±â¹Ý Á¦Ç°À» ºôµåÇÏ·Á¸é eclipse.buildScript¿¡ Ư¼º "buildingOSGi"¸¦ µµÀÔÇÑ ÈÄ false·Î ¼³Á¤ÇϽʽÿÀ. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

<eclipse.buildScript ... buildingOSGi="false"/>

37. eclipse.fetch Ant Ÿ½ºÅ© º¯°æ»çÇ×

¿µÇâÀ» ¹Þ´Â ´ë»ó: eclipse.buildScript Ÿ½ºÅ©¸¦ »ç¿ëÇÏ´Â ½ºÅ©¸³Æ®(¿¹: Ant build.xml ÆÄÀÏ).

¼³¸í: PDE ºôµå´Â ÀÚµ¿È­µÈ ºôµå ½ºÅ¸ÀÏ¿¡¼­ Eclipse¸¦ ½±°Ô ºôµåÇϱâ À§ÇØ eclipse.fetch Ÿ½ºÅ©ÀÇ µ¿ÀÛÀ» º¯°æÇß½À´Ï´Ù. ¿ä¼Ò ½ºÅ¸ÀÏÀº ÀÌÁ¦ ÇÑ ¹ø¿¡ ÇϳªÀÇ Ç׸ñ¸¸ Áö¿øÇϹǷΠscriptNameÀº Ç×»ó ¹«½ÃµË´Ï´Ù.

ÇÊ¿äÇÑ Á¶Ä¡: eclipse.fetch È£ÃâÀÇ "elements" ű׿¡ Ç׸ñ ¸ñ·ÏÀ» °¡Áö°í ÀÖÀ¸¸é eclipse.fetch¸¦ ¸î ¹ø¿¡ °ÉÃÄ È£ÃâÇϽʽÿÀ. scriptNameÀ» ¼³Ä¡Çϱâ À§ÇØ »ç¿ëÇÒ °æ¿ì¿¡´Â »ý¼ºµÇ´Â ÆäÄ¡ ½ºÅ©¸³Æ® À̸§ÀÌ Ç×»ó "fetch_{elementId}"¶ó´Â Á¡¿¡ À¯ÀÇÇϽʽÿÀ. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°½À´Ï´Ù.

<eclipse.fetch elements="plugin@org.eclipse.core.runtime, feature@org.eclipse.platform" .../>

À§ÀÇ URLÀº ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.

<eclipse.fetch elements="plugin@org.eclipse.core.runtime" .../>
<eclipse.fetch elements="feature@org.eclipse.platform" .../>

38. install.ini ¹Ù²Ù±â

install.ini ÆÄÀÏÀº ´õ ÀÌ»ó Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. ±¸¼º ¼­ºêµð·ºÅ丮¿¡ »õ·Î¿î config.ini ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ±âº» ±â´ÉÀ» ÁöÁ¤Çϱâ À§ÇØ install.ini ÆÄÀÏÀ» »ç¿ëÇÑ Á¦Ç°(¿¹: ºê·£µù Á¤º¸¸¦ Á¦°øÇϱâ À§ÇÔ)Àº ´ë½Å config.ini ÆÄÀÏÀ» º¯°æÇØ¾ß ÇÕ´Ï´Ù. »õ ÆÄÀÏ À̸§ À̿ܿ¡ Ű À̸§µµ º¯°æµÇ¾ú½À´Ï´Ù.

2.1¿¡¼­ feature.default.id ŰÀÇ °ªÀº »õ eclipse.product ŰÀÇ °ªÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. eclipse.applicationÀÇ °ªÀº "org.eclipse.ui.ide.workbench"·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.

¸¶Áö¸·À¸·Î, 2.1¿¡¼­´Â ½ºÇ÷¡½Ã À̹ÌÁö¿¡ ´ëÇÑ À̹ÌÁö°¡ Ç×»ó ºê·£µù Ç÷¯±×ÀÎ µð·ºÅ丮¿¡ ÀÖ´Â splash.bmp¿´½À´Ï´Ù. 3.0¿¡¼­´Â ½ºÇ÷¡½Ã À̹ÌÁöÀÇ À§Ä¡°¡ config.ini ÆÄÀÏ¿¡¼­ osgi.splashPath Ű¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î Á¦°øµË´Ï´Ù.