Wicket
  1. Wicket
  2. WICKET-1737

wicketTester does not find HTML mark-up if custom location is used.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.3.4, 1.4-M3
    • Fix Version/s: 1.3.5, 1.4-RC1
    • Component/s: wicket
    • Labels:
      None

      Description

      If a custom HTML mark-up location is used as described in the ApacheWicket Wiki the wicketTester does not find mark-up to render pages.

      refer to:
      http://cwiki.apache.org/WICKET/control-where-html-files-are-loaded-from.html#ControlwhereHTMLfilesareloadedfrom-InWicket1.3

      Nevertheless running the application with ApacheTomcat 6.0.16 everything renders fine.

      Remark:
      wicketTester has been instanciated using custom test application extended from the application used, overriding newSession for different purpose.

      1. sample1737-1.3-SNAPSHOT.zip
        22 kB
        Timo Rantalaiho
      2. sample1737.zip
        13 kB
        KsTN FK

        Activity

        Hide
        Timo Rantalaiho added a comment -

        You're welcome, and thanks to your for reporting and testing. I now applied this to trunk (1.4) as well.

        Show
        Timo Rantalaiho added a comment - You're welcome, and thanks to your for reporting and testing. I now applied this to trunk (1.4) as well.
        Hide
        KsTN FK added a comment -

        I just added your fix to your live project and now everything works fine with JUnit.
        Thank you, once again for your support.

        Show
        KsTN FK added a comment - I just added your fix to your live project and now everything works fine with JUnit. Thank you, once again for your support.
        Hide
        KsTN FK added a comment -

        Yes!

        May be this was a refresh problem - now it works!

        Thank you very, very much for the fix and best regrads from Germany.

        Show
        KsTN FK added a comment - Yes! May be this was a refresh problem - now it works! Thank you very, very much for the fix and best regrads from Germany.
        Hide
        Timo Rantalaiho added a comment -

        A version of the error-producing quickstart with wicket dependency updated to 1.3-SNAPSHOT

        Show
        Timo Rantalaiho added a comment - A version of the error-producing quickstart with wicket dependency updated to 1.3-SNAPSHOT
        Hide
        Timo Rantalaiho added a comment -

        Hmm, what a pity. Let's see. With 1.3.4 I get this and mvn clean test failing

        thrantal@poro:~/work/sample1737$ mvn clean test | grep 'Attempting to locate resource' | grep 'sample1737/HomePage'
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869

        Then I upgrade to 1.3-SNAPSHOT

        thrantal@poro:~/work/sample1737$ perl -pe 's+<wicket.version>1.3.4</wicket.version><wicket.version>1.3-SNAPSHOT</wicket.version>' -i pom.xml

        thrantal@poro:~/work/sample1737$ mvn clean test | grep 'Attempting to locate resource' | grep 'sample1737/HomePage'
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' on path [folders = [src/html], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' on path [folders = [src/html], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869

        and the build passes, too.

        I have it working both with Sun Java 1.6.0_10-beta-b25 and 1.5.0_16-b02.

        Are you sure you have got a fresh 1.3-SNAPSHOT? Could you try removing wicket 1.3-SNAPSHOT jars from your ~/m2/repository?

        I'm also attaching my version of the quickstart with which I'm unable to produce the problem (sample1737-1.3-SNAPSHOT.zip) .

        Show
        Timo Rantalaiho added a comment - Hmm, what a pity. Let's see. With 1.3.4 I get this and mvn clean test failing thrantal@poro:~/work/sample1737$ mvn clean test | grep 'Attempting to locate resource' | grep 'sample1737/HomePage' DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869 DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869 DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869 Then I upgrade to 1.3-SNAPSHOT thrantal@poro:~/work/sample1737$ perl -pe 's+<wicket.version>1.3.4</wicket.version> <wicket.version>1.3-SNAPSHOT</wicket.version> ' -i pom.xml thrantal@poro:~/work/sample1737$ mvn clean test | grep 'Attempting to locate resource' | grep 'sample1737/HomePage' DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' on path [folders = [src/html] , webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en_US.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869 DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' on path [folders = [src/html] , webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_en.html' using classloader sun.misc.Launcher$AppClassLoader@1a16869 and the build passes, too. I have it working both with Sun Java 1.6.0_10-beta-b25 and 1.5.0_16-b02. Are you sure you have got a fresh 1.3-SNAPSHOT? Could you try removing wicket 1.3-SNAPSHOT jars from your ~/m2/repository? I'm also attaching my version of the quickstart with which I'm unable to produce the problem (sample1737-1.3-SNAPSHOT.zip) .
        Hide
        KsTN FK added a comment - - edited

        no,

        thanks for the patch, but unfortunately it did not solve the problem.

        The mark-up is still not found during JUnit testing running mvn test
        ... which leads to org.apache.wicket.markup.MarkupNotFoundException:

        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de_DE.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de_DE.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' on path [folders = [], webapppaths: []]
        DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7

        As you can see my custom defined place has no been looked-up.

        Allthough the page HomePage.java is rendered fine without mark-up exception running mvn jetty:run.

        Show
        KsTN FK added a comment - - edited no, thanks for the patch, but unfortunately it did not solve the problem. The mark-up is still not found during JUnit testing running mvn test ... which leads to org.apache.wicket.markup.MarkupNotFoundException: DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de_DE.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de_DE.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7 DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage_de.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7 DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' on path [folders = [], webapppaths: []] DEBUG - ResourceStreamLocator - Attempting to locate resource 'com/eds/java/wicket/sample1737/HomePage.html' using classloader sun.misc.Launcher$AppClassLoader@11b86e7 As you can see my custom defined place has no been looked-up. Allthough the page HomePage.java is rendered fine without mark-up exception running mvn jetty:run.
        Hide
        Timo Rantalaiho added a comment -

        I've committed a fix in the 1.3 branch. Could you please try with the latest 1.3-SNAPSHOT? If it works, I'll also apply the fix in trunk (1.4).

        Show
        Timo Rantalaiho added a comment - I've committed a fix in the 1.3 branch. Could you please try with the latest 1.3-SNAPSHOT? If it works, I'll also apply the fix in trunk (1.4).
        Hide
        Timo Rantalaiho added a comment -

        Thanks! I'll try to have a look soon.

        Show
        Timo Rantalaiho added a comment - Thanks! I'll try to have a look soon.
        Hide
        KsTN FK added a comment -

        Please find attached a wicket 1.3.4 quickstart sample for this issue...

        If you run the jetty server using mvn jetty:run or by Start.java the HomePage.class renders fine,
        even if HTML mark-up is located in src/html and not in the classes folder.

        If you run the TestHomePage.java as JUnit test if will fail with MarkupNotFoundException.

        Show
        KsTN FK added a comment - Please find attached a wicket 1.3.4 quickstart sample for this issue... If you run the jetty server using mvn jetty:run or by Start.java the HomePage.class renders fine, even if HTML mark-up is located in src/html and not in the classes folder. If you run the TestHomePage.java as JUnit test if will fail with MarkupNotFoundException.
        Hide
        Timo Rantalaiho added a comment -

        Thanks for reporting, this sounds like a problem that impedes your unit testing a lot when using a custom markup location.

        Would it be possible for you to provide a quickstart with a WicketTester test failing because of this?

        Or better yet a patch against Wicket code that provides a failing unit test.

        Meanwhile, in jdave-wicket there is an example of starting components with markup provided in a String
        http://svn.laughingpanda.org/svn/jdave/trunk/jdave-wicket/src/java/jdave/wicket/ComponentSpecification.java

        You might be able to do something similar to work around this issue, although it might involve too much code.

        Show
        Timo Rantalaiho added a comment - Thanks for reporting, this sounds like a problem that impedes your unit testing a lot when using a custom markup location. Would it be possible for you to provide a quickstart with a WicketTester test failing because of this? Or better yet a patch against Wicket code that provides a failing unit test. Meanwhile, in jdave-wicket there is an example of starting components with markup provided in a String http://svn.laughingpanda.org/svn/jdave/trunk/jdave-wicket/src/java/jdave/wicket/ComponentSpecification.java You might be able to do something similar to work around this issue, although it might involve too much code.

          People

          • Assignee:
            Timo Rantalaiho
            Reporter:
            KsTN FK
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development