I think it might make sense to go modular first, I'm a long way along that path already with JGDMS. I could use some help.
It's worth remembering the qa and jtreg test suites combined, are very comprehensive as these, like java, were designed to test specification compliance of third party code. If we separate out the test suite, it can also check binary compatibility. The jtreg suite has additional coverage over the qa test suite. JTReg is not included in Maven Central, although the library is mavenised, I think this would encourage it's use. Your documented investigation of TaskManager's use was very instructive in its replacement with ExecutorService. I suspect reasons people aren't more involved are related to the monolithic build, there's just too much to digest all at once, the build scripts are long and unconventional (use of classdep to build jars that contain duplicate classes) and jtreg requires the library to be downloaded and installed manually. This leads to uncertainty, which leads to fear of test coverage. I reccommend people start by focusing on a small section of code or functionality. Also confirming I've now removed river from the url link and deleted a fork named River. The code can now be found at: https://pfirmstone.github.io/JGDMS/ I will go over the files contained within the repository in the near future to ensure compliance. Regards, Peter. Sent from my Samsung device. Include original message ---- Original message ---- From: Patricia Shanahan <p...@acm.org> Sent: 17/01/2017 10:40:49 pm To: dev@river.apache.org Subject: Re: Summary of my external work I think integrating back as you go along would make more sense, but the real issue is getting more people actively involved in the development. I am not the right person for that - not knowing enough about River-in-practice. Indeed, I would be very happy to turn over the PMC chair. On an unrelated but important issue, there is a big discussion of trademarks on the board@ list. This is probably not the right time to have a PMC member using "river" in a URL. It makes it look as though the River PMC is not policing the trademark correctly. On 1/17/2017 4:28 AM, Peter wrote: > Which changes (a subset) would you consider voting for in an Apache Release? >Is it possible more of these features could be integrated over time? > > Regards, > > Peter. > > > Sent from my Samsung device. > > Include original message > ---- Original message ---- > From: Patricia Shanahan <p...@acm.org> > Sent: 12/01/2017 02:17:40 am > To: dev@river.apache.org > Subject: Re: Summary of my external work > > How do you envisage the future of this work? > > Personally, given the volume of changes outside svn, without any review > or commit messages, I am not sure I would vote for an Apache release > based on this code. Do you have a quorum of PMC members who do feel > comfortable with this process? > > On 1/11/2017 3:43 AM, Peter Firmstone wrote: >> Forked from River trunk just before 3.0 release. >> >> * Security focused: >> >> o Supports updated modern cyphers, support for vulnerable >> cypers removed. >> o Reimplementation of serialization, includes input validation >> and defensive programming. >> o Additional SafeServiceRegistrar interface with lookup method >> that allows clients to authenticate services prior to >> downloading. >> o ServiceDiscoveryManager configured to use new lookup method, >> without changes to API. >> o proxy jar files can contain META-INF permissions.perm files >> with advisory permissions (same format as OSGi local >> permissions). >> o New secure multicast discovery providers that dynamically >> grant download and deserialization permission for >> authenticated lookup services. >> o Phoenix now supports using TLS sockets for Registry. >> o LookupLocator now supports https unicast discovery for >> firewall/proxy traversal. >> * IPv6 Multicast discovery support >> * Better support for Java 9, no longer accessing sun jvm >> implementation packages >> o Phoenix uses RMI Registry now instead of RegistrySunExporter >> o KerberosServerEndpoint reflectively accesses >> com.sun.security.jgss.GSSUtil.createSubject, but only when >> using client token delegation. Delegation not supported on >> other vendors jvm's. >> * Deprecated: >> o RegistrySunExporter >> o SunJRMPExporter >> o ProxyTrust >> >> Currently working on a Modular Maven based build. >> >> * Uniting packages and removing some dependencies to assist OSGi >> developers (like some package changes for non api org.apache.river >> namspaces). >> o org.apache.river.reggie.proxy >> o org.apache.river.reggie.service >> * OSGi bundles with package based dependencies. >> >> >> Looking forward to donating this code to River. >> >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] Reactor Summary: >> [INFO] >> [INFO] JGDMS Project .................................... SUCCESS [ >> 0.712 s] >> [INFO] Module :: JGDMS Collection ........................ SUCCESS [ >> 18.139 s] >> [INFO] Module :: JGDMS Jini Platform ..................... SUCCESS >> [01:17 min] >> [INFO] Module :: JGDMS Loader ............................ SUCCESS [ >> 18.179 s] >> [INFO] Module :: JGDMS Extensible Remote Invocation ....... SUCCESS [ >> 45.867 s] >> [INFO] Module :: JGDMS Resources ........................... SUCCESS [ >> 0099 s] >> [INFO] Module :: JGDMS URL providers and Integrity ....... SUCCESS [ >> 17.804 s] >> [INFO] Module :: JGDMS Activation Platform ............... SUCCESS [ >> 23.309 s] >> [INFO] Module :: JGDMS Service DL Library ................ SUCCESS [ >> 18.373 s] >> [INFO] Module :: JGDMS Lookup Discovery Providers ........ SUCCESS [ >> 17.094 s] >> [INFO] Module :: JGDMS Service Library ................... SUCCESS [ >> 22.786 s] >> [INFO] Module :: JGDMS Service Starter .................... SUCCESS [ >> 27.622 s] >> [INFO] Module :: JGDMS SharedGroup Destroy ................ SUCCESS [ >> 22.416 s] >> [INFO] Module :: JGDMS IIOP ............................... SUCCESS [ >> 13.330 s] >> [INFO] Module :: JGDMS JRMP ............................... SUCCESS [ >> 13.663 s] >> [INFO] Module :: JGDMS Service DL Library UI Factory ...... SUCCESS [ >> 21.488 s] >> [INFO] Module :: Jini 2.1 compatibility .................. SUCCESS [ >> 16.572 s] >> [INFO] Module :: Outrigger ............................... SUCCESS [ >> 0.017 s] >> [INFO] Module :: Outrigger Service Download classes ....... SUCCESS [ >> 15.488 s] >> [INFO] Module :: Outrigger Service Implementation ......... SUCCESS [ >> 27.113 s] >> [INFO] Module :: Outrigger Snaplogstore ................... SUCCESS [ >> 16.609 s] >> [INFO] Module :: Lookup Service ........................... SUCCESS [ >> 0.014 s] >> [INFO] Module :: Reggie Service Download classes .......... SUCCESS [ >> 14.048 s] >> [INFO] Module :: Reggie Service Implementation ............ SUCCESS [ >> 23.095 s] >> [INFO] Module :: Mahalo .................................. SUCCESS [ >> 0.014 s] >> [INFO] Module :: Mahalo Service Download classes ......... SUCCESS [ >> 13.727 s] >> [INFO] Module :: Mahalo Service Implementation ........... SUCCESS [ >> 22.967 s] >> [INFO] Module :: Mercury the Event Mailbox ............... SUCCESS [ >> 0.014 s] >> [INFO] Module :: Mercury Service Download classes ......... SUCCESS [ >> 21.990 s] >> [INFO] Module :: Mercury Service Implementation ........... SUCCESS [ >> 16.790 s] >> [INFO] Module :: Norm .................................... SUCCESS [ >> 0.014 s] >> [INFO] Module :: Norm Service Download classes ............ SUCCESS [ >> 20.415 s] >> [INFO] Module :: Norm Service Implementation .............. SUCCESS [ >> 23257 s] >> [INFO] Module :: Group ................................... SUCCESS [ >> 0.018 s] >> [INFO] Module :: Group Service Download classes ........... SUCCESS [ >> 12.737 s] >> [INFO] Module :: Group Service Implementation ............. SUCCESS [ >> 16.827 s] >> [INFO] Module :: Fiddler the LookupDiscoveryService ...... SUCCESS [ >> 0.018 s] >> [INFO] Module :: Fiddler LookupDiscoveryService Download classes SUCCESS >> [ 21.747 s] >> [INFO] Module :: Fiddler LookupDiscoveryService Implementation SUCCESS [ >> 20.474 s] >> [INFO] Module :: Tools .................................. SUCCESS [ >> 0.018 s] >> [INFO] Tool :: Check ConfigurationFile ................... SUCCESS [ >> 0098 s] >> [INFO] Tool :: Check serialversionUid .................... SUCCESS [ >> 0.105 s] >> [INFO] Tool :: ClassDep ................................... SUCCESS [ >> 0.145 s] >> [INFO] Tool :: Class Server ............................... SUCCESS [ >> 0.084 s] >> [INFO] Tool :: Compute message digest ..................... SUCCESS [ >> 0.115 s] >> [INFO] Tool :: Compute httpmd codebase .................... SUCCESS [ >> 0.144 s] >> [INFO] Tool :: Environment Check .......................... SUCCESS [ >> 0.169 s] >> [INFO] Tool :: Jar wrapper ............................... SUCCESS [ >> 0.100 s] >> [INFO] Tool :: Preferred classes list generator .......... SUCCESS [ >> 0.123 s] >> [INFO] Module :: DebugDyanamicPolicyProvider and SecurityPolicyWriter >> SUCCESS [ 0.109 s] >> [INFO] Module :: Phoenix Activation ...................... SUCCESS [ >> 0015 s] >> [INFO] Module :: Phoenix Download ........................ SUCCESS [ >> 13.895 s] >> [INFO] Module :: Phoenix Common .......................... SUCCESS [ >> 30.621 s] >> [INFO] Module :: Phoenix .................................. SUCCESS [ >> 19.214 s] >> [INFO] Module :: Phoenix Group ............................ SUCCESS [ >> 22.284 s] >> [INFO] Module :: Phoenix Init ............................. SUCCESS [ >> 12.605 s] >> [INFO] Module :: Groovy Configuration ..................... SUCCESS [ >> 6.050 s] >> [INFO] JGDMS Distribution ................................ SUCCESS [ >> 16.285 s] >> [INFO] Module :: JGDMS Service Browser .................... SUCCESS [ >> 4.288 s] >> [INFO] Module :: JGDMS Extra service utilities ........... SUCCESS [ >> 22.972 s] >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] BUILD SUCCESS >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] Total time: 13:33 min >> [INFO] Finished at: 2017-01-11T21:36:17+10:00 >> [INFO] Final Memory: 38M/173M >> [INFO] >> ------------------------------------------------------------------------ >> >> C:\Users\peter\Documents\NetBeansProjects\river-internet\modularize\JGDMS> >> >> Examples of OSGi manifests: >> >> Manifest-Version: 1.0 >> Bnd-LastModified: 1484132752995 >> Bundle-ManifestVersion: 2 >> Bundle-Name: Module :: Reggie Service Implementation >> Bundle-SymbolicName: reggie-service >> Bundle-Version: 3.0.0.201701111105 >> Created-By: 1.8.0 (Oracle Corporation) >> Import-Package: javax.net,javax.security.auth,javax.security.auth.logi >> n,net.jini.activation;version="[3.0,4)",net.jini.config;version="[3.0 >> ,4)",net.jini.constraint;version="[3.0,4)",net.jini.core.constraint;v >> ersion="[3.0,4)",net.jini.core.discovery;version="[3.0,4)",net.jini.c >> ore.entry;version="[3.0,4)",net.jini.core.event;version="[30,4)",net >> .jini.core.lease;version="[3.0,4)",net.jini.core.lookup;version="[3.0 >> ,4)",net.jini.discovery;version="[3.0,4)",net.jini.export;version="[3 >> .0,4)",net.jini.id;version="[3.0,4)",net.jini.io;version="[3.0,4)",ne >> t.jini.jeri;version="[3.0,4)",net.jini.jeri.tcp;version="[3.0,4)",net >> .jini.lease;version="[3.0,4)",net.jini.lookup;version="[3.0,4)",net.j >> ini.lookup.entry;version="[3.0,4)",net.jini.security;version="[3.0,4) >> ",net.jini.security.proxytrust;version="[3.0,4)",org.apache.river.api >> .io;version="[3.0,4)",org.apache.river.api.util;version="[3.0,4)",org >> .apache.river.config;version="[3.0,4)",org.apache.river.constants;ver >> sion="[3.0,4)",org.apache.river.discovery;version="[3.0,4)",org.apach >> e.river.logging;version="[3.0,4)",org.apache.river.lookup.entry;versi >> on="[3.0,4)",org.apache.river.proxy;version="[3.0,4)",org.apache.rive >> r.reggie.proxy;version="[3.0,4)",org.apache.river.reliableLog;version >> ="[3.0,4)",org.apache.river.start.lifecycle;version="[3.0,4)",org.apa >> che.river.thread;version="[3.0,4)" >> Private-Package: org.apache.river.reggie.service >> Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))" >> Tool: Bnd-32.0.201605172007 >> >> <======================================> >> >> Manifest-Version: 1.0 >> Bnd-LastModified: 1484132485762 >> Bundle-ManifestVersion: 2 >> Bundle-Name: Module :: JGDMS Service DL Library >> Bundle-SymbolicName: jgdms-jsk-lib-dl >> Bundle-Version: 3.0.0.201701111101 >> Created-By: 1.8.0 (Oracle Corporation) >> Export-Package: net.jini.admin;uses:="net.jini.core.discovery,netjini >> .core.entry";version="3.0.0",net.jini.entry;uses:="net.jini.core.entr >> y,org.apache.river.api.io";version="3.0.0",net.jini.event;uses:="net >> jini.core.event,net.jini.core.lease";version="3.0.0",net.jini.lease;u >> ses:="net.jini.config,net.jini.core.event,net.jini.core.lease,org.apa >> che.river.api.io";version="3.0.0",net.jini.lookup;uses:="net.jini.con >> fig,net.jini.core.entry,net.jini.core.event,net.jini.core.lookup,net. >> jini.discovery,net.jini.io,net.jini.lease,orgapache.river.api.io";ve >> rsion="3.0.0",net.jini.lookup.entry;uses:="net.jini.core.entry,net.ji >> ni.entry";version="3.0.0",net.jini.lookup.entry.jmx;uses:="net.jini.e >> ntry";version="3.0.0",net.jini.lookup.ui;version="3.00",net.jini.loo >> kup.ui.attribute;version="3.0.0",net.jini.space;uses:="net.jini.core. >> entry,net.jini.core.event,net.jini.core.lease,net.jini.core.transacti >> on,net.jini.entry,org.apache.river.api.io";version="3.0.0",org.apache >> .river.admin;version="3.0.0",org.apache.river.landlord;uses:="net.jin >> i.core.constraint,net.jini.core.lease,net.jini.id,net.jini.security,o >> rg.apache.river.api.io,org.apache.river.lease";version="3.0.0",org.ap >> ache.river.lease;uses:="net.jini.core.lease,net.jini.io,net.jini.leas >> e,org.apache.river.api.io";version="3.0.0",org.apache.river.lookup.en >> try;uses:="net.jini.core.entry,net.jini.lookup.entry";version="3.0.0" >> ,orgapache.river.lookup.util;uses:="orgapache.river.api.io";version >> ="3.0.0",org.apache.river.start.group;version="3.0.0",net.jinilookup >> .ui.factory;version="3.0.0" >> Import-Package: net.jiniconfig;version="[3.0,4)",net.jini.constraint; >> version="[3.0,4)",net.jini.core.constraint;version="[3.0,4)",net.jini >> .core.discovery;version="[3.0,4)",net.jini.core.entry;version="[3.0,4 >> )",net.jini.core.event;version="[30,4)",net.jini.core.lease;version= >> "[3.0,4)",netjini.core.lookup;version="[3.0,4)",net.jini.core.transa >> ction;version="[3.0,4)",net.jini.discovery;version="[3.0,4)",net.jini >> .entry,net.jini.export;version="[3.0,4)",net.jini.id;version="[3.0,4) >> ",net.jini.io;version="[3.0,4)",net.jini.io.context;version="[3.0,4)" >> ,net.jini.jeri;version="[3.0,4)",net.jini.jeri.tcp;version="[3.0,4)", >> net.jini.loader;version="[3.0,4)",net.jini.lookup.entry,net.jini.secu >> rity;version="[3.0,4)",net.jini.security.proxytrust;version="[3.0,4)" >> ,org.apache.river.action;version="[3.0,4)",org.apacheriver.api.io;ve >> rsion="[3.0,4)",org.apache.river.concurrent;version="[3.0,4)",org.apa >> che.river.config;version="[3.0,4)",org.apache.river.constants;version >> ="[3.0,4)",org.apache.river.logging;version="[3.0,4)",org.apache.rive >> r.lookup.entry,org.apache.river.lookup.util,org.apache.river.thread;v >> ersion="[3.0,4)",org.apache.river.thread.wakeup;version="[3.0,4)" >> Private-Package: org.apache.river.proxy >> Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))" >> Tool: Bnd-3.2.0.201605172007 >> >> > >