I've had this cramp bugging me for a while. In OSGI how far down should one go in making items bundles? It would seem that on one hand if a bundle/plugin is broken down into specific pieces of functionality that adopters can more easily create their own feature packaging. However, this also leads to many many bundles/plugins needing to be maintained.
Are there any common guidelines as it seems to be all over the place with eclipse bundles. Some are broken down to very fine detail, others are just two main plugins core and ui.
How Modularized should Bundles be?
About Me
- David Carver
- My technical interests include XML, agile development, open source projects, and improving business to business standards development. At Eclipse.org I serve on the Architecture Council, and I'm a committer on the WTP Source Editing project focusing on XPath 2.0, XSLT, XML, and DTD development. I also help with the WTP Incubator VEX, XQuery, and RelaxNG development. View my linkedin profile.

Intellectual Cramps by David Carver is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.
Based on a work at intellectualcramps.blogspot.com.
Archives
-
▼
2009
(205)
-
►
December
(13)
- Hudson at Eclipse
- Refactoring: Leveraging Polymorphism
- Embracing Change
- PsychoPath XPath 2.0 Processor 1.1M4
- Hudson RESTFul API
- Hudson v1.337 installed
- Just the Facts.
- Traffic Jam
- Build Failures on Test Slave on Hudson
- Adding FindBugs to Athena Common Builder
- Tag/Build, Build/Tag..How about Both
- +2 Broadsword
- EclipseCon: Testing Panel
-
►
November
(15)
- How to Diversify
- Project Diversification Sucks
- Say What?!?!!!
- Testing Cramps
- eXist 1.4, Love It...Hate it...Love it!
- Individuals 149, IBM 132
- Functional Testing Builds
- PsychoPath 1.1M3 a Java 5 (1.5) or greater XPath 2...
- Do Eclipse Projects need to roll out Patches faste...
- Performance Tuning an Athena/Hudson build
- Eclipse XSL Tools gets SAXON Debugging Support
- SWARM for the Community
- XPath 2: Collections and PsychoPath
- Eclipse Documentation on the Wiki
- Making it Easy for Contributors to Contribute
-
►
October
(14)
- VEX (Visual Editor for XML) gets some life
- Bad Habit in Design: Concentrating on the 20%
- IDs Need to be Published
- Eclipse DemoCamp - Columbus, OH
- Model the Data not the Form
- API Design is easy...Good API Design is HARD
- XQDT now at Eclipse
- The Problem of Exporting Everything
- User Defined Schema Types and PsychoPath
- XSL Aware Outline Part II
- XSL Aware Outline
- Yellow Does Not Equal Green/Blue
- Vendor Lock In
- Small Bits and Pieces
-
▼
June
(18)
- Eclipse: RelaxNG Tools
- The Number One Perma-Bug on Eclipse
- It Figures...
- Eclipse Galileo: Get it using the torrents
- Eclipse Galileo: XML gets some love!
- Some Cramps on Commercial Open Source software
- WTP Source Editing has New Committers
- Kicking the Tires of FireFox 3.5RC1
- Should PsychoPath support JRE 1.3
- Learning about Eclipse Processes
- Ineffective XML Design
- Importance of Tests
- Zombies Live in DecimalFormat
- Architecture Council: Bugzilla Best Practices
- W3C XPath 2.0 Test Suite Implemented
- OSGI Test Suite and Equinox
- Joomla, Agora Forum and RSS feeds
- How Modularized should Bundles be?
-
►
December
(13)
Categories
- agile (64)
- agora (1)
- ant (2)
- bliteotw (2)
- bugday (2)
- build (29)
- cms (1)
- css (1)
- dita (12)
- docbook (25)
- docman (1)
- documentation (16)
- dr horrible (1)
- dvcs (2)
- e4 (1)
- eclipse (357)
- eclipsecon (1)
- encryption (1)
- galileo (1)
- git (1)
- home theater (1)
- hudson (1)
- java (1)
- joomla (3)
- linux (2)
- mantis (5)
- mono (1)
- mylyn (6)
- netflix (1)
- open source (10)
- osgi (3)
- pde (4)
- pdt (1)
- performance (3)
- php (5)
- refactoring (23)
- referring (1)
- relaxng (3)
- release engineering (25)
- reviews (1)
- schematron (1)
- scrum (6)
- security (3)
- silverlight (1)
- soccer (1)
- standards (32)
- standards. (2)
- summer of code (2)
- testing (40)
- testing. (1)
- ubuntu (2)
- web services (3)
- wiki (1)
- wsdl (1)
- wsi (1)
- xforms (2)
- xml (224)
- xpath (25)
- xquery (14)
- xsd (1)
- xsl (50)
- xslt (45)
- xtext (3)
- year end review (1)
- zombies (1)
Hi,
well, this is not easily answered, depends most on your requirements. We do always start with a few bundles (app, model, ui, ui.api) and split, when necessary, applications usually end up in 30 to 40 different bundles.
Martin
this really depends from so many project-specific dependencies and can only be answered knowing the requirements.
of course some rules are there:
* separate all your tiers (ui, persistence, ...)
* if parts are used at client (per ex. RCP) and also at server-side: divide your bundles, that the client has as less dependencies as possible
* if different developer / architects at different locations are working in the same area it makes perhaps sense to divide the bundles that each can work on his/her bundle
* if you have product families, separate core and domain-specific things
* if there's a part where most of your customers make customization, then a separate bundle can make sense to separate this. (per ex. in some cases I use extra bundles for Enumerations to ease it for customers to add/change them)
* separate bundles where you can imagine that another implementation could be used now or later
* separate bundles if it helps to avoid cycles or buddies
* separate bundles containing business-logic changing often
...only some ideas and hints from my work as software architect for OSGI enterprise apps
ekke
OSGi is basically a mini Service Orientated Architecture. Each Bundle is essentially a self contained mini server running a service that other programs can use. As with any service it should have a well defined purpose and scope. Essentially this approach means that there is a clear separation of concerns.
In other words Bundles are an abstraction above packages. They should have their own service interface, and the implementation should be hidden. Obviously how you handle separation of concerns will determine how many bundles fall out of the design.