On Oct 31, 2007, at 3:33 PM, Anil Arora wrote:
-----Original Message-----
From: David Jencks [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 31, 2007 3:41 PM
To: [email protected]
Subject: Re: Migrating tomcat to geronimo
On Oct 31, 2007, at 9:57 AM, Paul McMahan wrote:
On Oct 31, 2007, at 12:16 PM, Anil Arora wrote:
I'm doing an experiment porting our application to Geronimo from
Tomcat. I am having a few difficulties with some of the
customization features which I need to also port.
For Tomcat, I have a custom server.xml file, in which I turn off
hot deployment and hardcode the location of my webapplication. I
also have a custom catalina.properties where I can stick my own
jars in the classpath. I do all of this to avoid the extra step
of deploying that application.
So, question is whether or not I can do similar things with
Geronimo. Given the location of the Geronimo installation, I just
want to write a script that starts the server and have it already
know my extra jar files and the location of my webapp without
having to execute the deploy tool.
Can this be done?
I don't know of any way to bypass the deployment process for an
application in Geronimo. You can use Geronimo's hot deployment
feature to avoid some of the manual steps involved in deployment,
but you said that you actually turned that feature off in Tomcat so
I assume it's not an acceptable solution. There has been some
discussion about adding this type of feature so that applications
can be run from within an Eclipse workspace directory, but I don't
think that anything usable has taken shape yet. Feel free to open
a feature request for this at http://issues.apache.org/jira/browse/
GERONIMO
Maybe I'm misinterpreting what Anil is requesting, but it looked to
me as if he might be interested in deploying his application as a
plugin, or just deploying it once and having it in the server, and
that he is looking for some of the features we actually support.
You can include any jars you want scoped to your application
classloader by putting them in appropriate locations in the geronimo
repo and including dependencies on them in the geronimo plan for your
app.
Are you trying to construct a server with your app already deployed
that you can distribute so that users can unpack and start and your
app will be running but they can't deploy more apps? That is really
easy to do in trunk and only slightly harder in released geronimo
versions. Basically you would turn your app into a plugin and use it
to construct a custom server than has only the geronimo components
needed to support the app. If this is what you are aiming for let us
know and tell us which geronimo version(s) you can use and we can
give you more instructions.
thanks
david jencks
Best wishes,
Paul
Yes, this is probably a better way of saying what I want to do. In
the
end, I do want to have something prebuilt that the users can just run.
There's no need to deploy anything else on the server. I was
hoping to
avoid extra coding, but I'm willing to look into this.
So far I don't see why you would have to write any extra code.
Is there a way to have a custom classloader that doesn't use this plan
mechanism? If I'm going to build custom code, I'd might as well write
this. This would help me avoid moving lib files around. One
problem is
that these libraries are used for other command line scripts.
If I understand correctly you want the additional libraries to be in
a particular location rather than putting them in the geronimo
repository? We supply a shared-lib configuration that lets you add
all the jars in a directory into that configurations classloader, so
you might just include that as a parent of your app in the geronimo
plan. Otherwise you can include a SharedLib gbean in your
applications plan directly and the jars will be in the same
classloader as the rest of your app.
I would like to stick with a released version for stability
reasons. I
currently have 2.0.
I recommend you do the following; it may result in a slightly larger
server than you need but is quite a bit simpler on pre-2.1 than the
alternatives to get the smallest possible server.
1. start with one of the minimal geronimo servers (unless you want
e.g. the admin console, in which case you need one of the full
servers or 2.1 :-)
2. deploy your app on the server.
3. edit var/config/config.xml and remove any modules whose name ends
in -deployer (such as tomcat-deployer) (or add an attribute
load="false")
4. remove any extraneaous logs from var/log
5 zip up what's left and distribute it
If all goes well your users will get something they can unzip and run
with no further configuration but they won't be able to deploy any
more apps on it. (If they know enough about geronimo they could re-
enable the deployers, but you can't really protect against stuff like
that; with tomcat they could re-enable the hot deploy directory).
hope this helps!
david jencks
Thanks,
Anil