You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Kevan Miller <ke...@gmail.com> on 2008/06/02 20:57:06 UTC

Re: svn commit: r660588 [1/3] - in /geronimo/samples/trunk: ./ samples/ samples/CustomerService/CustomerService-ear/ samples/CustomerService/CustomerService-ear/src/main/resources/ samples/CustomerService/CustomerService-ear/src/main/resources/META-INF/ sa...

On May 27, 2008, at 5:12 PM, David Jencks wrote:

>
> On May 27, 2008, at 1:31 PM, Joe Bohn wrote:
>
>>
>> David,
>>
>> Thanks for committing this to trunk.  It will be great to have the  
>> itests for samples.
>>
>> I have few questions on the shared sample datasource plugin (not  
>> just for David to answer):
>>
>> 1) Big Picture Question:  Is this what the users are typically  
>> expecting when they work through a sample regarding any necessary  
>> datasource entries?  Until now the samples included the datasource  
>> definitions within the application (ear).  They could follow the  
>> sample without using the plugins at all.  Now it would appear that  
>> they must install the SampleDatasource plugin before they can  
>> install any sample and they will not see the datasource definition  
>> within the sample itself.  David and I have already discussed this  
>> on IRC some but I was wondering what others thought.
>
> My point of view here is that we should be trying to demonstrate  
> best practices for real projects whenever possible.  IMNSHO best  
> practice is currently to deploy datasources, jms stuff, etc as  
> separate plugins so its easy to switch.  For instance, switching  
> between derby and db2, and switching between test and production  
> setups.  The samples pretty much require you to be using maven  
> anyway, so I think that demonstrating and encouraging use of the  
> plugin infrastructure in the "best" way is a good idea.

I guess I agree. However, I'd also like to be sure we have good  
documentation on how to define datasource definitions in their  
applications, and make sure we identify this alternative in our  
samples documentation.

>
>
> Note that the datasource plugin is built as one of the sample  
> modules, so its entirely visible, just not in the individual sample  
> project.
>
> We could also demonstrate packaging the datsource/jms in with the  
> sample app as alternative plugins.  To do this I'd recommend using  
> the external-module feature so we don't have to actually package the  
> tranql code into each ear.  Then the apps could be completely  
> datasource free and we'd have 2 plugins (actually 4, 2 ds types X 2  
> web servers).

I agree.

>>
>> 2) It seems that the datasource is still being defined within the  
>> ear (at least partially).  The geronimo-application.xml for each  
>> sample still includes a module for the tranql-connector-ra-1.3.rar  
>> and a reference to the application specific pool definition in the  
>> alt-dd. See for example, /bank-ear/src/main/resources/META-INF/ 
>> geronimo-application.xml.  I'm not well versed on this but I  
>> thought this meant that the application was still defining a pool  
>> based upon BankPool.xml.
>
> These plans aren't used in the plugin construction.  If we switched  
> them to use the external-module feature then the ear could also be  
> deployed directly to the server, not as a plugin, using these plans.
>
> I think it would be a good idea to make sure the plugin plans are  
> complete and don't rely on any partial plans in the ears.  I didn't  
> work on this step.
>>
>>
>> 3) The pool definitions are slightly different for the various  
>> samples.  I think most of this was just due to different names for  
>> the pools. However, there are some other differences.  Some include  
>> a username and others do not.  Also, the TimeReportPool.xml  
>> includes a gbean definition for the TimeReportRealm.  How are these  
>> differences addressed in these changes and are the samples still  
>> functional?
>
> As noted above, the geronimo-application.xml plans in the ears arent  
> used for the plugins.  I made all the samples deploy as plugins into  
> framework server.  To do this yourself run
>
> mvn clean install -Pit
>
> I didn't write any actual tests of the plugins beyond this "fail if  
> they don't deploy" "test".  More tests would be great but perhaps  
> beyond what we can really do for 2.1
>
> We should certainly uniformize the internal plan datasource  
> definitions if we don't remove them.

I'd certainly expect that we'd have at least stepped through the  
actual sample apps. Any volunteers?

--kevan