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

Reply via email to