ツィッターで気づいたのですが、、
クライアントの情報を、WebSession経由で取得する
org.apache.wicket.protocol.http.ClientProperties は
もう取得しない方が良い。
Wicket 8 ClientProperties : some methods are deprecatedhttps://t.co/MklM7C700M
— Apache Wicket (@apache_wicket) October 23, 2018
読んでみると、
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 ははっきり言って遅い!