incubator-s4-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leo Neumeyer <>
Subject Re: OSGI for S4
Date Sat, 08 Oct 2011 17:13:37 GMT
I think the current plan is as follows:

Now in GitHub:

Current release: s4 version 0.3
Last release in GitHub: s4 v0.4 - same as s4 v0.3 + bug fixes + checkpointing)

after moving to Apache Incubator:

Stable release: s4 v0.4
Dev: s4-piper becomes s4 v0.5 (replaces *ALL* of s4, not just core, of
course we reuse some of the classes and code but it is a major
rewrite. The API is conceptually similar but the approach is
completely different. There is no backwards compatibility.)

The new design is more strictly object oriented, we eliminate
reflection, castings, string literals, and XML in most of the code
base. Internally it uses static typing extensively with Generics and
Guice which makes it much easier to understand and navigate and is
less error prone and easier to test. App development for one or a
thousand nodes is exactly the same, just a simple graph of PEs and
Streams implemented in an single App class that can easily be tested
in Eclipse on a single node.

and of course we are open for suggestions and comments and contributions.


On Sat, Oct 8, 2011 at 9:24 AM, Henry Saputra <> wrote:
> Leo
> Looks like the code structure for s4-piper is different from s4 repo.
> Is the piper suppose to replace the s4-core module of the s4?
> Sorry if I miss something obvious.
> Henry
> On Saturday, October 8, 2011, Leo Neumeyer <> wrote:
>> [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.
>> 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
>>> Its using bnd tool
>>> Then embed osgi container (using standard osgi api)  in Controller
> instead of JBoss modules see
> .
>>> and configure directory from which felix should auto deploy our examples
> For dynamic deployment we can use file install bundle
>, it will watch
> directory from which it loads new bundles.
>>> To configure properly examples we can use ipojo
> or declarative services
> 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 Maybe you can write me some small
> description of s4 concept.
>>> Cheers,
>>> Adam



View raw message