Jeremy,
That is a good point and one of my concerns as well. There will be
fixes that will apply to both code streams and some that apply to just
one or the other. Even with everything in one Apache project it would
be a maintenance issue - but admittedly one that might be a little more
difficult to forget about.
Unfortunately I don't have a good solution for that concern yet apart
from trying to be diligent. It may be that as both Aries and Geronimo
continue to evolve it might make sense to merge both versions back into
a common repository. However, at this point in time and for the near
future, it seems best to me that this branch of the code reside in Aries
while the pure JavaEE branch resides in Geronimo.
Joe
Jeremy Hughes wrote:
Hi Joe, this sounds good and I think Aries is a good place for this.
You mention that the code has diverged from the JEE version. Do you
expect DayTrader/Aries to start life on its own or for there to be
some way of trying to keep the two projects in sync w.r.t bugs fixed,
function added? Perhaps that's just a discussion to have once
DayTrader/Aries can be run on Geronimo.
Thanks,
Jeremy
2010/1/11 Joe Bohn <[email protected]>:
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
--
Joe