|
9 | 9 |
|
10 | 10 | package org.elasticsearch.ingest.useragent; |
11 | 11 |
|
| 12 | +import org.elasticsearch.common.Strings; |
12 | 13 | import org.elasticsearch.common.util.Maps; |
13 | 14 | import org.elasticsearch.core.UpdateForV10; |
14 | 15 | import org.elasticsearch.ingest.AbstractProcessor; |
@@ -95,40 +96,19 @@ public IngestDocument execute(IngestDocument ingestDocument) { |
95 | 96 | } |
96 | 97 | break; |
97 | 98 | case VERSION: |
98 | | - StringBuilder version = new StringBuilder(); |
99 | 99 | if (uaClient.userAgent() != null && uaClient.userAgent().major() != null) { |
100 | | - version.append(uaClient.userAgent().major()); |
101 | | - if (uaClient.userAgent().minor() != null) { |
102 | | - version.append(".").append(uaClient.userAgent().minor()); |
103 | | - if (uaClient.userAgent().patch() != null) { |
104 | | - version.append(".").append(uaClient.userAgent().patch()); |
105 | | - if (uaClient.userAgent().build() != null) { |
106 | | - version.append(".").append(uaClient.userAgent().build()); |
107 | | - } |
108 | | - } |
109 | | - } |
110 | | - uaDetails.put("version", version.toString()); |
| 100 | + uaDetails.put("version", versionToString(uaClient.userAgent())); |
111 | 101 | } |
112 | 102 | break; |
113 | 103 | case OS: |
114 | 104 | if (uaClient.operatingSystem() != null) { |
115 | 105 | Map<String, String> osDetails = Maps.newMapWithExpectedSize(3); |
116 | 106 | if (uaClient.operatingSystem().name() != null) { |
117 | 107 | osDetails.put("name", uaClient.operatingSystem().name()); |
118 | | - StringBuilder sb = new StringBuilder(); |
119 | 108 | if (uaClient.operatingSystem().major() != null) { |
120 | | - sb.append(uaClient.operatingSystem().major()); |
121 | | - if (uaClient.operatingSystem().minor() != null) { |
122 | | - sb.append(".").append(uaClient.operatingSystem().minor()); |
123 | | - if (uaClient.operatingSystem().patch() != null) { |
124 | | - sb.append(".").append(uaClient.operatingSystem().patch()); |
125 | | - if (uaClient.operatingSystem().build() != null) { |
126 | | - sb.append(".").append(uaClient.operatingSystem().build()); |
127 | | - } |
128 | | - } |
129 | | - } |
130 | | - osDetails.put("version", sb.toString()); |
131 | | - osDetails.put("full", uaClient.operatingSystem().name() + " " + sb.toString()); |
| 109 | + String version = versionToString(uaClient.operatingSystem()); |
| 110 | + osDetails.put("version", version); |
| 111 | + osDetails.put("full", uaClient.operatingSystem().name() + " " + version); |
132 | 112 | } |
133 | 113 | uaDetails.put("os", osDetails); |
134 | 114 | } |
@@ -160,6 +140,23 @@ public IngestDocument execute(IngestDocument ingestDocument) { |
160 | 140 | return ingestDocument; |
161 | 141 | } |
162 | 142 |
|
| 143 | + private static String versionToString(final UserAgentParser.VersionedName version) { |
| 144 | + final StringBuilder versionString = new StringBuilder(); |
| 145 | + if (Strings.hasLength(version.major())) { |
| 146 | + versionString.append(version.major()); |
| 147 | + if (Strings.hasLength(version.minor())) { |
| 148 | + versionString.append(".").append(version.minor()); |
| 149 | + if (Strings.hasLength(version.patch())) { |
| 150 | + versionString.append(".").append(version.patch()); |
| 151 | + if (Strings.hasLength(version.build())) { |
| 152 | + versionString.append(".").append(version.build()); |
| 153 | + } |
| 154 | + } |
| 155 | + } |
| 156 | + } |
| 157 | + return versionString.toString(); |
| 158 | + } |
| 159 | + |
163 | 160 | @Override |
164 | 161 | public String getType() { |
165 | 162 | return TYPE; |
|
0 commit comments