Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><a href="http://neilbartlett.name/blog/osgibook/" rel="noreferrer">OSGI</a> is a good practical example of a technical framework allowing to do what you are after.</p> <p>The <a href="http://www.osgi.org/Main/HomePage" rel="noreferrer">theory is here</a>.</p> <p>The <a href="http://neilbartlett.name/downloads/osgibook_preview_20080922.pdf" rel="noreferrer">(free!) book is there</a>.</p> <p>Extensibility and the ability to write plugin must deal with <strong>service lifecycle</strong></p> <ul> <li>adding / removing service/plugin on the spot</li> <li>managing dependencies between services</li> <li>managing states of services (declared, installed, started, stopped,...)</li> </ul> <p><a href="http://neilbartlett.name/blog/2008/06/06/what-is-osgi-for/" rel="noreferrer">What is OSGI for ?</a></p> <blockquote> <p>One of the main functions of a module is as a unit of deployment… something that we can either build or download and install to extend the functionality of our application.</p> </blockquote> <p>You will find a <a href="http://www.osgi.org/blog/2008/08/why-services-are-important.html" rel="noreferrer">good introduction here</a>, on the central notion of <strong><em>service</em></strong> (which is related to your question, and which explain some problems around services, key component for extensibility).</p> <p>Extract:</p> <blockquote> <p>Why are services then so important if so many applications can be built without them? Well, services are the best known way to decouple software components from each other.</p> <p>One of the most important aspects of services is that they significantly minimize class loading problems because they work with instances of objects, not with class names. Instances that are created by the provider, not the consumer. The reduction of the complexity is quite surprising</p> <p>Not only do services minimize configuration, they also significantly reduce the number of shared packages.</p> </blockquote>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload