Vincent, Allready in the docs : sorry, I did not check. Where in the docs :Probably in a checklist of what to do and what not to do : If I eventually write something in the Programmers handbook for the project I am involved in I will submit this to you so you can use whole or part if useful ( my time now is sparse )
Wish I had time to help, if I get any I will. Thanks Gunnar -----Original Message----- From: Vincent Massol [mailto:[EMAIL PROTECTED]] Sent: 15. mars 2002 20:06 To: 'Cactus Users List' Subject: RE: Context environment vars in tested servlet Hi Gunnar, > -----Original Message----- > From: Gunnar Ole Skogen [mailto:[EMAIL PROTECTED]] > Sent: 28 February 2002 07:09 > To: [EMAIL PROTECTED] > Subject: Context environment vars in tested servlet > > Hi, > No big deal , but: > The servlet I am testing with Cactus has environment variables in its > war's > web.xml. > These are not awailable to it when testing from Cactus. > I guess this is because the ServletRedirector runs the Servlet class to be > tested itself ? yes. > A warning about this in the docs is probably in place ? I thought is was there ... :-). In what location in the Cactus documentation would you like to see this warning ? Could you submit a patch ? :-) > Possibilities to get around this: > 1) Put the env vars into the war of the ServletRedirector : - complicates > my > ant build with xsl transform etc.... > 2) Argue that a servlet should not do processing needing such : ) -> : > 3) Put the env vars in a more global place : - Bad design solution when > these are only needed in one place 4) Put the environment variables under the ServletRedirector's definition in web.xml (officially recommended way in Cactus) 5) If you need to have the same parameters and different values or if you want to separate per test case, have several entries for the ServletRedirector in web.xml. Ex: <servlet> <servlet-name>ServletRedirector</servlet-name> <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-c lass> <init-param> <param-name>param1</param-name> <param-value>value1 used for testing</param-value> </init-param> </servlet> <servlet> <servlet-name>ServletRedirector_TestOverride</servlet-name> <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-c lass> <init-param> <param-name>param2</param-name> <param-value>value2 used for testing</param-value> </init-param> </servlet> and the in your test case : public void beginRedirectorOverride(WebRequest theRequest) { theRequest.setRedirectorName("ServletRedirectorOverride"); } , the default being to use the redirector defined in cactus.properties. -Vincent P.S. 1: This subject has been previously discussed on this mailing-list and we haven't found yet a good solution to it. P.S. 2: One other solution would be to get rid of the Cactus redirector and instead intercept the real servlet's service() method. This is possible using several technologies like BCEL, AspectJ, etc. This is a research area I am working on (albeit very slowly). If you wish to help, you are very welcome to join us ! :-) Thanks > > > - Gunnar Skogen > > -- > To unsubscribe, e-mail: <mailto:cactus-user- > [EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:cactus-user- > [EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
