16
16
17
17
package org .mitre .openid .connect .config ;
18
18
19
+ import com .google .common .base .Splitter ;
20
+ import com .google .gson .JsonElement ;
21
+ import com .google .gson .JsonIOException ;
22
+ import com .google .gson .JsonObject ;
23
+ import com .google .gson .JsonParser ;
24
+ import com .google .gson .JsonSyntaxException ;
25
+ import org .slf4j .Logger ;
26
+ import org .slf4j .LoggerFactory ;
27
+ import org .springframework .beans .factory .annotation .Autowired ;
28
+ import org .springframework .context .support .AbstractMessageSource ;
29
+ import org .springframework .core .io .Resource ;
30
+
19
31
import java .io .File ;
32
+ import java .io .FileNotFoundException ;
20
33
import java .io .IOException ;
21
34
import java .io .InputStreamReader ;
22
35
import java .text .MessageFormat ;
27
40
import java .util .Locale ;
28
41
import java .util .Map ;
29
42
30
- import org .slf4j .Logger ;
31
- import org .slf4j .LoggerFactory ;
32
- import org .springframework .beans .factory .annotation .Autowired ;
33
- import org .springframework .context .support .AbstractMessageSource ;
34
- import org .springframework .core .io .Resource ;
35
-
36
- import com .google .common .base .Splitter ;
37
- import com .google .gson .JsonElement ;
38
- import com .google .gson .JsonIOException ;
39
- import com .google .gson .JsonObject ;
40
- import com .google .gson .JsonParser ;
41
- import com .google .gson .JsonSyntaxException ;
42
-
43
43
/**
44
44
* @author jricher
45
- *
46
45
*/
47
46
public class JsonMessageSource extends AbstractMessageSource {
48
- // Logger for this class
47
+
49
48
private static final Logger logger = LoggerFactory .getLogger (JsonMessageSource .class );
50
49
51
50
private Resource baseDirectory ;
@@ -54,9 +53,13 @@ public class JsonMessageSource extends AbstractMessageSource {
54
53
55
54
private Map <Locale , List <JsonObject >> languageMaps = new HashMap <>();
56
55
57
- @ Autowired
58
56
private ConfigurationPropertiesBean config ;
59
57
58
+ @ Autowired
59
+ public JsonMessageSource (ConfigurationPropertiesBean config ) {
60
+ this .config = config ;
61
+ }
62
+
60
63
@ Override
61
64
protected MessageFormat resolveCode (String code , Locale locale ) {
62
65
@@ -82,9 +85,6 @@ protected MessageFormat resolveCode(String code, Locale locale) {
82
85
83
86
/**
84
87
* Get a value from the set of maps, taking the first match in order
85
- * @param code
86
- * @param langs
87
- * @return
88
88
*/
89
89
private String getValue (String code , List <JsonObject > langs ) {
90
90
if (langs == null || langs .isEmpty ()) {
@@ -106,10 +106,6 @@ private String getValue(String code, List<JsonObject> langs) {
106
106
107
107
/**
108
108
* Get a value from a single map
109
- * @param code
110
- * @param locale
111
- * @param lang
112
- * @return
113
109
*/
114
110
private String getValue (String code , JsonObject lang ) {
115
111
@@ -147,7 +143,6 @@ private String getValue(String code, JsonObject lang) {
147
143
}
148
144
}
149
145
150
-
151
146
return value ;
152
147
153
148
}
@@ -156,7 +151,7 @@ private String getValue(String code, JsonObject lang) {
156
151
* @param locale
157
152
* @return
158
153
*/
159
- private List <JsonObject > getLanguageMap (Locale locale ) {
154
+ List <JsonObject > getLanguageMap (Locale locale ) {
160
155
161
156
if (!languageMaps .containsKey (locale )) {
162
157
try {
@@ -174,23 +169,24 @@ private List<JsonObject> getLanguageMap(Locale locale) {
174
169
r = getBaseDirectory ().createRelative (filename );
175
170
}
176
171
177
- logger .info ("No locale loaded, trying to load from " + r );
172
+ logger .info ("No locale loaded, trying to load from {}" , r );
178
173
179
174
JsonParser parser = new JsonParser ();
180
175
JsonObject obj = (JsonObject ) parser .parse (new InputStreamReader (r .getInputStream (), "UTF-8" ));
181
176
182
177
set .add (obj );
183
178
}
184
179
languageMaps .put (locale , set );
180
+ } catch (FileNotFoundException e ) {
181
+ logger .info ("Unable to load locale because no messages file was found for locale {}" , locale .getDisplayName ());
182
+ languageMaps .put (locale , null );
185
183
} catch (JsonIOException | JsonSyntaxException | IOException e ) {
186
184
logger .error ("Unable to load locale" , e );
187
185
}
188
186
}
189
187
190
188
return languageMaps .get (locale );
191
189
192
-
193
-
194
190
}
195
191
196
192
/**
0 commit comments