package com.pkm.message.test
import grails.util.Environment
import javax.servlet.ServletContext
class MessageSourceCreator {
public static def grailsApplication = null
public static def servletContext = null
public static def messageSource = null
private static final String MESSAGE_FILE_DIR = "/WEB-INF/resources/messages"
/**
* @param fileName "some.message.properties"
*/
public static void addNewMessageFile(String fileName) {
String basePath = servletContext.getRealPath("/")
fileName = fileName.substring(0, fileName.lastIndexOf("."))
String relativeFilePath = "${MESSAGE_FILE_DIR}/${fileName}"
if (Environment.isWarDeployed()) {
messageSource.pluginBaseNames.add(0, relativeFilePath)
}
else {
String separator = Environment.current == Environment.TEST ? "/" : ""
messageSource.pluginBaseNames.add(0, basePath + separator + relativeFilePath)
}
}
public static void initialize(def ga, def sc, def ms) {
grailsApplication = ga
servletContext = sc
messageSource = ms
}
}
/**
* From BootStrap, need to call first initialize & then addNewMessageFile
*/
import com.pkm.message.test.MessageSourceCreator
class BootStrap {
def grailsApplication
def servletContext
def messageSource
def init = { servletContext ->
MessageSourceCreator.initialize(grailsApplication, servletContext, messageSource)
MessageSourceCreator.addNewMessageFile("some.message.properties")
}
def destroy = {
}
}
No comments:
Post a Comment