[gatein-dev] Tomcat Gatein and WCI behaviour

Julien Viet julien at julienviet.com
Thu Oct 8 18:33:33 EDT 2009


Let me time to read and reply to this email Thomas :-)

On Oct 8, 2009, at 9:06 PM, Thomas Heute wrote:

> 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
>>
>
> _______________________________________________
> 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