I took your advice and I am trying to use this project. I have some teething 
pains.

>See https://github.com/42Lines/wicket-bean-validation
>http://repo1.maven.org/maven2/net/ftlines/wicket-bean-validation/
>

I removed the wicketstuff.org jsr303 repository and added the ftlines one. I 
also noticed on the github site that it requires Wicket 1.5.2 and so I switched 
to that. When I checked the dependencies, I saw that the ftlines library 
depends on Wicket 1.4.18, which surprises me a little, especially because its 
parent depends on 1.5-SNAPSHOT. I set the test class by configuring its 
validation in a @Before method:

        @BeforeClass
        public static void initValidation() {
                conf = new ValidationConfiguration();
        }

        @Before
        public void initTester() {
                tester = new WicketTester();
                conf.configure(tester.getApplication());

                tester.startPanel(CategoryTestPanel.class);
                formTester = tester.newFormTester("form");
        }

In the CategoryTestPanel, I created the Form as a ValidationForm. I received 
the following stack trace:

java.lang.NoSuchMethodError: 
net.ftlines.wicket.validation.bean.ValidationForm.visitChildren(Ljava/lang/Class;Lorg/apache/wicket/Component$IVisitor;)Ljava/lang/Object;
        at 
net.ftlines.wicket.validation.bean.ValidationForm.addPropertyValidators(ValidationForm.java:160)
        at 
net.ftlines.wicket.validation.bean.ValidationForm.onBeforeRender(ValidationForm.java:153)
        at org.apache.wicket.Component.internalBeforeRender(Component.java:980)

I think the method may have disappeared between 1.4.18 and 1.5.

Then, I excluded the Wicket dependency from the ftlines library:

<dependency>
        <groupId>net.ftlines.wicket-bean-validation</groupId>
        <artifactId>core</artifactId>
        <version>1.0</version>
        <scope>compile</scope>
        <exclusions>
                <exclusion>
                        <artifactId>wicket</artifactId>
                        <groupId>org.apache.wicket</groupId>
                </exclusion>
        </exclusions>
</dependency>
Now, I get this stack trace:

categoryStartsNull(gov.ic.dodiis.capco.wicket.components.category.CategoryPanelTest)
  Time elapsed: 0 sec  <<< FAILURE!
junit.framework.AssertionFailedError
        at junit.framework.Assert.fail(Assert.java:48)
        at 
org.apache.wicket.util.tester.BaseWicketTester.startComponentInPage(BaseWicketTester.java:1291)
        at 
org.apache.wicket.util.tester.BaseWicketTester.startPanel(BaseWicketTester.java:1242)
        at gov.ic.dodiis.capco.wicket.components. 
category.CategoryPanelTest.initTester(NonUSClassificationPanelTest.java:37)
        ***REDACTED***

I debugged to find that the fail comes from a NoClassDefFoundError:
        java.lang.NoClassDefFoundError: org/apache/wicket/Component$IVisitor

In fact, I Visitor is an independent interface in 1.5. What is the proper way 
to set up my application?

>Martin Grigorov
>jWeekend
>Training, Consulting, Development
>http://jWeekend.com
This communication, along with any attachments, is covered by federal and state 
law governing electronic communications and may contain company proprietary and 
legally privileged information.  If the reader of this message is not the 
intended recipient, you are hereby notified that any dissemination, 
distribution, use or copying of this message is strictly prohibited.  If you 
have received this in error, please reply immediately to the sender and delete 
this message.  Thank you.

Reply via email to