¹öÀü 3.1 - ¸¶Áö¸· °³Á¤ ³¯Â¥: 2005³â 6¿ù 20ÀÏ
¹øµéÀº META-INF/MANIFEST.MF¶ó°í ÇÏ´Â Manifest ÆÄÀÏ·Î ÀÚü¿¡ ´ëÇÑ ¼³¸í Á¤º¸¸¦ Àü´ÞÇÕ´Ï´Ù. OSGi R4 ÇÁ·¹ÀÓ¿öÅ© ½ºÆåÀº ¹øµé °³¹ßÀÚ°¡ ¹øµé¿¡ ´ëÇÑ ¼³¸í Á¤º¸¸¦ Á¦°øÇϱâ À§ÇØ »ç¿ëÇÏ´Â Export-Package ¹× Bundle-Classpath¿Í °°Àº Manifest Çì´õ ¼¼Æ®¸¦ Á¤ÀÇÇÕ´Ï´Ù. Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ©´Â Àüü OSGi R4 ÇÁ·¹ÀÓ¿öÅ© ½ºÆå°ú ¸ðµç ÄÚ¾î ÇÁ·¹ÀÓ¿öÅ© ¼ºñ½º¸¦ ±¸ÇöÇÕ´Ï´Ù. OSGi R4 ÄÚ¾î ÇÁ·¹ÀÓ¿öÅ© ¼ºñ½º¿¡´Â ´ÙÀ½ÀÌ Æ÷ÇԵ˴ϴÙ.
OSGi R4 ½ºÆå¿¡´Â ¿©·¯ °³ÀÇ ¼±ÅÃÀû ¼ºñ½º°¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù. Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ© ±¸Çö¿¡¼´Â ¼±ÅÃÀû ¼ºñ½º°¡ Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. OSGi R4 Manifest Çì´õ ¹× ¼ºñ½º¿¡ °üÇÑ Á¤º¸´Â OSGi ½ºÆåÀ» ÂüÁ¶ÇϽʽÿÀ.
Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ©´Â ´Ù¾çÇÑ Ãß°¡ ¹øµé Manifest Çì´õ ¹× Áö½Ã¹®À» Áö¿øÇÕ´Ï´Ù. ¹øµé °³¹ßÀÚ´Â ÀÌ Ãß°¡ Çì´õ ¹× Áö½Ã¹®À» »ç¿ëÇÏ¿© Ç¥ÁØ OSGi R4 ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀϺηΠÁöÁ¤µÇÁö ¾ÊÀº Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ©ÀÇ ÀϺΠÃß°¡ ±â´ÉÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ©´Â Export-Package Çì´õ¿¡¼ Ãß°¡ Áö½Ã¹®À» Áö¿øÇÕ´Ï´Ù. ÀÌ Áö½Ã¹®Àº ³»º¸³½ ÆÐŰÁöÀÇ ¾×¼¼½º Á¦ÇÑ»çÇ× ±ÔÄ¢À» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ·±Å¸ÀÓ ½Ã ¾×¼¼½º Á¦ÇÑ»çÇ× ±ÔÄ¢À» ½ÃÇàÇϵµ·Ï Eclipse OSGi ÇÁ·¹ÀÓ¿öÅ©¸¦ ±¸¼ºÇÏ·Á¸é osgi.resolverMode¸¦ ÂüÁ¶ÇϽʽÿÀ.
x-internal Áö½Ã¹®Àº ÆÐŰÁö°¡ ³»ºÎ ÆÐŰÁöÀÎÁö ¿©ºÎ¸¦ ÁöÁ¤Çϱâ À§ÇØ Export-Package Çì´õ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷¯±×ÀÎ °³¹ß ȯ°æÀº ´Ù¸¥ ¹øµéÀÌ ³»ºÎ ÆÐŰÁö¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù. x-internal Áö½Ã¹®À» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ±âº»°ªÀÎ 'false'°¡ »ç¿ëµË´Ï´Ù. x-internal Áö½Ã¹®Àº ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
x-internal ::= ( 'true' | 'false' )
´ÙÀ½Àº x-internal Áö½Ã¹®ÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Export-Package: org.eclipse.foo.internal; x-internal:=true
x-friends Áö½Ã¹®Àº ÆÐŰÁö¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Â ¹øµéÀÇ ¸ñ·ÏÀ» ÁöÁ¤Çϱâ À§ÇØ Export-Package Çì´õ¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Ç÷¯±×ÀÎ °³¹ß ȯ°æÀº ´Ù¸¥ ¹øµéÀÌ ÆÐŰÁö¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù. x-friends Áö½Ã¹®Àº ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
x-friends ::= '"' ( target-bundle ) ( ',' target-bundle ) * '"' target-bundle ::= a bundle symbolic name
´ÙÀ½Àº x-friends Áö½Ã¹®ÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Export-Package: org.eclipse.foo.formyfriends; x-friends:="org.eclipse.foo.friend1, org.eclipse.foo.friend2"
¿¹Á¦¿¡¼´Â org.eclipse.foo.friend1 ¹× org.eclipse.foo.friend2 ¹øµé¸¸ org.eclipse.foo.formyfriends ÆÐŰÁö¸¦ »ç¿ëÇØ¾ß ÇÔÀ» ÁöÁ¤ÇÕ´Ï´Ù. x-internal ÆÐŰÁö´Â x-friends Áö½Ã¹®º¸´Ù ¿ì¼±ÇÕ´Ï´Ù. x-internal Áö½Ã¹®ÀÌ 'true'¸¦ ÁöÁ¤ÇÒ °æ¿ì Ç÷¯±×ÀÎ °³¹ß ȯ°æÀº ¸ðµç ¹øµéÀÌ ÀÏ¿øÀ¸·Î ÁöÁ¤µÈ °æ¿ì¿¡µµ ÆÐŰÁö¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù.
Eclipse-LazyStart Çì´õ´Â ¹øµé¿¡¼ ù ¹øÂ° Ŭ·¡½º ¶Ç´Â ÀÚ¿ø¿¡ ¾×¼¼½ºÇϱâ Àü¿¡ ÀÚµ¿À¸·Î ÇØ´ç ¹øµéÀ» ½ÃÀÛÇØ¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ ±â´ÉÀ¸·Î Eclipse´Â óÀ½ ¹øµéÀÌ ÇÊ¿äÇÒ ¶§ ¹øµéÀ» ´À¸®°Ô Ȱ¼ºÈÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸ðµ¨À» »ç¿ëÇÒ °æ¿ì Eclipse´Â °¡´ÉÇÑ ÀûÀº Ȱ¼º ¹øµéÀ» ½ÃÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. Eclipse-LazyStart Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-LazyStart ::= ( 'true' | 'false' ) ( ';' 'exceptions' '=' '"' exceptions-list '"' ) ? exceptions-list ::= a comma ',' separated list of packages
'exceptions' ¼Ó¼ºÀº Ŭ·¡½º³ª ÀÚ¿øÀÌ ·ÎµåµÉ ¶§ ¹øµéÀÌ È°¼ºÈµÇÁö ¾Êµµ·Ï ÇØ¾ß ÇÏ´Â ÆÐŰÁöÀÇ ¸ñ·ÏÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¹øµé Manifest¿¡ Eclipse-LazyStart Çì´õ¸¦ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸é ±âº»°ªÀÎ 'false'°¡ »ç¿ëµË´Ï´Ù. ´ÙÀ½Àº Eclipse-LazyStart Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-LazyStart: true; exceptions="org.eclipse.foo1, org.eclipse.foo2"
¿¹Á¦´Â ¹øµéÀÌ 'org.eclipse.foo1' ¹× 'org.eclipse.foo2' ÆÐŰÁöÀÇ Å¬·¡½º ¹× ÀÚ¿øÀ» Á¦¿ÜÇϰí ÀÌ ¹øµé¿¡¼ ·ÎµåµÇ´Â Ŭ·¡½º³ª ÀÚ¿ø¿¡ ´ëÇØ Ȱ¼ºµÇ¾î¾ß ÇÔÀ» ÁöÁ¤ÇÕ´Ï´Ù.
Eclipse 3.2¿¡¼´Â Eclipse-AutoStart Çì´õ°¡ ±ÇÀåµÇÁö ¾Ê½À´Ï´Ù. ´ë½Å Eclipse-LazyStart Çì´õ¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-PlatformFilter´Â ¹øµé¿¡ ´ëÇÑ Ç÷§Æû ÇÊÅ͸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¹øµéÀ» ºÐ¼®ÇÒ ¼ö ÀÖÀ¸·Á¸é ½ÇÇà ÁßÀÎ Ç÷§Æû¿¡¼ Ç÷§Æû ÇÊÅͰ¡ true·Î Æò°¡µÇ¾î¾ß ÇÕ´Ï´Ù. Eclipse-PlatformFilter Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-PlatformFilter ::= a valid LDAP filter string
ÇÁ·¹ÀÓ¿öÅ©´Â ´ÙÀ½ ½Ã½ºÅÛ Æ¯¼º¿¡ ´ëÇÑ ÇÊÅ͸µÀ» Áö¿øÇÕ´Ï´Ù.
´ÙÀ½Àº Eclipse-PlatformFilter Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86))
ÀÌ ¿¹Á¦´Â Ç÷§Æû Ư¼ºÀÌ osgi.ws=win32, osgi.os=win32 ¹× osgi.arch=x86ÀÏ °æ¿ì¿¡¸¸ ¹øµéÀ» ºÐ¼®ÇÒ ¼ö ÀÖÀ½À» ÁöÁ¤ÇÕ´Ï´Ù. Áï, x86 ¾ÆÅ°ÅØÃ³¿¡¼ ½ÇÇà ÁßÀÎ Ç÷§ÆûÀº win32 ¿î¿µ üÁ¦¿Í win32 À©µµÀ® ½Ã½ºÅÛÀ» »ç¿ëÇÕ´Ï´Ù.
Eclipse-BuddyPolicy Çì´õ´Â ¹øµéÀÇ ¹öµð Ŭ·¡½º ·Îµå Á¤Ã¥À» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Eclipse-BuddyPolicy Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-BuddyPolicy ::= ( policy-name ) ( ',' policy-name ) * policy-name ::= ( 'dependent' | 'global' | 'registered' | 'app' | 'ext' | 'boot' | 'parent' )
´ÙÀ½Àº Eclipse-BuddyPolicy Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-BuddyPolicy: dependent
Eclipse-RegisterBuddy Çì´õ´Â ÇØ´ç ¹øµéÀÌ µî·ÏµÈ ¹öµðÀÎ ¹øµé ¸ñ·ÏÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Eclipse-RegisterBuddy Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-RegisterBuddy ::= ( target-bundle ) ( ',' target-bundle ) * target-bundle ::= a bundle symbolic name
´ÙÀ½Àº Eclipse-RegisterBuddy Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-RegisterBuddy: org.eclipse.foo.bundle1, org.eclipse.foo.bundle2
Eclipse-ExtensibleAPI´Â ´ÜÆí ¹øµéÀÌ Ãß°¡ API¸¦ È£½ºÆ®¿¡ Ãß°¡ÇÏ´Â °ÍÀ» È£½ºÆ® ¹øµéÀÌ Çã¿ëÇÏ´ÂÁö ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÌ Çì´õ´Â ´ÜÆí ¹øµéÀÌ Ãß°¡ ÆÐŰÁö¸¦ È£½ºÆ® API¿¡ Ãß°¡ÇÏ´Â °ÍÀ» È£½ºÆ® ¹øµéÀÌ Çã¿ëÇÒ °æ¿ì¿¡ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÀÌ Çì´õ¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ» °æ¿ì ±âº»°ª 'false'°¡ »ç¿ëµË´Ï´Ù. Eclipse-ExtensibleAPI Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-ExtensibleAPI ::= ( 'true' | 'false' )
´ÙÀ½Àº Eclipse-ExtensibleAPI Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-ExtensibleAPI: true
Eclipse-GenericCapability Çì´õ´Â ¹øµéÀÇ ÀÏ¹Ý ±â´ÉÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÏ¹Ý ±â´ÉÀº Eclipse-GenericRequire Çì´õ¸¦ »ç¿ëÇÏ´Â ½Ã½ºÅÛÀÇ ´Ù¸¥ ¹øµé¿¡¼ ÇÊ¿äÇÑ ¹øµéÀÇ ±â´ÉÀ» ¼³¸íÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÏ¹Ý ±â´É¿¡´Â À̸§ ¹× ±â´É À¯ÇüÀÌ ºÎ¿©µË´Ï´Ù. ±â´É À¯ÇüÀº ÇØ´ç ±â´ÉÀ» Á¦°øÇÏ´Â ¹øµé¿¡ ÀÇÇØ Á¤Àǵ˴ϴÙ. ±â´ÉÀº ¶ÇÇÑ Eclipse-GenericRequire Çì´õ¸¦ ÇØ¼®ÇÒ ¶§ ÀÏÄ¡ ¿©ºÎ¸¦ È®ÀÎÇÏ´Â µ¥ »ç¿ëµÇ´Â µ¿ÀÏÇÑ À¯ÇüÀÇ ¼Ó¼º ¼¼Æ®¸¦ °¡Áú ¼ö ÀÖ½À´Ï´Ù. ÀÏÄ¡ÇÏ´Â ¼Ó¼ºÀÇ À¯ÇüÀº [string | version | uri | long | double | set] Áß ÇϳªÀÔ´Ï´Ù. ¼¼Æ® À¯ÇüÀº ¹®ÀÚ¿ ¼¼Æ®¸¦ ½°Ç¥·Î ±¸ºÐµÈ ¹®ÀÚ¿ ¸ñ·ÏÀ¸·Î Á¤ÀÇÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Eclipse-GenericCapability Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-GenericCapability ::= capability ( ',' capability ) * capability ::= typed-name ( ';' typed-name ) * ( ';' typed-param ) * typed-name ::= name ( ':' capability-type ) typed-param ::= typed-key '=' quouted-string typed-key ::= name ( ':' [string | version | uri | long | double | set] )
´ÙÀ½Àº OSGi ¼ºñ½º org.acme.stuff.SomeService ±¸ÇöÀÌ Æ÷ÇÔµÈ ¹øµéÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â Eclipse-GenericCapabilty Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-GenericCapability: org.acme.stuff.SomeService:osgi.service; version:version="1.0.1"
Eclipse-GenericRequire Çì´õ´Â Eclipse-GenericCapability Çì´õ¸¦ »ç¿ëÇÏ´Â ´Ù¸¥ ¹øµéÀÌ Á¦°øÇÏ´Â ÀÏ¹Ý ±â´É¿¡ ´ëÇÑ ¿ä±¸»çÇ×À» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ÀÏ¹Ý ¿ä±¸»çÇ׿¡´Â À̸§ ¹× ±â´É À¯ÇüÀÌ ºÎ¿©µË´Ï´Ù. ±â´É À¯ÇüÀº ÇØ´ç ±â´ÉÀ» Á¦°øÇÏ´Â ¹øµé¿¡ ÀÇÇØ Á¤Àǵ˴ϴÙ. ÀÏ¹Ý ¿ä±¸»çÇ×Àº ÀÏÄ¡ÇÏ´Â ÀÏ¹Ý ±â´ÉÀ» ÇØ¼®Çϱâ À§ÇØ ¼±Åà ÇÊÅÍ·Î »ç¿ëµÇ´Â LDAP ÇÊÅÍ ¹®ÀÚ¿À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Eclipse-GenericRequire Çì´õ´Â ´ÙÀ½ ±¸¹®À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
Eclipse-GenericRequire ::= generic-require ( ',' generic-require ) * generic-require ::= typed-name ( ';' typed-name ) * ( ';' selection-filter '=' quoated-ldapFilter ) ( ';' optional '=' [true|false] ) ( ';' multiple '=' [true|false] ) typed-name ::= name ( ':' capability-type )
´ÙÀ½Àº OSGi ¼ºñ½º org.acme.stuff.SomeService ±¸Çö¿¡ ÀÇÁ¸ÇÏ´Â ¹øµéÀ» ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â Eclipse-GenericRequire Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Eclipse-GenericRequire: org.acme.stuff.SomeService:osgi.service; selection-filter="(version>=1.0.1)"
osgi.genericAliases ¿É¼ÇÀº ±âÁ¸ OSGi Manifest Çì´õ¸¦ Eclipse-GenericCapability ¹× Eclipse-GenericRequire Manifest Çì´õ¿¡ ¸ÊÇÎÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ Manifest Çì´õ¸¦ °í·ÁÇϽʽÿÀ.
Export-Service: org.acme.stuff.SomeService Import-Service: org.acme.stuff.SomeService
ÀÌ Çì´õ´Â ´ÙÀ½ Ư¼ºÀ» »ç¿ëÇÏ¿© Eclipse-GenericCapability ¹× Eclipse-GenericRequire Çì´õ¿¡ ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
osgi.genericAliases=Export-Service:Import-Service:osgi.service
ÀÌ Çì´õ´Â ¾Ï¹¬ÀûÀ¸·Î ´ÙÀ½ ÀÏ¹Ý Çì´õ·Î º¯È¯µË´Ï´Ù.
Eclipse-GenericRequire: org.acme.stuff.SomeService:osgi.service Eclipse-GenericCapability: org.acme.stuff.SomeService:osgi.service
Plugin-Class Çì´õ´Â Eclipse 2.1 Ç÷§Æû¿ëÀ¸·Î °³¹ßµÈ Ç÷¯±×ÀÎÀ» Áö¿øÇÒ °æ¿ì¿¡¸¸ »ç¿ëµË´Ï´Ù. ÀÌ Çì´õ´Â ÀÌÀü Eclipse 2.1 Ȱ¼ºÈ ¸ðµ¨À» »ç¿ëÇÏ¿© Ç÷¯±×ÀÎÀ» Ȱ¼ºÈÇÏ´Â µ¥ »ç¿ëÇÒ Å¬·¡½º À̸§À» ÁöÁ¤Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù. Eclipse 3.0 ÀÌ»óÀ¸·Î °³¹ßµÈ »õ ¹øµéÀº ÀÌ Çì´õ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ´ÙÀ½Àº Plugin-Class Çì´õÀÇ ¿¹Á¦ÀÔ´Ï´Ù.
Plugin-Class: org.eclipse.foo.FooPlugin