Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Grenoble


Published on

OSGi World Congress 2005 - Developer Forum Day 1

Published in: Technology
  • Be the first to comment

  • Be the first to like this

An Open Source OSGi Plug-In for Eclipse - Mikaël Desertot, University of Grenoble

  1. 1. An Open Source OSGi™ Plugin For Eclipse MikaelMikael DesertotDesertot (IMAG & BULL)(IMAG & BULL) Contact :Contact :
  2. 2. OutlineOutline •• ContextContext •• MotivationMotivation •• The OSGiThe OSGi pluginplugin •• DevelopmentDevelopment pluginplugin •• RepositoryRepository pluginplugin •• Gateway ManagementGateway Management pluginplugin •• General modular architectureGeneral modular architecture •• ConclusionConclusion •• Future workFuture work
  3. 3. ContextContext •• IMAG LSR Laboratory, Adele team,IMAG LSR Laboratory, Adele team, GrenobleGrenoble •• Bull, an international French companyBull, an international French company •• Members of ObjectMembers of ObjectWebWeb –– 1rst International consortium for1rst International consortium for Open Source MiddlewareOpen Source Middleware –– CoCo--foundedfounded 2002 by Bull,2002 by Bull, FranceFrance TelecomTelecom R&DR&D andand INRIA;INRIA; –– NonNon--profit, open, businessprofit, open, business neutralneutral –– IndustryIndustry--grade projectsgrade projects –– 6060 corporatecorporate membersmembers inclincl. 10. 10 researchresearch labslabs –– 17001700 individualindividual membersmembers fromfrom 80 countries80 countries –– 130,000130,000 visitorsvisitors//monthsmonths, 40% EU, 40% N.A, 40% EU, 40% N.A –– 100100 projectsprojects, 470, 470 committerscommitters,, 5,7005,700 contributorscontributors
  4. 4. MotivationMotivation •• Developing an OSGi bundle impliesDeveloping an OSGi bundle implies –– Packaging classes and resourcesPackaging classes and resources –– Writing Metadata (Writing Metadata (MetatypeMetatype, SB, SCR,, SB, SCR, ……)) •• Testing the bundleTesting the bundle –– Deploying it to an OSGi frameworkDeploying it to an OSGi framework •• Publish the bundlePublish the bundle –– In a repositoryIn a repository •• Those tasks areThose tasks are –– Complex for nonComplex for non--OSGi expertsOSGi experts –– RepetitiveRepetitive •• Could imply inconsistent bundlesCould imply inconsistent bundles –– Version, metadata,Version, metadata, …… versus sourcesversus sources
  5. 5. MotivationMotivation •• EclipseEclipse –– One of the major IDE (licenceOne of the major IDE (licence--free and openfree and open--source)source) –– Extensible by plugExtensible by plug--ins (commercial or openins (commercial or open--source)source) –– PluginsPlugins are packaged as OSGi Bundlesare packaged as OSGi Bundles •• Eclipse/EquinoxEclipse/Equinox –– OSGi platform forOSGi platform for pluginplugin/bundle deployment/bundle deployment •• Our goalOur goal •• Provides a openProvides a open--source Eclipsesource Eclipse pluginplugin to simplifyto simplify OSGi bundle development and deploymentOSGi bundle development and deployment
  6. 6. TheThe ADELEADELE OSGiOSGi™™ PluginPlugin •• Set of modularSet of modular pluginsplugins forfor –– Bundle developmentBundle development –– Repository (OBR) managementRepository (OBR) management –– OSGi gateway managementOSGi gateway management •• All can be installed and used independentlyAll can be installed and used independently
  7. 7. DevelopmentDevelopment PluginPlugin (1)(1) •• Specific project for bundlesSpecific project for bundles –– With a predefined classpath (With a predefined classpath (osgi.jarosgi.jar,,……)) •• Some specific editorsSome specific editors –– For the manifest fileFor the manifest file –– For Service Binder (preFor Service Binder (pre--R4 SCR) metadataR4 SCR) metadata •• Packaging of the resources in bundlesPackaging of the resources in bundles •• Publishing the bundles w/o OBRPublishing the bundles w/o OBR
  8. 8. DevelopmentDevelopment PluginPlugin (2)(2) Project creation Manifest editor
  9. 9. DevelopmentDevelopment PluginPlugin (3)(3) Bundle creation Publishing with OBR
  10. 10. RepositoryRepository PluginPlugin (1)(1) •• Enable to import bundles into the projectEnable to import bundles into the project from the OBR (Oscar Bundle Repository)from the OBR (Oscar Bundle Repository) •• Automates download of a desired bundleAutomates download of a desired bundle –– Save it in a local projectSave it in a local project –– Add it to the classpathAdd it to the classpath –– EclipseEclipse completioncompletion is available for classes the bundleis available for classes the bundle embedsembeds •• Deals with multipleDeals with multiple OBRsOBRs –– Publics (Oscar,Publics (Oscar, KnoplerfishKnoplerfish ,,……) and privates) and privates
  11. 11. OBROBR PluginPlugin (2)(2)
  12. 12. Gateway ManagementGateway Management PluginPlugin (1)(1) •• Deploy bundles on a targeted OSGi gatewayDeploy bundles on a targeted OSGi gateway –– Install, start, stop, update, uninstallInstall, start, stop, update, uninstall –– Deploy with dependencies (OBR)Deploy with dependencies (OBR) •• Manages several gatewaysManages several gateways –– Customizable protocolsCustomizable protocols Bundles Repositories Bundles Repositories Bundles Repositories SOAP Deployer OSCAR UPnPOGD Deployer OSCAR JMX/HTTP Deployer KF Foo Bundle Bar Bundle My Bundle My Bundle My Bundle
  13. 13. Gateway ManagementGateway Management PluginPlugin (2)(2) Protocol Preferences Available protocolsAvailable protocols •• HTTP/SOAPHTTP/SOAP ProtocolsProtocols under constructionunder construction •• RMIRMI •• JMX/RMI, JMX/HTTPJMX/RMI, JMX/HTTP •• UPnP OGD (OSGi Gateway Device)UPnP OGD (OSGi Gateway Device)
  14. 14. Gateway ManagementGateway Management PluginPlugin (3)(3) Gateways view
  15. 15. General Modular ArchitectureGeneral Modular Architecture Preferences Plugin Remote Gateway Plugin SOAP … Mandatory Optional UPnP OGD Repository Gateway Development
  16. 16. ConclusionConclusion •• A set of modular plugA set of modular plug--ins for OSGi bundleins for OSGi bundle development and deploymentdevelopment and deployment –– Extending Java Development EnvironmentExtending Java Development Environment –– ExtensibleExtensible •• Freely available fromFreely available from –– http://www
  17. 17. Future WorksFuture Works •• ShortShort--term workterm work –– Bundle debuggingBundle debugging –– OBR metadata editorOBR metadata editor –– War2Bundle wizardWar2Bundle wizard –– Update for OSGi R4Update for OSGi R4 •• SCR metadata editor/wizardSCR metadata editor/wizard •• MetatypeMetatype metadata editor/wizardmetadata editor/wizard –– Extends the PDE (plugExtends the PDE (plug--in developmentin development envenv.).) •• Team future works will focus the deployment/admin.Team future works will focus the deployment/admin. since PDE will cover the bundle dev. requirement.since PDE will cover the bundle dev. requirement. –– OBR and gateway remote managementOBR and gateway remote management
  18. 18. R4 SCR Editor (R4 SCR Editor (basedbased on EMF)on EMF)
  19. 19. Thank YouThank You Q & A