Dennis Reedy wrote:
For new users, I think offering a couple of Maven archetypes would be
useful,
Agree here, and not just for new users.
One of the predominant concerns for me, is the security of the endpoints so that
rogue services and users on a LAN can not exploit the test environment, as well
as creating separation of legitimate users on the same network. What this
implies to me, is that lookup groups should be employed, and secure jeri with
SSL endpoints using machine generated rsa-2048 certs should be the default.
In a test environment, on the same machine, running out of an IDE, the
configuration of all of this would be under the control of the IDE
build/deployment environment (maven, ant or other build tools can do all the
work so that it's not a "ide dependent" plugin).
Again, creating a simple com.sun.jini.start.ServiceStarter config should be
straight forward, to start all of River. To start selected services, something
more IDE specific would perhaps be needed, or some standard config file that
simply lists which River services you need.
The verbosity of the com.sun.jini.start.ServiceStarter config file is the issue
I think we can deal with super easy. Taking a simple list of services to start
and having the file generated would be a tool to help developers. But then
being able to start ServiceStarter with that config automatically would be icing
on the cake.
I am really interesting in the Groovy config work that Dennis has done with Rio.
The issue of course, is that we'd need to think seriously about only
supporting a Maven environment to help developers pull in Groovy as a dependency
if we chose to use groovy based config (it is an enhancement because it does
make some things easier).
Imagine something simple like the following steps.
// Generate a new certificate file
rsaCert = Utilities.rsaCert( 2048 );
// Get the list of services we want to deploy.
services = new String[] {
"reggie", "mahalo", "javaspaces", "norm" };
// Get the configuration with the cert specified for use
config = Utilities.secureConfig( rsaCert, services );
Utilities.deployRiver( config );
Now this doesn't take into consideration all the customization that might occur,
but it would use AllPermission for anything that connects with that certificate.
Logging configuration is another issue. My http://logman.dev.java.net project
has a Jini service that deploys as a Java LogManager instance using command line
arguments to specify, through properties, how to deploy it. Something like that
might be another thing to include as a "better" River environment for testing.
Just thinking out loud...
Gregg Wonderly