Greetings all,
I've been working on a version of the Geronimo Daytrader performance
benchmark to leverage the enterprise OSGi application programming
model.
I've been doing this work in my sandbox under Apache Geronimo
(https://svn.apache.org/repos/asf/geronimo/sandbox/jbohn with the
most
recent changes under daytrader-bp-new).
I'd like to find a more permanent location for this work and get
it out of
my sandbox.
Here is a brief description of what I have thus far in sandbox:
- A restructured Daytrader to support an enterprise OSGi application
programming model including blueprint, web container, jndi, jpa,
etc...
- To further support this programming model I have also
reorganized the
classes, packages, and bundles.
- Simplification and removal of content not yet available in the
enterprise
OSGi application programming model such as EJB support and removal
of
Geronimo specific artifacts such as the plugins.
- Refactoring the way components gain knowledge of each other and
interact
to support blueprint concepts such as reference list and reference
listeners.
- Support for just two different persistence mechanisms - direct
JDBC and
direct JPA which are currently included in the enterprise OSGi
application
programming model.
- packaging using the Aries Application concepts.
After seeing the recently introduced Apache Aries Blog Sample and
its
assembly for Equinox it encouraged me to do something similar for
Daytrader
so that I could get this running with Apache Aries. I now have a
further
subset of my sandbox work that could be added as a peer to the
blog-sample
which includes just the JDBC persistence mechanism, is hard-wired
to Derby,
and includes an Equinox assembly to run it. This is not currently
in any svn
because I did it on my local repository under aries/trunk/samples
with hopes
of checking it in there.
I think it is time to get this code to a better home and I'm
currently
thinking that aries/trunk/samples is a good place to start. For
now I would
check in just the version with JDBC and the equinox assembly.
However, I
would extend this with other capabilities already in my sandbox
for JPA
persistence, the Aries Application packaging, etc... as these become
available in Aries.
I'm interested if others agree with this approach, if it seems
like a
worthwhile endeavor, and if it is acceptable to include this code
under
aries/trunk/samples.
Here are the current discussion points and concerns as I see them:
1) Duplication of code between Geronimo and Aries if I check it
into Aries.
However, the code is already split from the JavaEE Daytrader
version and I
doubt it would be possible to fully merge the code base and keep
both the
JavaEE and Aries versions working from a common code base without
cluttering
up the code with environment checks. So, even if we keep it all in
Geronimo I think we will still end up with multiple code streams.
2) The Equinox assembly version for DayTrader currently doesn't
exploit
anything directly in Apache Geronimo. It depends upon the pax web
container
among other things. It is certainly my intention that this should
run on
Geronimo when Geronimo supports osgi rfc 66 among other things.
However it
seems strange to include this in Geronimo at this point in time.
3) Daytrader has always supported running in multiple web
containers. I
think moving this enterprise OSGi application version of Daytrader
to Aries
further supports this goal and ensures that it won't become too
tightly
coupled to Geronimo.
My apologies for the length of this description. Please let me
know your
thoughts - especially if you have any concerns with checking this
version of
Daytrader in under
https://svn.apache.org/repos/asf/incubator/aries/trunk/samples
Thanks,
Joe