In case anyone's concerned, maven or osgi isn't mandatory, this is simply 
intended to make River play well with OSGi.

Making River play well with OSGi shouldn't be of concern to those who don't 
want the option, as the existing functionality and use cases will continue 
working, this functionality is assured by tests.

For OSGi, we're ensuring class visibility is identical at each endpoint.  The 
smart proxy code / bundle / version is a service implementation concern.  The 
use of java serialization is also a service implementation concern that can be 
replaced in future.

It's my intent to bring this functionality to River once it has stabilised.  
Some River developers / users have often strongly expressed their preference 
towards maintaining a stable trunk, that hasn't changed.

My preference would be for a git based repo, as git workd very well with a 
stable trunk with fork and merge development.  Svn is beter suited to an 
experimental trunk with a period of stabilisation prior to branching for 
release. 

A piece of trivia, the modular build uses maven for code that will be released, 
ant for the test suite and make for CA cert generation for jtreg tests.

Maven modules certainly simplify River , it organises the code into 
understandable digestible bites.

Cheers,

Peter.



Sent from my Samsung device.
 
  Include original message
---- Original message ----
From: Peter <j...@zeus.net.au>
Sent: 21/04/2017 12:37:09 pm
To: dev@river.apache.org <dev@river.apache.org>
Subject: Recent Progress

 
I've recently reached a milestone regarding testing of the jgdms modular maven 
build (in OSGi bundle format based on River 3.0,) where 99.6% of the qa test 
suite is now passing.

I haven't run the jtreg test suite against it yet, but will do so in coming 
weeks.

Note that at this stage it has not been tested in an OSGi environment.

The following changes have been made to provide support for OSGi:
1. Modules are also OSGi bundles
2. Service implementation modules now depend on proxy / download modules (as 
per Rio module practices).  Serializable objects used by a service have the 
same ClassLoader visibility through the same proxy /  download module at the 
server and client endpoints.  Service implementation classes will not be 
visible to serializable objects and don't need nor should be (a significant 
security advantage reducing both endpoints attack surface).
3. ServiceLoader providers will be automatically registered with the osgi 
service registry.  The discovery implementations are in their own module and 
available from the osgi service registry for example.

I'm planning on using the module structure / layout / relationships as a guide 
for River 3.1

I'm also considering renaming JGDMS to Overture after the Jini experimental pre 
release of the same name.

Note this code has been security hardened in other ways including the latest 
tls v1.2 cyphers, removal of insecure cyphers, input validation for 
deserialization as well as delayed unmarshalling that allows authentication 
before provisioning service proxy modules during discovery and lookup.  I'm not 
sure how popular phoenix activation is,  but it too now has has the option of 
using secure sockets for the rmi registry to prevent unauthorised access.

Regards,

Peter.


Sent from my Samsung device.
  

Reply via email to