On 6/12/06, Wendy Smoak <[EMAIL PROTECTED]> wrote:
On 6/12/06, Craig McClanahan <[EMAIL PROTECTED]> wrote: > On 6/12/06, Gary VanMatre <[EMAIL PROTECTED]> wrote: > > > > I had to wack my m2 shale repos and then rebuild all of the > > libraries. That was the was the ticket. I'm having trouble building > > shale-test. Is anyone seeing this error? > > > > > > [INFO] [compiler:compile] > > Compiling 34 source files to c:\shale2\mvn_reorg\shale-test\target\classes > > [INFO] > > ------------------------------------------------------------------------ > > [ERROR] BUILD FAILURE > > [INFO] > > ------------------------------------------------------------------------ > > [INFO] Compilation failure > > > > c:\shale2\mvn_reorg\shale-test\src\main\java\org\apache\shale\test\mock\MockServ > > letContext.java:[53,7] org.apache.shale.test.mock.MockServletContextis > > not abst > > ract and does not override abstract method getContextPath() in > > javax.servlet.Ser > > vletContext > > > Hmm ... getContextPath() was added to the Servlet API in 2.4, so you'd get > an error like this if you compiled against the 2.4 version of the API. We > don't explicitly specify a version in the test framework's POM, so for me > (and I'd guess for Wendy too) it's picking up a 2.3 version of the servlet > API. Off by one? I think the getContextPath() method was added in Servlet 2.5, and both of us are correctly compiling against 2.4.
Yep ... it was indeed added in 2.5.
Since Shale as a whole depends on Servlet 2.4, I'm going to go through all > the POMs and make sure we're explicit about the version number ... and also > clean up any problems that this causes (including this one). Look for a > commit later this evening. The <dependencyManagement> section of the shale-parent pom controls the version number, and it has 2.4. It does not need to be specified in each pom. The only way I can reproduce this error is to add <version>2.5</version> to the servlet-api dependency in shale-test/pom.xml.
I'm trying to reduce redundancy by removing the javax.servlet:servlet-apiand javax.servlet:jsp-api dependencies inside the subordinate modules, since they are declared in shale-parent ... but that causes compile errors indicating that no API classes are getting added to the classpath. Shouldn't the subordinate POMs be inheriting this dependency from shale-parent? Gary, can you make sure you've updated everything, or try this with a
fresh checkout, and let us know if it still happens? I think you have an updated shale-test pom, but an old shale-parent pom.
Indeed, you'd have to execute "mvn clean install" from the parent directory to insure that the new parent POM gets installed first. --
Wendy
Craig