Sanjiva Weerawarana wrote:
On Tue, 2005-11-22 at 13:38 +0000, Steve Loughran wrote:

I actually create .aar files with no .class in them, just the declaration, and make sure the real classes are in the same webapp.


Why do you do that? Is there a particular reason you don't want to
package up the service classes in the .aar?

1. when I started using axis2 0.92 you only had one service per aar; I had two EPRs so had no other choice. Given the amount of effort it took to get up to the state where axis.093 worked I have no desire to made needless changes to other parts of the process.




> My concern is making other dependent jars available on the classpath and doing so without affecting other applications.

remember, each webapp has its own classpath in WEB-INF/lib; anything goes in there is private and webapp-wide.


Take a look at
        http://marc.theaimsgroup.com/?l=axis-dev&m=113073286309556&w=2

(This has already been fixed and committed.) So we now have a very
flexible class loading model and I'm unclear why you don't want to use
it and want to drop down to putting everything in the webapp class
loader. You *of course* can do that .. but its not as flexible or
powerful as what we now have in Axis2 (think service versioning for
example (for which I have a proposal in progress)).


2. I am deploying under smartfrog, in a smartfrog started process (http://smartfrog.org/). In a deployment descriptor, deploying the axis2 and jetty components in a new VM is as easy as declaring the process name in the composite descriptor

myWebApp extends Axis2Webapp {

sfProcessName "newProcessName"

}

which itself could be redeployed on a new host

remoteWebApp extends myWebapp {
 sfProcessHost "server.example1.org";
}

During undeployment the entire process will be terminated, so you have 100% sureness that the next deploy will pick up updated jar files, not have legacy data stuck up on the servlet session, etc.

While I think hot deployment is good for iterative dev of things like JSP and HTML pages, when it comes to code with lots of state, a fully automated restart mechanism is far more reliable. Indeed, if you can tear down the entire system image and rebuild it on demand, you have absolute control over system state.

So to conclude, I think my deployment framework is more flexible and powerful than those built into single applications, be they axis2, jboss, tomcat, BIND, Vmware, mySQL whatever. We can handle them all in a single deployment operation over a secure channel, then federate that to the 500 nodes of a supercluster.

All I am trying to do w/ Axis2 is provide a SOAP interface for long-haul deployment, and come to terms with the requirements for WSRF integration that the grid people want.

Dims has been trying to rebuild my stuff, he will probably have different opinions, especially about the complexity/brittleness of the build process, which pushes both ant1.7alpha and the maven2 tasks to its limits.

-Steve

Reply via email to