axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Gainty <mgai...@hotmail.com>
Subject RE: Rampart transport binding integration tests?
Date Wed, 16 Jul 2014 22:33:18 GMT


Date: Wed, 16 Jul 2014 23:32:01 +0300
Subject: Re: Rampart transport binding integration tests?
From: detelinyordanov@gmail.com
To: java-dev@axis.apache.org

I'm using Maven Eclipse plugin. Basically running "mvn eclipse:clean eclipse:eclipse" from
the root project then importing everything under /modules. Afterwards I switch the projects
to use Java 1.6 since I saw this is being used for the nightly build, while by default Maven
generates "J2SE-1.5" JRE container for them, at least on my side.


Actually, I just figured out a way to execute RampartTest integration test while keeping Rampart
core module using servlet api 2.3. What needs to be done is to exclude servlet api dependency
from all dependencies to other Rampart modules in Rampart integration module, then configure
the JUnit test runner in Eclipse to "only include exported entries", which means that it would
not include the classpath libraries of other projects, which are not explicitly marked as
exported.

This is a somehow hidden option in Eclipse that I did not know about, though I use Eclipse
extensively. I found out about it in the following blog post:
http://robertmarkbramprogrammer.blogspot.com/2011/11/eclipse-make-sure-your-unit-test-uses.html


Also, I found a bug report in Eclipse for the same, apparently other developers already complained
that Eclipse JUnit runner is including all referenced projects' libraries in the run classpath:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=306220


All this means that I can change the patch and revert Rampart core module to use servlet api
2.3 and configure Rampart integration module to use 2.5. Still, I think that many people might
not know how to reconfigure their Eclipse and they will struggle with the duplicate servlet
jars and the exception that I mentioned before. I can do that if you think this the preferred
solution.


Detelin
MG>(Tomcat specific) servlet-api is not supposed to be seen by webapp classloader ..here
is the error I get
servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class:
javax/servlet/Servlet.class
MG>(Tomcat specific) doc:
Last, any JAR file that contains Servlet API classes will be explicitly
ignored by the classloader — Do not include such JARs in your web
application.
All other class loaders in Tomcat follow the usual delegation pattern.
MG>(Tomcat specific) 7.0.50 install deploys 2.5 servlet-api-2.5.jar to $CATALINA_HOME\lib\servlet-api-2.5.jar
MG>http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html

On Wed, Jul 16, 2014 at 9:54 PM, Andreas Veithen <andreas.veithen@gmail.com> wrote:

Do you use maven-eclipse-plugin or m2e to import Rampart into Eclipse?



Andreas



On Wed, Jul 16, 2014 at 12:39 AM,  <detelinyordanov@gmail.com> wrote:

> Sure, we could leave rampart core compile against servlet api 2.3 from axis2

> kernel and exclude it from rampart integration so that Jetty would run with

> 2.5, but still if all rampart modules are imported in Eclipse IDE as

> projects, then both servlet api versions are available on the classpath and

> when running Rampart Jetty-based tests in Eclipse, one gets:

>

> java.lang.SecurityException: class "javax.servlet.ServletRequestListener"'s

> signer information does not match signer information of other classes in the

> same package

>

> If nobody is using Eclipse to run tests but sticking to command-line then

> this approach would work. I also tried to find a Jetty version that uses

> servlet api 2.3 but even the oldest 6.0 is using 2.5.

>

> Regards,

>    Detelin

>

>

>

> On Tue, Jul 15, 2014 at 10:28 PM, Andreas Veithen

> <andreas.veithen@gmail.com> wrote:

>>

>> Yes, that is a very good idea.

>>

>> I had a quick look at the patch. I think that we need to refine a bit

>> the part about the Servlet API versioning. More on this later.

>>

>> Andreas

>>

>> On Tue, Jul 15, 2014 at 12:36 PM,  <detelinyordanov@gmail.com> wrote:

>> > Hi again,

>> >    I opened an enhancement request for Rampart to re-enable the

>> > transport

>> > binding integration tests:

>> >

>> > https://issues.apache.org/jira/browse/RAMPART-416

>> >

>> > I provided a patch that introduces usage of embedded Jetty 7 web

>> > container

>> > with SSL support, modifies RampartTest to use that instead of the

>> > UtilServer

>> > and re-enables transport binding integration tests.

>> > Please let me know if you have any concerns with it, I will be glad to

>> > improve it.

>> >

>> > Regards,

>> >    Detelin

>> >

>> >

>> > On Mon, Jul 14, 2014 at 12:18 PM, <detelinyordanov@gmail.com> wrote:

>> >>

>> >> Hi Rampart devs,

>> >>    While working on a Rampart extension for Kerberos authentication

>> >> over

>> >> transport binding, I was looking into implementing an integration test

>> >> in

>> >> Rampart, but noticed that transport binding (https) tests are not

>> >> supported

>> >> at the moment, since it uses Axis2 SimpleHttpServer which does not

>> >> support

>> >> https. Are there any plans to use a regular web container (e.g. Jetty)

>> >> to

>> >> enable transport binding tests? I can verify if Jetty Maven plugin can

>> >> be

>> >> used for this purpose, but wanted to check whether this has not already

>> >> been

>> >> attempted in the past. Any comments on this are welcome.

>> >>

>> >> Thanks,

>> >>    Detelin

>> >

>> >

>>

>> ---------------------------------------------------------------------

>> To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org

>> For additional commands, e-mail: java-dev-help@axis.apache.org

>>

>



---------------------------------------------------------------------

To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org

For additional commands, e-mail: java-dev-help@axis.apache.org




 		 	   		  
Mime
View raw message