Wicket 8 以降では ClientProperties は使わないように。。

ツィッターで気づいたのですが、、
クライアントの情報を、WebSession経由で取得する
org.apache.wicket.protocol.http.ClientProperties
もう取得しない方が良い。


読んでみると、
Wicket 8 ClientProperties some Methods deprecated - Stack Overflow

これから、ガイドに書くということ、、こんなの気づかない。。。

ClientProperties cprop = WebSession.get().getClientInfo().getProperties();

これは、将来使えなくなる。。

以下を使うのが、お奨めということなので、
GitHub - nielsbasjes/yauaa: Yet Another UserAgent Analyzer

ドキュメントのとおりに、、
Basic usage · Yauaa: Yet Another UserAgent Analyzer

WebRequest を取得して→getHeader で User-Agent の文字列を取得して parse すると、

UserAgentAnalyzer uaa = UserAgentAnalyzer
            .newBuilder()
            .hideMatcherLoadStats()
            .withCache(10000)
            .build();
UserAgent ua = uaa.parse(((WebRequest)getRequest()).getHeader("User-Agent"));
ua.getAvailableFieldNamesSorted().stream().forEach(key->{
	System.out.println("[" + key +"] = [" + ua.getValue(key) + "]");
});

これで取得できるのは、沢山あるので一部だけ結果を紹介すると、

[DeviceClass] = [Desktop]
[DeviceName] = [Desktop]
[DeviceBrand] = [Unknown]	
[DeviceCpu] = [Intel x86_64]
[DeviceCpuBits] = [64]
[OperatingSystemClass] = [Desktop]
[OperatingSystemName] = [Windows NT]
[OperatingSystemVersion] = [7]
[OperatingSystemNameVersion] = [Windows 7]
[AgentClass] = [Browser]
[AgentName] = [Chrome]
[AgentVersion] = [69.0.3497.100]

しかし、この parse ははっきり言って遅い!