Hi,

which Wicket version?

The first approach leads to a MarkupException here with Wicket 1.6.x.

Regards
Sven

On 09/15/2014 07:37 PM, Thibault Kruse wrote:
Hi,

I am trying to create a wicket panel that renders markup from some
remote source, but if fetching fails, renders some fallback markup. I
want to achieve this with minimal code.

I tried two approaches one based on overriding getMarkup(), one based
on http://wicket.apache.org/guide/guide/advanced.html#advanced_5, both
fail:

/**
  * attempts to use custom markup by overriding getMarkup()... but html is used
  */
public class CustomMarkupFallback1Panel extends GenericPanel<String> {
     @Override
     public IMarkupFragment getMarkup() {
         return Markup.of("it works");
     }
}

CustomMarkupFallback1Panel.html:
<wicket:panel>
     Fail!
</wicket:panel>


This first one overrides getMarkup() as suggested in the javadoc of
IMarkupResourceStreamProvider, but what gets rendered is instead the
static html (even though the debugger walks through getMarkup().


The second approach fails using IMarkupResourceStreamProvider works
for the intended markup, but not for the fallback markup
public class CustomMarkupFallback2Panel extends GenericPanel<String>
         IMarkupResourceStreamProvider {

     @Override
     public IResourceStream getMarkupResourceStream(MarkupContainer
container, Class<?> containerClass) {
         if (getModelObject() == null) {
             // thows Exception, see below. html file exists
             return getMarkup().getMarkupResourceStream();
         } else {
             // works
             return new StringResourceStream(getModelObject());
         }
     }
}


At least the first failure seems like a bug to me, not sure whether
the second approach is supposed to work, or how else to load markup
the wicket way.

Is there maybe a completely different approach to achieve what I try to do?

cheers,
   Thibault



java.io.IOException: Stream closed
      at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:162)
      at java.io.BufferedInputStream.read(BufferedInputStream.java:325)
      at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
      at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
      at 
org.apache.wicket.util.io.BOMInputStream.getBOM(BOMInputStream.java:217)
      at 
org.apache.wicket.util.io.BOMInputStream.readFirstBytes(BOMInputStream.java:261)
      at org.apache.wicket.util.io.BOMInputStream.read(BOMInputStream.java:312)
      at 
org.apache.wicket.util.io.XmlReader.getXmlDeclaration(XmlReader.java:183)
      at org.apache.wicket.util.io.XmlReader.init(XmlReader.java:106)
      at org.apache.wicket.util.io.XmlReader.<init>(XmlReader.java:81)
      at 
org.apache.wicket.markup.parser.XmlPullParser.parse(XmlPullParser.java:605)
      at 
org.apache.wicket.markup.AbstractMarkupParser.parse(AbstractMarkupParser.java:178)
      at 
org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:51)
      at 
org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:57)
      at 
org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:52)
      at 
org.apache.wicket.markup.MarkupFactory.loadMarkup(MarkupFactory.java:412)
      at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:448)
      at 
org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:544)
      at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:305)
      at 
org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:236)
      at 
org.apache.wicket.markup.MarkupFactory.getMarkup(MarkupFactory.java:194)
      at 
org.apache.wicket.MarkupContainer.getAssociatedMarkup(MarkupContainer.java:405)
      at 
org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:372)
      at 
org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderHeadFromAssociatedMarkupFile(AssociatedMarkupSourcingStrategy.java:244)
      at 
org.apache.wicket.markup.html.panel.AssociatedMarkupSourcingStrategy.renderHead(AssociatedMarkupSourcingStrategy.java:220)
      at org.apache.wicket.Component.renderHead(Component.java:2652)
      at 
org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy$1.component(ChildFirstHeaderRenderStrategy.java:85)
      at 
org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:96)
      at 
org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:87)
      at 
org.apache.wicket.markup.renderStrategy.DeepChildFirstVisitor.visit(DeepChildFirstVisitor.java:51)
      at 
org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderChildHeaders(ChildFirstHeaderRenderStrategy.java:78)
      at 
org.apache.wicket.markup.renderStrategy.ChildFirstHeaderRenderStrategy.renderHeader(ChildFirstHeaderRenderStrategy.java:57)
      at 
org.apache.wicket.markup.html.internal.HtmlHeaderContainer.onComponentTagBody(HtmlHeaderContainer.java:170)
      at 
org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:71)
      at 
org.apache.wicket.Component.internalRenderComponent(Component.java:2514)
      at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1496)
      at org.apache.wicket.Component.internalRender(Component.java:2344)
      at org.apache.wicket.Component.render(Component.java:2272)
      at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1392)
      at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1557)
      at org.apache.wicket.Page.onRender(Page.java:887)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to