The following items are being worked for a Samples 2.1 release.
This is the first release of samples. Therefore, there are several issues/questions that must be addressed. Below there is a lsit of questions/issues and actions/statements regarding how we are proceeding and why.
General Sample work items:
item |
person |
status |
---|---|---|
Upgrade to genesis 1.4 |
Joe Bohn |
|
Update legal files - validate headers |
Joe Bohn |
|
Remove async-http |
Joe Bohn |
|
Remove snapshot references |
Joe Bohn |
|
Make archetype work for plugins |
Joe Bohn |
|
Plugins for all samples |
Jarek Gawor |
|
Common datasource plugin |
David Jencks |
|
standardize naming conventions |
David Jencks |
|
eliminate unneeded ears |
David Jencks |
|
reformat code |
David Jencks |
|
eliminate table collision in samples |
Joe Bohn |
|
consistent/standard doc template for all samples |
|
|
Individual Sample Status (please initial each status item):
Several folks have worked on various samples. The initial results below (JAB-init) reflect an initial, point in time status by Joe Bohn on 6/11. At that point in time a indicated that the sample deployed and was functional while a indicated that there were either errors during deploy or running the sample. If you worked on one or more of these samples and validated them please update the respective fields indicating that you updated the sample/doc and that you verified it on the tomcat and jetty (removing my initials below where appropriate).
Sample |
Update Sample |
Validated in Jetty |
Validated in Tomcat |
Updated Doc |
issues/concerns |
---|---|---|---|---|---|
app-per-port - Running multiple web apps on different ports |
|
n/a |
JAB-init |
|
|
bank - EJB sample application |
|
JAB-init |
JAB-init |
|
|
calculator=stateless-pojo - Using EJB 3.0 functions |
|
JAB-init |
JAB-init |
|
|
dbtester - DB Pool Testing Sample application |
|
JAB-init |
JAB-init |
|
|
inventory - Simple Database Access Application |
|
JAB-init |
JAB-init |
|
|
jaxws-calculator - Simple Web Service 2. JAX-WS |
|
JAB-init |
JAB-init |
|
errors on jetty deploy and run |
jms-mdb-sample - JMS and MDB Sample Application |
|
JAB-init |
JAB-init |
|
|
ldap-sample-app - LDAP Sample Application |
|
JAB-init |
JAB-init |
|
|
myphonebook - Very Simple Entity EJB Example |
|
JAB-init |
JAB-init |
|
|
mytime - Very Simple Session EJB Example |
|
JAB-init |
JAB-init |
|
|
sendmail - Using Geronimo Default JavaMail Session |
|
JAB-init |
JAB-init |
|
|
timereport - Web Application Security Sample |
|
JAB-init |
JAB-init |
|
|
customer-service - Simple EJB application with JPA entity |
|
|
|
|
|
jsp-examples |
|
JAB-init |
JAB-init |
n/a |
view source has issues |
servlet-examples |
|
JAB-init |
JAB-init |
n/a |
view source has issues |
Misc questions/issues
How often will samples be released?
We will release samples for each major Geronimo release. If possible, we will work to ensure that samples released for a major release (such as 2.1) will continue to work with subsequent minor releases (such as 2.1.1). However, if this cannot be achieved then we will release samples for each minor release as well.
How will samples be versioned?
The version of the released samples will match the intended major Geronimo release version.
Will all samples follow the archetype?
No. While the archetype is convenient to create new samples the structure of the samples that are created can be confusing at times if it is a web only application. This is because the archetype assumes it will create an enterprise application and always creates an ear structure. Where appropriate the archetype ear structure will be followed but for web only applications only a web structure will be released.
Should Jetty samples pre-req Jetty and Tomcat samples pre-req Tomcat?
This was initially the case. However, this was changed so that the plugins could be installed in a framework server without the jetty or tomcat prereq being present (the integration tests in trunk currently require this). There was opposition to restoring the defaults because it was thought a common mechnism to run the samples would be in the *-jetty/target directories.
Should we move the samples back into the server to ensure that they are released concurrently?
There was opposition to this suggestion. The primary argument seemed to be that the samples can be released independently and therefore should be released independently to demonstrate the plugin nature of Geronimo and avoid huge releases.
Will there be a manual description of how to create the sample datasource rather than using the plugin?
We may attempt to provide some description for those interested. However, the creation of the datasource is generally not particularly relevant to the samples we currently have. Therefore, it is considered adequate to have a note about installing the datasource plugin prior to manually installing the samples.
Will we be providing a source zip for the samples?
The user can obtain the source for the samples using svn. This is the recommended approach. If necessary we can consider also delivering a zip of the source along with the distribution of the release (much as we currently do for the Geronimo server source).
What additional software is required to build the samples?
- maven (version 2.0.7 for Geronimo 2.1 and 2.0.9 for later versions).
- svn
Can a user build an individual sample or must all samples be built?
This is still an open question. While it should be possible to build just a particular sample it is recommended to build all samples from the root. In the future we may require that the samples be built collectively to make the process of managing dependencies manageable.
Must a user understand Geronimo plugins to gain value from the samples?
No. While it is true that plugins have been integrated with the samples and a user can gain an understanding of the plugin structure from most samples a detailed knowledge of plugins is not necessary to utilize and benefit from the samples. The fundamental ear/war structure is unchanged and the appropriate Geronimo deployment descriptors are generated and can be utilized without understanding Geronimo plugins.
So just how do the plugins influence the samples then?
- The datasource is implemented as a plugin and must be installed for certain samples to function.
- The Geronimo deployment plans are not included in the source and are generated as a result of building the plugins. We will direct the user to look at the build results to view the final deployment plan and include the content of the deployment plan in the wiki for each sample for cases where the user just wants to view and not build the samples.
Duplication in Samples
It is the consensus that is it acceptable to have some duplication between samples if the purpose of the duplication is to provide some samples that are very simple (for basic topic introduction) and some that are more complex (to more closely mirror a real life example).