[gatein-dev] Tomcat Gatein and WCI behaviour
Thomas Heute
theute at redhat.com
Thu Oct 8 15:06:19 EDT 2009
On 10/08/2009 05:51 PM, Matt Wringe wrote:
> On Thu, 2009-10-08 at 16:57 +0200, Julien Viet wrote:
>
>> Hi Matt,
>>
>> can you tell us what happens if a war file integrated with the non
>> native solution (either as the Generic or eXo legacy) is deployed
>> inside a server that has a native integration ?
>>
> The will refer to the generic and eXo legacy servlets/servlet listerners
> as just the generic servlet to keep things simple, they do basically the
> same thing.
>
> When the generic servlet is initialized it will register itself with the
> GenericServletContainerContext.
>
> If the GenericServletContainerContext is registered with a
> ServletContainer, then the webapp will registered with the
> ServletContainer.
>
> If the GenericServletContainerContext is not registered with a
> ServletContainer, then the webapp will be added to a list. Nothing will
> happen with that list until/unless the GenericServletContainerContext
> registers with a ServletContainer.
>
> In order for the GenericServletContainerContext to register with a
> ServletContainer, it needs to be added as a listener to the integration
> war's web.xml.
>
> When using the native integration, we don't specify the
> GenericServletContainerContext in the web.xml so it never gets
> registered with a ServletContainer.
>
> The native integration uses its own ServletContainerContext which gets
> register with the ServletContainer. This is done by specifying a special
> servlet to use in the web.xml of the integration war.
> The native integration monitors all deployed webapps and will register
> them with the ServletContainer It doesn't matter if they use the special
> servlets or not.
>
> If one of these webapps happens to have a generic servlet, the servlet
> will still be registered with the GenericServletContainerContext, but
> since the GenericServletContainerContext is not registered with the
> ServletContainer, it is just added to the list and forgotten
>
Julien,
Matt says that he has all the scenarios we've talked about working with
the container specific impl (existing eXo portlet, existing JBoss Portal
portlets), should we just go and proceed ? I don't understand your
issues at this point.
Thomas.
>>
>> On Oct 8, 2009, at 4:44 PM, Matt Wringe wrote:
>>
>>
>>> [sorry for the long email]
>>>
>>> The behaviour between the Tomcat and JBoss versions of GateIN is
>>> different in regards to the deployment of portlets.
>>>
>>> The WCI module has two different ways in which portlets can be
>>> deployed:
>>>
>>> - generic deployment: the web.xml of the portlet contains a special
>>> servlet or servletlistener which discovers the portlet.
>>> The special servlets add their webapp to a list which wait for a wci
>>> generic listener to be run. If the generic listener is not run, then
>>> the
>>> list still gets created but nothing happens with it.
>>> This is similar to how the eXo portal would handle portlet discovery.
>>>
>>> - container specific: the server is setup to intercept wars being
>>> deployed. The portlet itself doesn't need to have anything special
>>> done
>>> to it so that it can be deployed (ie no special servlets/listeners
>>> needed). This setup will find portlets regardless if the special
>>> servlets are added or not.
>>> The special servlet/listeners will still create the list of webapps,
>>> but
>>> since the wci generic listener is not deployed nothing will happen
>>> with
>>> that list.
>>> This is similar to how the JBoss portal would handle portlet discovery
>>> (ie nothing special needed).
>>>
>>> In order to determine which type to use we need to specify it in the
>>> web.xml of the integration war. They are mutually exclusive, so if you
>>> specify both in the integration war then the first one that is started
>>> will be used.
>>>
>>> In the JBoss version of GateIN we use the container specific
>>> implementation. This means we have (mostly) backwards compatibility
>>> with
>>> portlets that would have worked on JBoss Portal or eXo portal.
>>>
>>> In the Tomcat version of Gatein we use the generic implementation.
>>> This
>>> means we have (mostly) backwards compatibility with portlets that
>>> would
>>> have worked on eXo portal.
>>>
>>> The Tomcat version can be switched to use the container specific
>>> implementation by removing the commenting around the servlet in its
>>> web.xml (and commenting out the listener).
>>>
>>> I would like to switch the behaviour of the Tomcat version to use the
>>> container specific wci implementation so that both versions behave the
>>> same and so that we can get backwards compatibility with JBoss portal
>>> portlets.
>>>
>>> Is there any objections to switching over to this behaviour?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> gatein-dev mailing list
>>> gatein-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/gatein-dev
>>>
>>
> _______________________________________________
> gatein-dev mailing list
> gatein-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/gatein-dev
>
More information about the gatein-dev
mailing list