Currently there is only one deployer slot available for each module type of an EAR. The following snippit from the shows the EAR deployer configuration

<gbean name="geronimo.deployer:role=Builder,type=EAR,config=org/apache/ geronimo/J2EEDeployer"
class="org.apache.geronimo.j2ee.deployment.EARConfigBuilder">
<reference name="EJBConfigBuilder">some:object=name</reference>
<reference name="WebConfigBuilder">some:object=name</reference>
<reference name="ConnectorConfigBuilder">some:object=name</reference>
<reference name="AppClientConfigBuilder">some:object=name</reference>
</gbean>


I strongly suggest that we only run one servlet engine in Geronimo. Both Tomcat and Jetty are pretty large, so I think we should have separate distributions for them. Of course this would be easier if I had moved assembly last weekend.

-dain

--
Dain Sundstrom
Chief Architect
Gluecode Software
310.536.8355, ext. 26

On Dec 6, 2004, at 8:04 AM, Aaron Mulder wrote:

Jacek,
        I'm still not sure what you're trying to achieve.

Right now, it looks like the server configuration files for the
assembly module (in src/plan) have Tomcat settings present but commented
out. In the simple world, if someone wanted to enable Tomcat, they'd need
to comment the Jetty settings and uncomment the Tomcat settings. There's
nothing that needs to be done with the deploy tool to make this work; just
change the server plans and rerun the assembly build. So on that basis,
you ought to be able to remove the deployer call from the Tomcat build
script.


In a more complex world, I think we could include both Tomcat and
Jetty in the same server. However, there would need to be some way to
signify that a particular WAR should be deployed to one or the other. The
deployer just asks each builder in turn whether it can handle a given
module, and we'd need to make sure that either Tomcat or Jetty answered
yes for any given web module. The easiest way to make this work at
present is probably to have the Jetty module deploy any web app with a
WEB-INF/geronimo-jetty.xml, and have Tomcat deploy other web apps. Once a
web app has been deployed by container X, it probably will always be
deployed with container X unless you undeploy it, change it around, and
redeploy it. Down the road, we'd need something more complex, but hey,
it's a start. Still, nothing here requires the deployer JAR to run during
the Tomcat build process.


        So I'm thinking that whichever way you go, you can remove the call
to the deployer JAR from the Tomcat build, and then the Tomcat build
should work OK before the assembly module is built.

Aaron

On Mon, 6 Dec 2004, Jacek Laskowski wrote:
Thanks Aaron! You made me think about it a bit more and I think I found
it :) I thought Geronimo can only have one deployer that can handle a
type (war, ejb, rar, ear, etc.). So, the idea was to comment one of them
- either Jetty or Tomcat builder. However, I think that Geronimo can
host two web module deployers, but the web servers (Jetty and Tomcat)
will have to listen on two different ports. It should really work,
shouldn't it? Let me try it out....


(after a while)

No, no, it won't probably work. It is because while deploying a module,
it's serialized with information what container will deploy it (the
module has a reference to the given-at-deployment JMX query string), so
either it will be overwritten (the later wins) or at deployment the
later won't be invoked at all.


I will definitely have to take a look at the code.



Reply via email to