| 
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