5月末に、
Version Up 時に
[TOC]
以前 Wicket の version
以前使用していた、7.8.0
で、8.0.0
に
Migration 時に 実施した こと
NoVersionMapper で コンパイルエラー
Url の
Wicket 7 では
[INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] PageResourceMounter.java:[7,46] シンボルを見つけられません シンボル: クラス BookmarkableListenerInterfaceRequestHandler 場所: パッケージ org.apache.wicket.core.request.handler [ERROR] PageResourceMounter.java:[8,46] シンボルを見つけられません シンボル: クラス ListenerInterfaceRequestHandler 場所: パッケージ org.apache.wicket.core.request.handler [INFO] 2 errors
wicket - delete version number in url - Stack Overflow に、
public class NoVersionMapper extends MountedMapper { public NoVersionMapper(final Class pageClass) { this("/", pageClass); } public NoVersionMapper(String mountPath, final Class pageClass) { super(mountPath, pageClass, new PageParametersEncoder()); } @Override protected void encodePageComponentInfo(Url url, PageComponentInfo info) { //Does nothing } @Override public Url mapHandler(IRequestHandler requestHandler) { if (requestHandler instanceof ListenerRequestHandler || requestHandler instanceof BookmarkableListenerRequestHandler) { return null; } else { return super.mapHandler(requestHandler); } } }
メソッドの 戻り値が Lamba型を 返す兼ね合いでの エラー
[ERROR] 戻り値の型org.apache.wicket.util.IProvider<org.apache.wicket.request.IExceptionMapper>はjava.util.function.Supplier<org.apache.wicket.request.IExceptionMapper>と互換性がありません
これは、
以下の
/** * getExceptionMapperProvider * * @return */ @Override public Supplier<IExceptionMapper> getExceptionMapperProvider() { return () -> new ApplicationExceptionMapper(); }
元々、() -> new ApplicationExceptionMapper();
と
AbstractMarkupFilter の 継承クラスでの エラー
自前で、
[ERROR] HtmlTagIdentifier.java:[45,34] シンボルを見つけられません [ERROR] シンボル: 変数 FragmentResolver [ERROR] シンボル: 変数 MarkupInheritanceResolver
エラー発生箇所は、
Wicket の
/** * List of well known wicket tag names */ private static final Set<String> WELL_KNOWN_TAG_NAMES = new HashSet<>(); static { WELL_KNOWN_TAG_NAMES.add(Border.BORDER); WELL_KNOWN_TAG_NAMES.add(Border.BODY); WELL_KNOWN_TAG_NAMES.add(AutoLabelTextResolver.LABEL); WELL_KNOWN_TAG_NAMES.add(Panel.PANEL); WELL_KNOWN_TAG_NAMES.add(EnclosureHandler.ENCLOSURE); WELL_KNOWN_TAG_NAMES.add(WicketLinkTagHandler.LINK); WELL_KNOWN_TAG_NAMES.add(WicketRemoveTagHandler.REMOVE); WELL_KNOWN_TAG_NAMES.add(Fragment.RENDER); WELL_KNOWN_TAG_NAMES.add(HtmlHeaderResolver.HEAD); WELL_KNOWN_TAG_NAMES.add(HtmlHeaderResolver.HEADER_ITEMS); WELL_KNOWN_TAG_NAMES.add(MarkupInheritanceResolver.CHILD); WELL_KNOWN_TAG_NAMES.add(MarkupInheritanceResolver.EXTEND); WELL_KNOWN_TAG_NAMES.add(WicketContainerResolver.CONTAINER); WELL_KNOWN_TAG_NAMES.add(WicketMessageResolver.MESSAGE); }
この実装を、
/** * List of well known wicket tag names */ private static final Set<String> WELL_KNOWN_TAG_NAMES = new HashSet<>(); static { WELL_KNOWN_TAG_NAMES.add(Border.BORDER); WELL_KNOWN_TAG_NAMES.add(Border.BODY); WELL_KNOWN_TAG_NAMES.add(AutoLabelTextResolver.LABEL); WELL_KNOWN_TAG_NAMES.add(Panel.PANEL); WELL_KNOWN_TAG_NAMES.add(EnclosureHandler.ENCLOSURE); WELL_KNOWN_TAG_NAMES.add(WicketLinkTagHandler.LINK); WELL_KNOWN_TAG_NAMES.add(WicketRemoveTagHandler.REMOVE); WELL_KNOWN_TAG_NAMES.add(WicketTagIdentifier.FRAGMENT); WELL_KNOWN_TAG_NAMES.add(HtmlHeaderResolver.HEAD); WELL_KNOWN_TAG_NAMES.add(HtmlHeaderResolver.HEADER_ITEMS); WELL_KNOWN_TAG_NAMES.add(WicketTagIdentifier.CHILD); WELL_KNOWN_TAG_NAMES.add(WicketTagIdentifier.EXTEND); WELL_KNOWN_TAG_NAMES.add(WicketContainerResolver.CONTAINER); WELL_KNOWN_TAG_NAMES.add(WicketMessageResolver.MESSAGE); }
ResourceAggregator で、 IHeaderResponse の 実装クラスを Wrap する
Migration to Wicket 8.0 - Apache Wicket - Apache Software Foundation に、
Wicket 7.x.x では、
setHeaderResponseDecorator(response -> { return new JavaScriptFilteredIntoFooterHeaderResponse(response, "footer"); });
setHeaderResponseDecorator(response -> { return new ResourceAggregator(new JavaScriptFilteredIntoFooterHeaderResponse(response, "footer")); });
wicket/ResourceAggregator.java at 8322023887d0486c725276a0090755021ba063c6 · apache/wicket
これで、
コンパイルエラーは
以上です。
コメント