Hi,

I wanted to update folks on where we are at with the Geronimo plugin(s).

We have 3 plugins:

1) terracotta-config
2) terracotta-client
3) terracotta-server

terracotta-config - Sets up the configuration files and directory
structure for terracotta.  This never needs to be directly installed by
end users0 since the client and server plugins have a dependency on it
and will install it themselves.

terracotta-client - Downloads the TC jars and sets up the rc.d files for
G, and optionally creates the boot jar depending on whether it exists or
not when G is first run.

terracotta-server - Installs the TC server GBean and allows one to run
the TC server from within G.  This plugin is currently shut-off...more
on this later in this email.

Status
-------
I just finished the client and it looks like it works, albeit you need
to juggle around libs since the Terracotta maven repository is not up to
snuff at this point.

The current Geronimo plugin(s) are built to work against Geronimo 2.1 so
the dependencies at this time are Geronimo 2.1-SNAPSHOT since we have
not released Geronimo 2.1 yet.  That release, I believe, will be coming
in October/November.  At that time, we should think about updating poms,
etc and doing an official release for the Terracotta Geronimo plugin.
The rc.d files are used with the brand-spanking new gsh (G-Shell) which
will hopefully be the default startup engine for G upon release.  Right
now you need to start geronimo with the "gsh startup-server" command
instead of the normal startup.sh script in order to make use of the
necessary rc.d files.

As for building, I would like to see the production level 2.4.3 poms in
the Terracotta Maven repository.  Since the TC 2.5-SNAPSHOT jars are
somewhat broken (the nature of SNAPSHOTS, eh?), I went against 2.4.
However, those don't match up to the TC server that one would download
and according to Steve Harris, they are no good, so it blows up.  The
bottom line is, in order to get this to work at this stage, after you
install the plugin, you need to hand copy a production ready tc.jar to
the G_HOME/repository/org/terracota/terracotta/2.4/terracotta-2.4.jar,
and tcconfig-xmlbeans-generated.jar to
G_HOME/repository/org/terracota/tcconfig/2.4/tcconfig-2.4.jar.  Then a
reboot of Geronimo and it should be clustering.

Here are some milestones that need crossing in order for the plugins to
be production ready:

1) Get the maven repository at Terracotta to have copies of the
production and working jars and update the G-plugin pom to reference
those jars.

2) Get tc-session.jar in the maven repo somewhere.  Right now I have to
place a copy of it in the plugin and directly copy it to
TC_HOME/lib/session.  This is a kludge and increases the size of the
plugin dramatically. It would be nice to be able to obtain the
tc-session.jar from the maven repo and point a property at it to pull it
from the G repository instead of looking for it in TC_HOME/lib/session.
(Maybe this is possible today?? - Let me know)

3) Deploy the geronimo-plugins.xml into the root of your maven
repository which is produced by the maven build (it will be in your
local maven repo after building the plugin).

4) Deploy the plugins (terracotta-config and terracotta-client) into
your maven repo.

There is one additional plugin that I have shut off, which is the TC
server plugin.  This normally would allow you to start/stop the TC
server from within Geronimo, however, the TC server currently does not
shutdown cleanly.  Essentially it does a System.exit() when stopping or
when it encounters an exception.  Even when coding around this, there
are hangs with the socket listeners, so it never really shuts down.
Thus, this is not appropriate to have in an application server since the
hanging sockets can result in an exception, and TC shuts down the entire
application server.  Once the shut down has been cleaned up we can
enable this plugin and have the TC server run inside Geronimo (its
pretty cool).

If anyone has any questions, please let me know.

Thanks,

Jeff
_______________________________________________
tc-dev mailing list
[email protected]
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to