@@ -66,18 +66,20 @@ protected static OSPattern patternFromMap(Map<String, String> configMap) {
66
66
return (new OSPattern (Pattern .compile (regex ),
67
67
configMap .get ("os_replacement" ),
68
68
configMap .get ("os_v1_replacement" ),
69
- configMap .get ("os_v2_replacement" )));
69
+ configMap .get ("os_v2_replacement" ),
70
+ configMap .get ("os_v3_replacement" )));
70
71
}
71
72
72
73
protected static class OSPattern {
73
74
private final Pattern pattern ;
74
- private final String osReplacement , v1Replacement , v2Replacement ;
75
+ private final String osReplacement , v1Replacement , v2Replacement , v3Replacement ;
75
76
76
- public OSPattern (Pattern pattern , String osReplacement , String v1Replacement , String v2Replacement ) {
77
+ public OSPattern (Pattern pattern , String osReplacement , String v1Replacement , String v2Replacement , String v3Replacement ) {
77
78
this .pattern = pattern ;
78
79
this .osReplacement = osReplacement ;
79
80
this .v1Replacement = v1Replacement ;
80
81
this .v2Replacement = v2Replacement ;
82
+ this .v3Replacement = v3Replacement ;
81
83
}
82
84
83
85
public OS match (String agentString ) {
@@ -112,11 +114,13 @@ public OS match(String agentString) {
112
114
} else if (groupCount >= 3 ) {
113
115
v2 = matcher .group (3 );
114
116
}
115
- if (groupCount >= 4 ) {
117
+ if (v3Replacement != null ) {
118
+ v3 = v3Replacement ;
119
+ } else if (groupCount >= 4 ) {
116
120
v3 = matcher .group (4 );
117
- if ( groupCount >= 5 ) {
118
- v4 = matcher . group ( 5 );
119
- }
121
+ }
122
+ if ( groupCount >= 5 ) {
123
+ v4 = matcher . group ( 5 );
120
124
}
121
125
122
126
return family == null ? null : new OS (family , v1 , v2 , v3 , v4 );
0 commit comments