1616
1717package org .mitre .openid .connect .config ;
1818
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+
1931import java .io .File ;
32+ import java .io .FileNotFoundException ;
2033import java .io .IOException ;
2134import java .io .InputStreamReader ;
2235import java .text .MessageFormat ;
2740import java .util .Locale ;
2841import java .util .Map ;
2942
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-
4343/**
4444 * @author jricher
45- *
4645 */
4746public class JsonMessageSource extends AbstractMessageSource {
48- // Logger for this class
47+
4948 private static final Logger logger = LoggerFactory .getLogger (JsonMessageSource .class );
5049
5150 private Resource baseDirectory ;
@@ -54,9 +53,13 @@ public class JsonMessageSource extends AbstractMessageSource {
5453
5554 private Map <Locale , List <JsonObject >> languageMaps = new HashMap <>();
5655
57- @ Autowired
5856 private ConfigurationPropertiesBean config ;
5957
58+ @ Autowired
59+ public JsonMessageSource (ConfigurationPropertiesBean config ) {
60+ this .config = config ;
61+ }
62+
6063 @ Override
6164 protected MessageFormat resolveCode (String code , Locale locale ) {
6265
@@ -82,9 +85,6 @@ protected MessageFormat resolveCode(String code, Locale locale) {
8285
8386 /**
8487 * Get a value from the set of maps, taking the first match in order
85- * @param code
86- * @param langs
87- * @return
8888 */
8989 private String getValue (String code , List <JsonObject > langs ) {
9090 if (langs == null || langs .isEmpty ()) {
@@ -106,10 +106,6 @@ private String getValue(String code, List<JsonObject> langs) {
106106
107107 /**
108108 * Get a value from a single map
109- * @param code
110- * @param locale
111- * @param lang
112- * @return
113109 */
114110 private String getValue (String code , JsonObject lang ) {
115111
@@ -147,7 +143,6 @@ private String getValue(String code, JsonObject lang) {
147143 }
148144 }
149145
150-
151146 return value ;
152147
153148 }
@@ -156,7 +151,7 @@ private String getValue(String code, JsonObject lang) {
156151 * @param locale
157152 * @return
158153 */
159- private List <JsonObject > getLanguageMap (Locale locale ) {
154+ List <JsonObject > getLanguageMap (Locale locale ) {
160155
161156 if (!languageMaps .containsKey (locale )) {
162157 try {
@@ -174,23 +169,24 @@ private List<JsonObject> getLanguageMap(Locale locale) {
174169 r = getBaseDirectory ().createRelative (filename );
175170 }
176171
177- logger .info ("No locale loaded, trying to load from " + r );
172+ logger .info ("No locale loaded, trying to load from {}" , r );
178173
179174 JsonParser parser = new JsonParser ();
180175 JsonObject obj = (JsonObject ) parser .parse (new InputStreamReader (r .getInputStream (), "UTF-8" ));
181176
182177 set .add (obj );
183178 }
184179 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 );
185183 } catch (JsonIOException | JsonSyntaxException | IOException e ) {
186184 logger .error ("Unable to load locale" , e );
187185 }
188186 }
189187
190188 return languageMaps .get (locale );
191189
192-
193-
194190 }
195191
196192 /**
0 commit comments