[sending to the new s4-dev-subscribe list!] Thank you Adam, let me read the links you sent to understand this better.
BTW. I reorganized the project into subprojects to make it easier to separate examples from the framework. To implement inter-app communication I added EventSource which an app can use to publish its output to other apps and other apps can subscribe to. We can also use it to build adaptors to non-s4 events. We can use the osgi mechanisms for declaring dependencies such as app2 depends on app1 and for app2 to do: app1.subscribeStream(anApp2Stream) so app2 can get events from app1. Unless an app uses an EventSource, its events will not be exported. This will create good isolation and make it easier to add a security layer around apps. Both Stream and EventSource implement Streamable. My code is here until we set up the apache svn. https://github.com/leoneu/s4-piper thanks! -leo On Oct 8, 2011, at 5:03 AM, adam wojtuniak wrote: > Hi Leo, > > Yes I have a few ideas but I need couple days to implement them. > First, is to build S4 and examples as proper OSGi bundles using gradle osgi > plugin http://gradle.org/osgi_plugin. > Its using bnd tool http://www.aqute.biz/Bnd/Bnd. > Then embed osgi container (using standard osgi api) in Controller instead of > JBoss modules see > http://felix.apache.org/site/apache-felix-framework-launching-and-embedding.html. > and configure directory from which felix should auto deploy our examples > http://felix.apache.org/site/apache-felix-framework-usage-documentation.html#ApacheFelixFrameworkUsageDocumentation-autodeploy. > For dynamic deployment we can use file install bundle > http://felix.apache.org/site/apache-felix-file-install.html, it will watch > directory from which it loads new bundles. > To configure properly examples we can use ipojo > http://felix.apache.org/site/apache-felix-ipojo.html or declarative services > http://felix.apache.org/site/apache-felix-service-component-runtime.html, > they both using service component model and are not intrusive in the code. > That will be enough to load properly the apps. > > Later we have to think how we want to use osgi in s4, just to load apps or > properly use service management. Bundles are hiding the internals from other > bundles and should communicate through well defined services. And also I > don't have clear picture how s4 is going to be distributed (have to look more > at https://github.com/s4/s4). Maybe you can write me some small description > of s4 concept. > > Cheers, > Adam >
