bndtools
Mostly Painless Tools for OSGi
“Mostly..?!?”
No Pain – No Gain
Good Pain vs Bad Pain
bndtools
Eclipse PDE
★ Dependencies are based on Java packages.
★ If we use a package we must import it.
★ Packages are too numerous to manage ...
*christopher* on Flickr (http://www.flickr.com/photos/cmichel67/)
Bnd
★ Written by Peter Kriens
★ Used by OSGi Alliance to build 1,300+ bundles
★ Very accurate analysis of package usage ba...
Doing the “Right Thing”
★ Import generated for each export
★ Package-uses constraints generated
★ Import ranges based on S...
Descriptor-Based
Bundle-Version: 1.1.1
Export-Package: org.jdom*;version=${Bundle-Version}
Manifest-Version: 1.0
Export-Pa...
★ Assisted editing of bnd descriptors
★ Continuous builds: your bundle is always built
(it’s the Eclipse Way!)
★ 100% fide...
★ Encourages best practices:
★ Service/Component Oriented Programming
★ Use of Declarative Services
bndtools
★ 1-n bundles per project
★ Don’t define bundle boundaries too early
★ Easy to refactor bundle contents
bndtools
Demo
Conclusion
★ Docs and Installation Guide:
★ http://njbartlett.name/bndtools.html
★ Both Bndtools and Bnd are hosted on Git...
To Learn More
★ Marcel Offermans’ tutorial tonight 20:00
★ Tutorial tomorrow: “Distributed OSGi”
★ “OSGi Masterclass”, 12-...
Thanks!
OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse
Upcoming SlideShare
Loading in...5
×

OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse

639

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
639
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OSGi Community Event 2010 - Rapid Bundle Development with Bndtools for Eclipse

  1. 1. bndtools Mostly Painless Tools for OSGi
  2. 2. “Mostly..?!?”
  3. 3. No Pain – No Gain
  4. 4. Good Pain vs Bad Pain
  5. 5. bndtools
  6. 6. Eclipse PDE
  7. 7. ★ Dependencies are based on Java packages. ★ If we use a package we must import it. ★ Packages are too numerous to manage by hand. ★ Sometimes we are not aware we used a package (e.g. superclasses, return types, JRE packages). Challenges
  8. 8. *christopher* on Flickr (http://www.flickr.com/photos/cmichel67/)
  9. 9. Bnd ★ Written by Peter Kriens ★ Used by OSGi Alliance to build 1,300+ bundles ★ Very accurate analysis of package usage based on bytecode scanning ★ Does the “right thing”
  10. 10. Doing the “Right Thing” ★ Import generated for each export ★ Package-uses constraints generated ★ Import ranges based on Semantic Versioning
  11. 11. Descriptor-Based Bundle-Version: 1.1.1 Export-Package: org.jdom*;version=${Bundle-Version} Manifest-Version: 1.0 Export-Package: org.jdom.output;uses:="org.jdom,org.jdom.adapters,org. w3c.dom,org.xml.sax.helpers,org.xml.sax,org.xml.sax.ext";version="1.1 .1",org.jdom.input;uses:="org.xml.sax,org.jdom,org.w3c.dom,javax.xml. parsers,org.xml.sax.helpers,org.xml.sax.ext";version="1.1.1",org.jdom ;uses:="org.jdom.output,org.jdom.filter,org.xml.sax";version="1.1.1", org.jdom.filter;uses:="org.jdom";version="1.1.1",org.jdom.adapters;us es:="org.jdom,org.w3c.dom,org.xml.sax,org.jdom.input,javax.xml.transf orm,javax.xml.parsers,oracle.xml.parser,oracle.xml.parser.v2,org.apac he.xerces.parsers,org.apache.xerces.dom";version="1.1.1",org.jdom.tra nsform;uses:="org.xml.sax.ext,org.jdom,org.xml.sax.helpers,org.xml.sa x,org.jdom.input,javax.xml.transform.sax,org.jdom.output,javax.xml.tr ansform,javax.xml.transform.stream";version="1.1.1",org.jdom.xpath;us es:="org.jaxen,org.jdom,org.jaxen.jdom";version="1.1.1" Bundle-Version: 1.1.1 Tool: Bnd-1.0.0 Bnd-LastModified: 1276770707148 Bundle-Name: org.example.libs.jdom Bundle-ManifestVersion: 2 Created-By: 1.6.0_15 (Apple Inc.) Import-Package: javax.xml.parsers,javax.xml.transform,javax.xml.transf orm.sax,javax.xml.transform.stream,oracle.xml.parser,oracle.xml.parse r.v2,org.apache.xerces.dom,org.apache.xerces.parsers,org.jaxen,org.ja xen.jdom,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers Bundle-SymbolicName: org.example.libs.jdom
  12. 12. ★ Assisted editing of bnd descriptors ★ Continuous builds: your bundle is always built (it’s the Eclipse Way!) ★ 100% fidelity between Eclipse builds and offline builds ★ Don’t shut out NetBeans/IntelliJ users bndtools features
  13. 13. ★ Encourages best practices: ★ Service/Component Oriented Programming ★ Use of Declarative Services bndtools
  14. 14. ★ 1-n bundles per project ★ Don’t define bundle boundaries too early ★ Easy to refactor bundle contents bndtools
  15. 15. Demo
  16. 16. Conclusion ★ Docs and Installation Guide: ★ http://njbartlett.name/bndtools.html ★ Both Bndtools and Bnd are hosted on GitHub: ★ Bndtools: http://github.com/njbartlett/bndtools ★ Bnd: http://github.com/bnd/bnd ★ Please report bugs through GitHub’s issue tracker
  17. 17. To Learn More ★ Marcel Offermans’ tutorial tonight 20:00 ★ Tutorial tomorrow: “Distributed OSGi” ★ “OSGi Masterclass”, 12-15 October in Girona, Spain with me and Peter Kriens ★ http://www.aqute.biz/MasterClass
  18. 18. Thanks!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×