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