Re: 3rd party integration with the Geronimo web admin console

2007-07-16 Thread Nathaniel Harward
Paul McMahan wrote:
 Right now the code is in sandbox/portals and there's a README in there
 if you would like to build it and try it out.  Feedback is most
 definitely welcome.  I would like to move the code into server/trunk
 soon after a 2.0 branch is cut. 

Thanks Paul -- I will check this out today and start playing with it. 
Since this is a sandboxed project, would you prefer feedback in JIRA or
on the dev list?

Nat


Re: Ideas on a rc.d kind of directory

2007-07-16 Thread Nathaniel Harward
Jeff Genender wrote:
 Jason Dillon wrote:
   
 I still think that G could do with a tiny bootstrap JVM to handle all of
 the required flags and properties that are needed now for the server to
 opperate properly (and in a platform neutral manner).  This could also
 be used to spawn clones or cluster nodes.  As well as handling remote
 restarts and recovery from JVM crashes.
 

I'm not sure in practice how it compares to having a [GShell] scripting
environment, but I'll throw this out there anyway: as a plugin developer
writing GBeans anyway, I would probably be happy with being able to
program against system-level concepts in a new plugin-lifecycle GBean. 
A simplified example of my new GBean might look something like this:

public class MyPluginLifecycle implements
o.a.g.bootstrap.GeronimoPluginLifecycle {

  private final o.a.g.bootstrap.BootstrapGBean bootStrap;

  public MyPluginLifecycle(o.a.g.bootstrap.BootstrapGBean bootStrap) {
this.bootStrap = bootStrap;
  }

  public void onInstall() {
ListString jvmArgs = bootStrap.getJVMArguments();
ListString newJvmArgs = new LinkedListString(jvmArgs);
newJvmArgs.add(-Xbootclasspath/p:my-special-bootjar.jar);
bootStrap.setJVMArguments(newJvmArgs);

// Set system properties
bootStrap.setSystemProperty(my-special-name, my-special-value);

// Other stuff...?  bootStrap.getDependencies(),
bootStrap.getVarDir(), etc.?
...
  }

  public void onUninstall() {
// Remove the -Xbootclasspath/p:my-special-bootjar.jar argument
from the JVM arg list, etc.
...
  }

  // GBean glue
  ...
}

Having this would a) be consistent in interface for plugin developers
and b) let the Geronimo core know that it needs to be restarted for a
certain plugin to function properly if it altered something like the JVM
arguments or system properties, and let the user know accordingly.  But
it, of course, lacks the good things about [GShell] scripting environments.

 Ok...cool...wanna help? ;-)

 If we can have a GShell, etc set an env property like JAVA_OPTS, please
 how an example and I am all game ;-)

 Jeff

I will do what I can since I represent the Terracotta use case Jeff
brought up.  I believe I read earlier that GShell is in a sandbox (along
with the portals code I need to use for the GUI half of the plugin),
would it be possible to get a new sandbox project of these two projects
together, or otherwise make them work together?

In the meantime I will start experimenting with the portals code to
cover the first half of the Terracotta plugin, then as the scripting
half shakes out I can be a guinnea pig.

Nat


3rd party integration with the Geronimo web admin console

2007-07-12 Thread Nathaniel Harward
I had a discussion on IRC #geronimo about this, and it was suggested
that I post to the G dev list to continue the discussion:

The Goal:
To put a GUI front end on a downloadable 3rd party Geronimo plugin,
preferably in the adminstration console where administrative security is
already handled and configuration of components is natural.  As far as I
can gather, right now I would have to have my plugin modify the portlet
configuration files directly and force a console reload on startup for
this to happen, but I have also only been looking at the 1.1 code line
so far.

From the IRC discussion:
I chatted briefly with kevan and jgenender about this, and they
suggested that instead of using 1.1 I focus on the 2.0 line since there
was work being done in the area of the administration console.  There
seemed to be some minor discord about where exactly this new code lives
(sandbox vs. trunk) and when exactly it will be released (2.0 or later).

For my part, I'm interested to know what/where this new code is (and
when it will be released is always good too), and what I will need to do
as the plugin writer to integrate my portlet (or something other than a
portlet?) into the new and improved console.

Any help or pointers to the code are much appreciated.

Thanks,
Nat Harward

P.S. -- for those interested this is for a plugin for Terracotta
clustering for Geronimo.