geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Allman <...@allman.ms>
Subject Re: deploying a resource adapter (fwd)
Date Mon, 09 Jan 2006 12:15:41 GMT
On Mon, 9 Jan 2006, David Jencks wrote:

>>>> 
>
> <snip>
>
>>>> I started looking into the daytrader app you mentioned.  I think I found

>>>> its deployed instance in config-store/28, but it looks like it bundles 
>>>> the activemq and tranql resource adapters under the TradeDataSource and 
>>>> TradeJMS subdirectories, respectively.  Are you saying they don't need to

>>>> be there, that they could be referenced from the daytrader app somehow?
>>> 
>>> They are added by the configuration building process, the simplification 
>>> is that you don't need to include the rars in your ear yourself.  We are 
>>> thinking about a way to make it so deploying a j2ee artifact does not copy 
>>> any of it into the configuration but refers to it in some form in the 
>>> repository, but this will require at least a new classloader and perhaps 
>>> unpacking the nested jars into a flat structure.
>> 
>> I'm trying to get away from using JBoss because their software is buggy and 
>> they're a pain in the ass, but their resource adapter deployment and 
>> configuration is easier and more flexible than what Geronimo currently 
>> offers.  Aside from the issue of being able to share a single rar among 
>> multiple applications, I can also deploy a rar file to JBoss without any 
>> kind of JBoss-specific configuration.  (I understand said resource adapter 
>> is useless without further configuration --- it's the principle that I 
>> don't have to build multiple rar archives, one for each app server 
>> implementation, that matters to me.)
>
> I think there's a communication problem here, but I'm not sure exactly what 
> or where it is.  I hope I can get you to explain what you mean in a way I can 
> understand more easily.  Unfortunately I don't remember all the details of 
> how I wrote the jboss connector stuff, and they might have changed it 
> somewhat in the last couple years, but... what do you mean by deploying a rar 
> file without a plan?  it seems to me that all that is possible is to get the 
> classes into a classloader that can be referenced somehow.  If you want a 
> usable instance, you need a vendor plan and a reference to the ra.xml in the 
> rar and some classloader with the classes in it.

"A rar file without a plan" == a rar file packaged as required by the J2EE 
connector spec and without any app server specific configuration.  I can 
take one of these and deploy it on a JBoss 4 instance by plopping it into 
one of the deploy directories.  Like I said, it needs further 
configuration to define actual connection factory instances, but these can 
be added and modified ad hoc without redeploying the rar file.

> In geronimo, you do roughly the same thing.  There are a couple ways to make 
> the deployment happen, and which you choose depends a lot on whether you are 
> trying to put together a special purpose server for your app or viewing 
> geronimo as something you can't change and just want to deploy your app on. 
> If you are trying to build a server or want to  be able to  distribute your 
> deployed application, you should use the packaging plugin to build a 
> configuration from the rar and your plan.  (soon there will be a offline 
> deployer to let you do this without needing maven).  You can then assemble a 
> server including the .car file generated.  If you want to regard geronimo as 
> immutable, you can use the online deployer, again with the rar file and your 
> plan.  I don't see the difference between putting the rar file in the maven 
> repo or the geronimo repo (geronimo) or "deploying" it without a plan on 
> jboss.
>
> If you build the car file, you will be able to include it in any geronimo 
> server you want: it includes all its classes and is "predeployed".  (the tool 
> support for adding it to an existing server is not too good yet).
>
>
> I'm not familiar with Geronimo's deployment strategy, but it sounds like each 
> deployment module gets its own classloader.  Rather than copy dependencies, 
> couldn't they be referenced via classloader delegation or a similar 
> mechanism?
>
>
> We would like to come up with a way to avoid copying all the classes into a 
> car file, but as I mentioned this will take some classloader tricks. 
> However, I'm not sure how this affects a user.  The copying is done by 
> geronimo during deployment.  As long as you only need to start with one copy 
> of the rar, why do you care how many times geronimo copies it?

Will the deployer transparently update all the copies if I redeploy the 
rar file?

Thanks.

Michael

Mime
View raw message