[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] ECF Luna planning
|
Oops...I forgot the whiteboard example here it is:
(in provider activator.start...or ds)
// Register JSLPNamespace via whiteboard
context.registerService(Namespace.class, new JSLPNamespace(), null);
// Register JSLP container type description
context.registerService(ContainerTypeDescription.class,
new ContainerTypeDescription("ecf.discovery.jslp", new
ContainerInstantiator(),
"JSLP Discovery Container", true, false), null);
On 3/31/2014 11:15 AM, Scott Lewis wrote:
Hi Folks,
I wanted to let everyone know that I've completed and resolved item 7
below (bug 421569 remove dependency on extension registry).
Although just one bug, this represents a pretty big change. As
described in the comments on the bug, it allows both existing and new
providers (e.g. distribution providers and/or discovery provider) to
create new namespaces, container factories, and equinox adapter
factories by multiple methods:
1) Declaratively (using equinox extension registry). This is how it
has been. In other words, if the extension registry is present at
runtime all providers will continue to behave exactly the same.
2) Programmatically (using the OSGi whiteboard pattern). This
mechanism is new. Below is a very simple example of how to register a
new Namespace and ContainerTypeDescription below.
3) Both 1 and 2. Provider implementer (us and others) can use
*both* 1 and 2...and instrument things to make the choice at runtime.
This provides a nice degree of flexibility for consumers of ECF OSGi
remote services in particular...whether for 'servers' or
'clients'...on equinox or on Felix/Karaf/others. For the existing
providers listed on the bug comment (e.g. r-osgi, ecf generic, rest,
zookeeper, etc), they will continue to work properly...whether the
extension registry is present or not. As well, authors of new
providers (us and others) can use whichever mechanisms that they
choose (declarative, programmatic, or both).
IMHO by itself this justifies ECF 3.8.1...and I would like to
contemplate/discuss the possibility of having a 3.8.1 maintenance
release (we could do this fairly easily...e.g. this week). Or...we
could wait for Luna, and get more of the items listed below completed
and included into Luna. I'm currently torn. Comments/thoughts?
Scott
On 3/27/2014 11:20 AM, Scott Lewis wrote:
Hi Folks,
Here's what I'm planning for ECF for our Luna release (i.e. after ECF
3.8.0). This is partially to let everyone know what's going
on/planned, and partially to solicit help/assistance from committers
and/or contributors (i.e. you don't have to be a committer to get
directly involved with these efforts).
The changes/updates/etc are somewhat 'invisible' so I wanted to make
them more visible. There's actually a lot happening.
If you would like to get involved with any of these efforts please do
so...by adding yourself to the associated bug, sending a note in
response to this posting, and/or contacting me directly at slewis at
composent.com. Everyone should be aware though that since we are a
mature EF project, the deadline for getting the new things below into
ECF Luna is ~end of April (i.e. before Luna release freezes).
1) Updating our implementation of OSGi Remote Services/Remote Service
Admin for OSGi R6. For ~ 3 months now, I have been consistently
updating our RS/RSA implementation based upon the OSGI RFC 203, on
the git branch given in the bug [1] (and depends on). For your
information, it's quite likely that nearly all of what's currently in
RFC 203 will likely be in the R6 specification. R6 is not at all
finalized yet, however, so all of our work is proceeding on an ECF
branch [1a], which will be merged in to master when R6 specification
is complete and approved. The timing and final content of the
approval is not clearly known, however, so I'm not sure whether we
will be able to do this merge before Luna release or not (my guess
right now is that it will have to be a post-Luna maintenance release
rather than merged/released in time for Luna). I'm the committer lead
for this work.
2) Changes to ECF Discovery [2] and [2a]. [2] is work to make the
RS/RSA usage of ECF discovery providers fully dynamic. Markus K has
been working on this and is part-way finished (is my
understanding). It will need to be coordinated with the work from
1...since the RSA 1.1 changes imply some additions/changes to
discovery (addition of endpoint description update). Markus K is the
committer lead for this work. [2a] is about updating the zookeeper
provider to use a more recent version of Apache Zookeeper. Wim is
the ECF committer lead for this work.
3) New distribution providers [3] and [3a]. [3] is websockets, and
[3a] is for vert.x. Both of these would/will be great examples of
using ECF's provider architecture to allow the easy creation of
custom RS/RSA distribution providers. It would also be great if we
can/could use these technical efforts to develop more tutorials for
building and using custom providers (like our MQTT provider)...in
addition to the [3b] tutorial. I am the lead committer for this
work, although I would welcome others willing to take the lead on
these additions.
4) RS/RSA integration with Python [4] [4a]. [4] is work that Thomas
Calmant has largely already done, and [4a] is work with Thomas as
well as the OpenReplica team to integrate Python-based remote service
consumers and hosts via ECF Remote Services.
5) Use of Java8 for asynchronous remote services. As many of you
know, java8 has some new features that are very interesting/useful
from a remote services perspective...see [5] for example. I intend
to get this work into Luna...as well as a new wiki-based tutorial
demonstrating via our example async time service code described in
the blog...which is now checked in, BTW [5a]). This is really
exciting, IMHO, because it's right at the intersection between remote
services...which have a strong need for asynchronous/non-blocking
semantics...the java8 async/concurrency/functional programming
features...and ECF's ability to easily and efficiently support async
proxies...through our provider architecture, underlying event-driven
structure, and existing support for async proxies [5b].
6) Possible GSOC 2014 projects. One request: Sakith...who I
believe submitted a proposal for GSOC 2014 for an ECF
project...please do two things:
a) provide the URL/link of your proposal here on this list
b) please contact me via email at slewis at composent.com about
mentoring
7) Make the use of Equinox extension registry optional [7]. In some
runtime situations it would be helpful to not require the presence of
the equinox extension registry. Work on making this happen has been
underway on a separate git branch for some time now...see [7]...and
it will make it into ECF Luna.
8) More RS/RSA documentation additions. As mentioned above, it
would be great to get new tutorials for creating distribution
providers, using java8/completable future for async proxies, use of
ECF with Karaf, etc. There's now a lot more at [8], but there's
much more to be done.
9) Address as many existing bugs as possible [9].
10) Do all the required Luna releng/IP/EF stuff.
Thanks. If any questions, comments, suggestions...and/or things that
I missed above that are going on...please let all know.
Scott
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=424304
[1a] http://git.eclipse.org/c/ecf/org.eclipse.ecf.git?h=rfc1.1
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=424059
[2a] https://bugs.eclipse.org/bugs/show_bug.cgi?id=378350
[3] https://bugs.eclipse.org/bugs/show_bug.cgi?id=426186
[3a] https://bugs.eclipse.org/bugs/show_bug.cgi?id=430221
[3b]
https://wiki.eclipse.org/Tutorial:_Creating_a_RESTful_Remote_Service_Provider
[4] https://bugs.eclipse.org/bugs/show_bug.cgi?id=424262
[4a] https://bugs.eclipse.org/bugs/show_bug.cgi?id=425817
http://openreplica.org
[5]
http://eclipseecf.blogspot.com/2014/03/completablefuture-for-osgi-remote.html
[5a]
http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/providers/bundles/org.eclipse.ecf.provider.remoteservice.java8
http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async
[5b] https://wiki.eclipse.org/ECF/Asynchronous_Remote_Services
[7] https://bugs.eclipse.org/bugs/show_bug.cgi?id=421569
[8] https://wiki.eclipse.org/ECF#OSGi_Remote_Services
[9]
https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=major&bug_severity=normal&bug_severity=minor&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&classification=RT&list_id=8699254&product=ECF&query_format=advanced
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev