fallback if no message can be found

This commit is contained in:
Michael Gerber
2015-02-23 18:41:53 +01:00
parent 74a0658346
commit 2d54e6fb3b
4 changed files with 35 additions and 14 deletions

View File

@@ -42,6 +42,11 @@
<artifactId>resteasy-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

@@ -1,5 +1,6 @@
package org.keycloak.theme;
import org.jboss.logging.Logger;
import org.keycloak.freemarker.Theme;
import java.io.File;
@@ -8,13 +9,14 @@ import java.io.InputStream;
import java.net.URL;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class ClassLoaderTheme implements Theme {
private static final Logger LOGGER = Logger.getLogger(ClassLoaderTheme.class);
private String name;
private String parentName;
@@ -108,14 +110,20 @@ public class ClassLoaderTheme implements Theme {
public Properties getMessages(Locale locale) throws IOException {
Properties m = new Properties();
String message = null;
if(locale != null){
message = this.messageRoot + "messages_" + locale.toString() + ".properties";
}else{
message = this.messageRoot + "messages.properties";
URL url = null;
if(locale != null) {
URL messageFile = classLoader.getResource(this.messageRoot + "messages_" + locale.toString() + ".properties");
if(messageFile != null){
url = messageFile;
}else{
LOGGER.warnf("Can not find message file %s", messageFile);
}
}
if(url == null){
url = classLoader.getResource(this.messageRoot + "messages.properties");
}
URL url = classLoader.getResource(message);
if (url != null) {
m.load(url.openStream());
}

View File

@@ -1,5 +1,6 @@
package org.keycloak.theme;
import org.jboss.logging.Logger;
import org.keycloak.freemarker.Theme;
import java.io.File;
@@ -15,6 +16,7 @@ import java.util.Properties;
*/
public class FolderTheme implements Theme {
private static final Logger LOGGER = Logger.getLogger(FolderTheme.class);
private String parentName;
private String importName;
private File themeDir;
@@ -85,14 +87,20 @@ public class FolderTheme implements Theme {
public Properties getMessages(Locale locale) throws IOException {
Properties m = new Properties();
String message = null;
if(locale != null){
message = "messages_" + locale.toString() + ".properties";
}else{
message = "messages.properties";
File file = null;
if(locale != null) {
File messageFile = new File(themeDir, "messages" + File.separator + "messages_" + locale.toString() + ".properties");
if (messageFile.isFile()) {
file = messageFile;
} else {
LOGGER.warnf("Can not find message file %s", messageFile);
}
}
if(file == null){
file = new File(themeDir, "messages" + File.separator + "messages.properties");
}
File file = new File(themeDir, "messages" + File.separator + message);
if (file.isFile()) {
m.load(new FileInputStream(file));
}

View File

@@ -44,7 +44,7 @@ import java.util.concurrent.TimeUnit;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
*/
public class FreeMarkerLoginFormsProvider implements LoginFormsProvider {
public class FreeMarkerLoginFormsProvider implements LoginFormsProvider {
private static final Logger logger = Logger.getLogger(FreeMarkerLoginFormsProvider.class);