рдПрдХ OSGi рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реИ рдЬреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрдпрд╛ рд╣реИред рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреА рдореБрдЦреНрдп рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ IoC рдХрдВрдЯреЗрдирд░ рдФрд░ AOP рд╕рдорд░реНрдерди рд╣реИрдВред рдпреЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рддреЛрдВ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рддреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреА рд╣реИрдВ, рджреЛрдиреЛрдВ рд╡рд░реНрдЧ рд╕реНрддрд░ рдкрд░ рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдЖрдЙрдЯ рд╕реНрддрд░ рдкрд░ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддрддреНрд╡реЛрдВ / рдкрд░рддреЛрдВ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╣ рдЕрдЦрдВрдб рд╣реИред рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдХреНрд╖рдорддрд╛рд╣реАрди! рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╣реА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред OSGi рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реБрдирд╛ рд╣реИред рдпрд╣ рдЬрд╛рд╡рд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЖрдкрдХреЛ рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рд░рди рд╕рдордп рдФрд░ рднреМрддрд┐рдХ рд╕реНрддрд░ (рдлрд╝рд╛рдЗрд▓ рд╕реНрддрд░) рдкрд░ред рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рддрд╛рд▓рдореЗрд▓ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╡рд╕рдВрдд рдХреА рд░реВрдкрд░реЗрдЦрд╛


рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкрд╛рдардХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рд╕реЗ рдкрд╣рд▓реЗ рджрд╕ рдЕрдзреНрдпрд╛рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдпрд╣ рд╕рдм рдПрдХ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдЙрди рд╕рднреА рдХреЛ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдиреЗрддреГрддреНрд╡ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рдмрд╕ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдВрджрд░реНрдн рд╣реИред

рд╕реНрдкреНрд░рд┐рдВрдЧрд╕реЛрд░реНрд╕ рд╕реНрд░реЛрдд рд╕реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдкреНрд░реЛрдЬреЗрдХреНрдЯред

рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛


рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдРрд╕реЗ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдирдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдВ: рдХрдордЬреЛрд░ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА (рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЖрд╕рд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐, рдПрдХрд╛рдзрд┐рдХ рдЙрдкрдпреЛрдЧ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣рднрд╛рдЧрд┐рддрд╛, рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди (рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рд╣рд░ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдбрд╛рдпрдиреЗрдорд┐рдЬреНрдо ( рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛)ред рдЬрд╛рд╡рд╛ рдЖрдкрдХреЛ рдвреАрд▓реЗ рдпреБрдЧреНрдорди рдФрд░ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдХрдХреНрд╖рд╛ рд╕реНрддрд░ рдкрд░ рдФрд░ рдкреИрдХреЗрдЬ рд╕реНрддрд░ рдкрд░ред рдмреЗрд╢рдХ, рдкреНрд░рддрд┐рдмрд┐рдВрдм (рдкрд░рд╛рд╡рд░реНрддрди рдПрдкреАрдЖрдИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╛рдпрд░ (рдирд┐рдЬреА, рд╕рдВрд░рдХреНрд╖рд┐рдд) рдХреЗ рд╕реНрддрд░ рдкрд░ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдХреЛрдб рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдпрд╛ рд╡рд░реНрдЧ рдХреЛрдб (jassassist, cglib) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрдЧ рдХреЛрдб рдЖрджрд┐ рдмрджрд▓рддреЗ рд╣реИрдВред ред рдбреАред), рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИрдХ рдХреА рддрд░рд╣ рд╣реИред рд▓реЗрдХрд┐рди рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣рд╛рд▓рд╛рдд рдмрджрддрд░ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд░ (рдХреНрд▓рд╛рд╕рд▓реЛрдбрд░) рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдо рд╣реИ рдЬреЛ рдУрдПрд╕рдЬреАрдЖрдИ рдорд╛рдирдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдХреЛрдИ рднреА OSGi рдХрдВрдЯреЗрдирд░ рдкрд╣рд▓реЗ рд╣реА рдХреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ API рд╕реНрддрд░ рдкрд░ рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

OSGi


рдУрдкрди рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдЧреЗрдЯрд╡реЗ рдкрд╣рд▓ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдкреНрд░рдореБрдЦ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдкрд╛рдЪреЗ рдлреЗрд▓рд┐рдХреНрд╕, рдЗрдХреНрд╡рд┐рдиреЙрдХреНрд╕ рдФрд░ рдиреЛрдкрд▓рдлрд╝рд░рдлрд╝рд┐рд╢ рд╣реИрдВред рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ (рдмрдВрдбрд▓реЛрдВ) рдХреЛ рдмрд╛рдВрдз рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдХреА рдмрд╛рддрдЪреАрдд рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯрд░ (рд╕реЗрд╡рд╛ рд░рдЬрд┐рд╕реНрдЯрд░) рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдЬреАрд╡рди рдЪрдХреНрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд░рд╛рдЬреНрдп рд╣реЛрддреЗ рд╣реИрдВ (INSTALLED, RESOLVED, STARTING, ACTIVE, STOPPING, UNINSTALLED)ред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ OSGi рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдореЙрдбреНрдпреВрд▓ рд░рд╛рдЬреНрдп рдЖрд░реЗрдЦ

OSGI рдореЙрдбреНрдпреВрд▓ (рдмрдВрдбрд▓) рдореЗрдВ рдореЗрдЯрд╛-рдЗрди / рдореИрдирд┐рдлреЗрд╕реНрдЯ.рдо.рдПрдл рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдореБрдЦреНрдп рдкреНрд░рд╕реНрддреБрдд рд╣реИрдВ:


рдЖрдкрдХреЛ OSGi рдХреЗ рд╕рд╛рде рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдХреИрд╕реЗ рдорд┐рд▓рд╛


OSGi рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЙрдбреНрдпреВрд▓рд░ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдИрдУрд╕реА рдХрдВрдЯреЗрдирд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╕реНрддреБ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рд╕рдорд░реНрдерди рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдПрдУрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧрд╕реЛрд░реНрд╕ рд╕реНрд░реЛрдд рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрд╛рдлреА рд▓рд╛рдн рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ 2006 рдореЗрдВ Interface21 (рдмрд╛рдж рдореЗрдВ SpringSource) рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдФрд░ рд╡реЗ OSGi Alliance, BEA, Oracle, IBM рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рд╕рдВрдпреБрдХреНрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреАрдПрд╕ рдЙрддреНрдкрд╛рдж рд╕реНрдкреНрд░рд┐рдВрдЧрд╕реНрд░реЛрд╕ рд╡рд┐рдВрдЧ рдХреЗ рддрд╣рдд рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдиреЗ рдУрдПрд╕рдЬреАрдЖрдИ рд╕рд░реНрд╡рд┐рд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕рд░реНрд╡рд┐рд╕ рдХрдВрдкреЗрдВрдбрд┐рдпрдо рдореЗрдВ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред рдЗрд╕рдХрд╛ рдХреЛрдб рдЖрдзрд╛рд░ рдЧреНрд░рд╣рдг рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдкреНрд░рд┐рдВрдЧрд╕реЛрд░реНрд╕ рдиреЗ рдбреАрдПрдо рд╕рд░реНрд╡рд░ рднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛, рдЕрдм рдЗрд╕рдХрд╛ рдХреЛрдб рдЖрдзрд╛рд░ рдЧреНрд░рд╣рдг рдлрд╛рдЙрдВрдбреЗрд╢рди рдореЗрдВ рдПрдХ рдХрдиреНрдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрди рдЧрдпрд╛ рд╣реИред

рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ (рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреАрдПрдо)


рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ OSGi рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдореВрд▓ рддрддреНрд╡ рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рд╣реИ (OSGi рдкреИрдЯрд░реНрди рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди)ред рдПрдХреНрд╕рдЯреЗрдВрдбрд░ OSGi рд╕реЗрд╡рд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдирдП рдореЙрдбреНрдпреВрд▓ (рдмрдВрдбрд▓) рдХреА рд▓реЙрдиреНрдЪ рдШрдЯрдирд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдб рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдмреАрди рдХреЛ OSGi рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ OSGi рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣, рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдСрдкрд░реЗрд╢рди рдЖрд░реЗрдЦ

рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╡рд╕рдВрдд рдФрд░ рдЦрд╛рдХрд╛ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдВрднрд╡ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдирд╛рдорд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рджреЗрд╢реА рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рджреВрд╕рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ OSGi рд╕рд░реНрд╡рд┐рд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рд░реНрд╡рд┐рд╕ рдХрдВрдкреЗрдВрдбрд┐рдпрдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ, рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреАрдПрдо рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддред
рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВред

рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдФрд░ рдУрдПрд╕рдЬреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг



рдЙрдкрдпреЛрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рджреЛ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдЬреАрдпреВрдЖрдИ рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВрдЧреЗред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдУрдПрд╕рдЬреА рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдХреИрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ OSGi API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ, рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛ рдкреНрд░рд╢реНрди рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рддреАрд╕рд░рд╛, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЖрд╡реЗрджрди рдорд╛рд╡реЗрди 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдлрд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 рдЦрд╛рдХрд╛-рдЙрджрд╛рд╣рд░рдг
 тФЬтФАтФА рдЙрдкрднреЛрдХреНрддрд╛
 Om om pom.xml
 Rc rc src
 тФЬтФАтФА тФЬтФАтФА рдореБ рдп
 тФЬтФАтФА тФЬтФАтФА тФВ рдЬрд╛рд╡рд╛
 тФВ тФВ тФВ тФФтФАтФА рдЦрд╛рдХрд╛
 тФВ тФВ тФВ тФФтФАтФА рдЙрджрд╛рд╣рд░рдг
 тФВ тФВ тФВ тФФтФАтФА рдЙрдкрднреЛрдХреНрддрд╛
 тФВред тФВ тФЬтФАтФА ConsumerFrame.java
 тФВред тФВ тФЬтФАтФА Consumer.java
 тФВ ener тФВ тФФтФАтФА RefreshListener.java
 тФФтФАтФА тФФтФАтФА тФВ рд╕рдВрд╕рд╛рдзрди
 тФВ тФВ тФВ META-INF
 тФФтФАтФА тФФтФАтФА тФВ рд╡рд╕рдВрдд
 тФЬтФАтФА ml тФВ osgi-reference.xml
 тФФтФАтФАред тФВ рд╡рд╕рдВрдд-рд╕рдВрджрд░реНрдн.рдПрдХреНрд╕рдПрдордПрд▓
 тФФтФАтФА тФФтФАтФА рдкрд░реАрдХреНрд╖рдг
 Ava ava рдЬрд╛рд╡рд╛
 тФФтФАтФА тФФтФАтФА рд╕рдВрд╕рд╛рдзрди
 Producer рддрд╛рд░реАрдЦ-рдирд┐рд░реНрдорд╛рддрд╛
 Om om pom.xml
 Rc rc src
 тФЬтФАтФА тФЬтФАтФА рдореБ рдп
 тФЬтФАтФА тФЬтФАтФА тФВ рдЬрд╛рд╡рд╛
 тФВ тФВ тФВ тФФтФАтФА рдЦрд╛рдХрд╛
 тФВ тФВ тФВ тФФтФАтФА рдЙрджрд╛рд╣рд░рдг
 тФВ тФВ тФВ p рдбреЗрдЯрдкреНрд░реЛрдбреНрдпреВрд╕рд░
 тФВ pl тФВ тФФтФАтФА рдирд┐рд░реНрдорд╛рддрд╛ .mpl.java
 тФФтФАтФА тФФтФАтФА тФВ рд╕рдВрд╕рд╛рдзрди
 тФВ тФВ тФВ META-INF
 тФФтФАтФА тФФтФАтФА тФВ рд╡рд╕рдВрдд
 тФЬтФАтФА ml тФВ osgi-reference.xml
 тФФтФАтФАред тФВ рд╡рд╕рдВрдд-рд╕рдВрджрд░реНрдн.рдПрдХреНрд╕рдПрдордПрд▓
 тФФтФАтФА тФФтФАтФА рдкрд░реАрдХреНрд╖рдг
 Ava ava рдЬрд╛рд╡рд╛
 тФФтФАтФА тФФтФАтФА рд╕рдВрд╕рд╛рдзрди
 Producer рдЗрдВрдЯ-рдкреНрд░реЛрдбреНрдпреВрд╕рд░
 Om om pom.xml
 Rc rc src
 тФЬтФАтФА тФЬтФАтФА рдореБ рдп
 тФЬтФАтФА тФЬтФАтФА тФВ рдЬрд╛рд╡рд╛
 тФВ тФВ тФВ тФФтФАтФА рдЦрд╛рдХрд╛
 тФВ тФВ тФВ тФФтФАтФА рдЙрджрд╛рд╣рд░рдг
 рдЗрдВрдЯреНрд░реЛрдбреНрдпреВрд╕рд░ тФВ p тФВ тФВ
 тФВ pl тФВ тФФтФАтФА рдирд┐рд░реНрдорд╛рддрд╛ .mpl.java
 тФФтФАтФА тФФтФАтФА тФВ рд╕рдВрд╕рд╛рдзрди
 тФВ тФВ тФВ META-INF
 тФФтФАтФА тФФтФАтФА тФВ рд╡рд╕рдВрдд
 тФЬтФАтФА ml тФВ osgi-reference.xml
 тФФтФАтФАред тФВ рд╡рд╕рдВрдд-рд╕рдВрджрд░реНрдн.рдПрдХреНрд╕рдПрдордПрд▓
 тФФтФАтФА тФФтФАтФА рдкрд░реАрдХреНрд╖рдг
 Ava ava рдЬрд╛рд╡рд╛
 тФФтФАтФА тФФтФАтФА рд╕рдВрд╕рд╛рдзрди
 X pom.xml
 I рдирд┐рд░реНрдорд╛рддрд╛-рдЖрдкреА
     X pom.xml
     тФФтФАтФА src
         тФЬтФАтФА рдореБ рдп
         Ava ava рдЬрд╛рд╡рд╛
         тФФтФАтФА тФФтФАтФА тФВ рдЦрд╛рдХрд╛
         тФФтФАтФА тФФтФАтФА тФВ рдЙрджрд╛рд╣рд░рдг
         тФФтФАтФА тФФтФАтФА тФВ рдирд┐рд░реНрдорд╛рддрд╛
         тФФтФАтФА тФФтФАтФА тФВ рдПрдкрд┐
         тФФтФАтФА тФФтФАтФА тФВ рдирд┐рд░реНрдорд╛рддрд╛.рдЬрд╛рд╡рд╛
         тФФтФАтФА тФФтФАтФА рд╕рдВрд╕рд╛рдзрди
         A тФВ META-INF
         тФФтФАтФА рдкрд░реАрдХреНрд╖рдг
             тФЬтФАтФА рдЬрд╛рд╡рд╛
             тФФтФАтФА рд╕рдВрд╕рд╛рдзрди


рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЙрдкрднреЛрдХреНрддрд╛, рдирд┐рд░реНрдорд╛рддрд╛-рдПрдкреА, рддрд┐рдерд┐-рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдХреНрд░рдорд╢рдГ рдирд┐рд░реНрдорд╛рддрд╛, рдЧреНрд░рд╛рд╣рдХ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ, рд╕реЗрд╡рд╛ рдПрдкреАрдЖрдИ, рддрд╛рд░реАрдЦ рдФрд░ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рднреНрд░рд╛рдордХ рд▓рдЧрддрд╛ рд╣реИ? рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдЕрдм рд╣рдо рдЗрд╕реЗ рдХреНрд░рдо рдореЗрдВ рд▓реЗрдВрдЧреЗред

рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ OSGi рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ (рдмрдВрдбрд▓) рд╣реИред рдирд┐рд░реНрдорд╛рддрд╛-рдПрдкреАрдЖрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рд░реНрдорд╛рддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИред рдпрд╣ рдУрдПрд╕рдЬреАрдЖрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрд┐рд╕реЗ рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред

рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рд╡реЗрди-рдмрдВрдбрд▓-рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрд╛рдЪреЗ рдлреЗрд▓рд┐рдХреНрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ Bnd рдЙрдкрдпреЛрдЧрд┐рддрд╛ (OSGi рд╣рд▓рдХреЛрдВ рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓рдЧрдЗрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.3.5</version> <extensions>true</extensions> <configuration> <instructions> <Bundle-Name> ${name} ${version} </Bundle-Name> <Bundle-SymbolicName> ${groupId}.${artifactId} </Bundle-SymbolicName> <Export-Package> blueprint.example.producer.api </Export-Package> <Import-Package>*</Import-Package> </instructions> </configuration> </plugin> 

рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдЦрдВрдб рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо META-INF / MANIFEST.MF рдореЗрдВ OSGi рдореЙрдбреНрдпреВрд▓ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЗрдбрд░ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡реЗ рд╣реИрдВ, рди рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд░реВрдк рдореЗрдВ, рдмрд▓реНрдХрд┐ рдмрдВрдз рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рдлреА рдмреБрджреНрдзрд┐рдорд╛рди рд╣реИ рдФрд░ рдХреЛрдб рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдпрд╛рдд-рдкреИрдХреЗрдЬ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдЧрдгрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ MANIFEST.MF рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдорд╛рдбреНрдпреВрд▓ рдХреЛ рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкрд╛рд╕ рдореЗрдЯрд╛-рдЗрди / рд╕реНрдкреНрд░рд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдерд╛рди рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╣реИрдбрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдореЗрдЯрд╛-рдЗрди / рд╕реНрдкреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдУрд╕реНрдЧреА-рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рдореЗрдВ рдПрдХ рдЦрд╛рдХрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИред рдЙрдкрд╕рд░реНрдЧ "рд╕реНрдкреНрд░рд┐рдВрдЧ-" рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред
рджрд┐рдирд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 @Component public class ProducerImpl implements Producer { @Override public String produceString() { return new Date().toString(); } } @Component public class ProducerImpl implements Producer { private Random random = new Random(new Date().getTime()); @Override public String produceString() { return String.valueOf(random.nextInt()); } } 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рд╕реЗрд╡рд╛ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рд╣реИ рд╕реНрдЯреЗрдиреНрдбрд╕реНрдЯреНрд░рд┐рдВрдЧ () рд╡рд┐рдзрд┐ рдЬреЛ рдПрдХ рдордирдорд╛рдирд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддреА рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕реНрдерд╛рдиреАрдп рддрд╛рд░реАрдЦ, рджреВрд╕рд░реЗ рдореЗрдВ, рдПрдХ рдордирдорд╛рдирд╛ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд╕рдВрдд рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ, рдПрдиреЛрдЯреЗрдЯ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рд╕реЗрд╡рд╛ osgi рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИред

 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <context:annotation-config/> <context:component-scan base-package="blueprint.example"/> </beans> <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.eclipse.org/gemini/blueprint/schema/blueprint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.eclipse.org/gemini/blueprint/schema/blueprint http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd "> <service id="producerService" ref="producerImpl" interface="blueprint.example.producer.api.Producer"/> </beans:beans> 

рдпрд╣рд╛рдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдПрд╕рдЬреАрдЖрдИ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рднрд░реЗрдВред

рдЕрдВрддрд┐рдо рдореЙрдбреНрдпреВрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдПрдХ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рди рдХреНрд╖реЗрддреНрд░ рдФрд░ рдПрдХ рдореВрд▓реНрдп рдЕрдкрдбреЗрдЯ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рдЬреАрдпреВрдЖрдИ рдлреЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред

 @Component public class Consumer { @Autowired private ConsumerFrame consumerFrame; @Autowired private Producer producer; @PostConstruct public void start() { consumerFrame.setRefreshListener(new RefreshListener() { @Override public String refresh() { return producer.produceString(); } }); SwingUtilities.invokeLater( new Runnable() { @Override public void run() { consumerFrame.setVisible(true); } } ); } } 

рдЙрдкрднреЛрдХреНрддрд╛ рд╡рд░реНрдЧ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЗрд╕рдореЗрдВ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрдВрдЯреЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИред рдЕрдЧрд▓рд╛, рдЬрд┐рд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдкрдбреЗрдЯ рдЗрд╡реЗрдВрдЯ рдХреЗ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╕рд░реНрд╡рд┐рд╕ рдПрдХреНрд╕реЗрд╕ рдХреЛрдб рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдлрд╝реЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╡рд┐рдиреНрдпрд╛рд╕ рдКрдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рдЕрдХреНрд╖рд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдУрд╕реНрдЧреА рд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.eclipse.org/gemini/blueprint/schema/blueprint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation=" http://www.eclipse.org/gemini/blueprint/schema/blueprint http://www.eclipse.org/gemini/blueprint/schema/blueprint/gemini-blueprint.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd "> <reference id="producer" interface="blueprint.example.producer.api.Producer"/> </beans:beans> 

рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдПрдХ рд╕реЗрд╡рд╛ рд▓рд┐рдВрдХ рдкрдВрдЬреАрдХреГрдд рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕реЗрд╡рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЙрд▓, рдпрджрд┐ рдпрд╣ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрдЧрд╛ред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реИред

рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИред рд╕реЗрд╡рд╛ рдХрд╛ рд▓рд┐рдВрдХ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ? рдЖрдЦрд┐рд░рдХрд╛рд░, рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЪрд░рдг (рдЙрддреНрд╕реБрдХ), рдпрд╛ рдПрдХреНрд╕реЗрд╕ рд╕реНрдЯреЗрдЬ (рдЖрд▓рд╕реА) рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрдорд╛рддрд╛ рд▓рд┐рдВрдХ рд╕реЗрд╡рд╛ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИред рдЙрддреНрддрд░: рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗрд╡рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЙрд▓ рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╡рд┐рд╖реБрд╡ рдХрдВрдЯреЗрдирд░ рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рд╡рд┐рд╖реБрд╡-рдХреЗ-рдЙрджрд╛рд╣рд░рдг) рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрдЧрд╛ред рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд╕рд╛рде рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

 java -jar org.eclipse.osgi_3.6.2.R36x_v20110210.jar -console

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░реАрди рдкрд░ рд╢реБрд░реБрдЖрддреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╡рд┐рд╖реБрд╡ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯред рдПрд╕рдПрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

 рдУрд╕реНрдЧреА> ss

 рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИред

 рдЖрдИрдбреА рд╕реНрдЯреЗрдЯ рдмрдВрдбрд▓
 0 ACTIVE org.eclipse.osgi_3.6.2.R36x_v20110210
 1 рд╕рдХреНрд░рд┐рдп com.springsource.net.sf.cglib_2.2.0
 2 рд╕рдХреНрд░рд┐рдп com.springsource.org.aopalliance_1.0.0
 3 рд╕рдХреНрд░рд┐рдп com.springsource.org.apache.log4j_1.2.16
 4 рд╕рдХреНрд░рд┐рдп com.springsource.slf4j.api_1.6.1
                     рдЯреБрдХрдбрд╝реЗ = рел
 5 рдкреБрдирд░реНрд╡рд┐рдХрд╕рд┐рдд com.springsource.slf4j.log4j_1.6.1
                     рдорд╛рд╕реНрдЯрд░ = рек
 6 рд╕рдХреНрд░рд┐рдп com.springsource.slf4j.org.apache.commons.log_1.6.1
 7 рд╕рдХреНрд░рд┐рдп org.eclipse.gemini.blueprint.core_1.0.0.RELEASE
 8 рд╕рдХреНрд░рд┐рдп org.eclipse.gemini.blueprint.extender_1.0.0.RELEASE
 9 рд╕рдХреНрд░рд┐рдп org.eclipse.gemini.blueprint.io_1.0.0.RELEASE
 10 рд╕рдХреНрд░рд┐рдп org.springframework.aop_3.0.6.RELEASE
 11 рд╕рдХреНрд░рд┐рдп org.springframework.asm_3.0.6.RELEASE
 12 рд╕рдХреНрд░рд┐рдп org.springframework.aspects_3.0.6.RELEASE
 13 рд╕рдХреНрд░рд┐рдп org.springframework.beans_3.0.6.RELEASE
 14 рд╕рдХреНрд░рд┐рдп org.springframework.context_3.0.6.RELEASE
 15 рд╕рдХреНрд░рд┐рдп org.springframework.context.support_3.0.6.RELEASE
 16 рд╕рдХреНрд░рд┐рдп org.springframework.core_3.0.6ред рдХреГрдкрдпрд╛
 17 рд╕рдХреНрд░рд┐рдп org.springframework.expression_3.0.6.RELEASE

рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдЯреЗрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрдВрд╕реНрдЯреЙрд▓ рдлрд╝рд╛рдЗрд▓ рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ: /// path_to_jar_module_file рдкреНрд░рддреНрдпреЗрдХ 4 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП (рдЖрдк рдорд╛рд╡реЗрди-рдХрдорд╛рдВрдб рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдкреАрдЖрдИ, рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдЖрдИрдбреА рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред


рджрд┐рдирд╛рдВрдХ-рдЙрддреНрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдлрд┐рд░ рд╕реНрдЯреЙрдк рдЖрдИрдбреА рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд░реБрдХреЗрдВ рдФрд░ рджреВрд╕рд░реА рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рд░рд┐рдлреНрд░реЗрд╢ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░реЗрдВред


рдЕрдВрддрд░-рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд┐рд╡рд░рдг рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдорд┐рдереБрди рдмреНрд▓реВрдкреНрд░рд┐рдВрдЯ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдЖрд╡реЗрджрди рдХрд╛ рдХреНрд╖реЗрддреНрд░



рдУрдПрд╕рдЬреАрдЖрдИ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдУрдПрд╕рдЬреАрдЖрдИ-рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЧреНрд░рд╣рдг рдФрд░ рдЧреНрд▓рд╛рд╕рдлрд┐рд╢ред рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЙрджреНрдпрдо рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рд╕реНрдерд┐рддрд┐ рд╣реИред рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЗ рддрд╛рд▓рдореЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд▓реНрдкрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдмрдВрдбрд▓ рдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░, рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реЛрдирд╛ рдерд╛ред рджрд░рдЕрд╕рд▓, OSGi рдХреЛ рдХреЙрд░рдкреЛрд░реЗрдЯ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд▓рд╛рдиреЗ рдХрд╛ рдпрд╣ рдПрдХ рд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдЙрджреНрдпрдо рдФрд░ рдЖрд╡реЗрджрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдУрдПрд╕рдЬреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред

рдХрдорд┐рдпреЛрдВ



рдЧрддрд┐рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░рдЦрддреА рд╣реИ рдХрд┐ рдорд╣рд╛рди рд▓рд╛рдн рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕реНрдкреНрд░рд┐рдВрдЧ рдФрд░ OSGi рдЙрдирдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреЛрд╖ рдореИрдВ рдЗрд╕ рдмрдВрдзрди рдХреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рдкреНрд░рд╕рд╛рд░ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдмреЗрд╢рдХ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдпреЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдЙрдирдХреА рдЙрддреНрддрд░рдЬреАрд╡рд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рдЙрдард╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрддрдиреА рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕реНрдкреНрд░рд┐рдВрдЧрд╕реНрд░реЛрд╕ рд╕реЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдЙрдирдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рджреВрд╕рд░реЗ рджреЛрд╖ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓рддрд╛ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЗрддрдиреА рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдиреА рдХрд┐ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реА рдЧрдИ рдЬрдЯрд┐рд▓рддрд╛, рдпрд╛ рдмрд▓реНрдХрд┐ рдПрдХ рдУрдПрд╕рдЬреАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

OSGi рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ



рдирд┐рд╖реНрдХрд░реНрд╖



рдореИрдВрдиреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдФрд░ рдУрдПрд╕рдЬреАрдЖрдИ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ рдХреЗ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рднрд╛рдЧ рдкрд░ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЗрдЪреНрдЫреБрдХ рдкрд╛рдардХ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдЗрд╕ рдЕрджреНрднреБрдд рддрдХрдиреАрдХ (рдореЗрд░реА рдХреНрд╖рдорддрд╛ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрд░реЛрдд



рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рд▓реЗрдЦ
рдЧреНрд░рд╣рдг рдХреА рдордгрд┐
BND
OSGi рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ
рд╡рд╕рдВрдд рдХреА рд░реВрдкрд░реЗрдЦрд╛
рд╕реНрдкреНрд░рд┐рдВрдЧ рдбрд╛рдпрдирд╛рдорд┐рдХ рдореЙрдбреНрдпреВрд▓
OSGi SpringSource рдмреНрд▓реЙрдЧ
рдПрдХреНрд╢рди рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдбрд╛рдпрдирд╛рдорд┐рдХ рдореЙрдбреНрдпреВрд▓
рдХреБрдВрд╡рд╛рд░реА рдХрдиреНрдпрд╛ рдЧреНрд░рд╣рдг рдХрд░реЗрдВ

Source: https://habr.com/ru/post/In128653/


All Articles