OK, so the fault was not in the appserver code brett kindly committed - internally that works fine.
(My apologies for wrongly suggesting it was broken)

The problem is that the container the application instances now see is the server container to which we apply a different realm. OK, so not a problem in itself the real issue is that Jetty service publishes this container to the servlets. plexus-xwork-integration uses it without trouble, as it just grabs the context variables which are the same whether it is the appserver or the application child (as was). plexus-webdav on the other hand uses the container to look up components. When it does this it is not informed of the custom realm and defaults to the [plexus.core] realm which is very wrong.

This is the cause of the 500 errors in archiva etc etc so it needs fixed fast.

the options appear to be:
1) Publish the realm alongside the container with a key such as (PLEXUS_REALM_KEY) [bad idea] 2) Wrap the container so that all methods dependent on the right realm are handled correctly 3) Revert to the old setup where the applications all have their own container 4) Stop publishing the container (as it is misleading now) and publish the context etc that is valid information. This would need a rewrite for webdav to do the lookups externally rather than internally.

My opinion is that:
1) sucks
2) is probably a bad idea
3) is easy, but takes us back to our slightly heavier appserver
4) likely a lot of work impacting much code and may not even work - I am not sure

Please offer your opinions or any suggested fixes, I think we have a long list of folk wanting this wrapped up.

Andy

Reply via email to