Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml
===================================================================
diff -u -rd1bddeacdf3d146c0ac5927683151a62b1daa0b6 -r832b7388158e6588d5791e09d202774d8434de86
--- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision d1bddeacdf3d146c0ac5927683151a62b1daa0b6)
+++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 832b7388158e6588d5791e09d202774d8434de86)
@@ -139,6 +139,16 @@
+
+
+
+
+
+
+
+
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/util/ILoadedMessageSourceService.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/util/ILoadedMessageSourceService.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/util/ILoadedMessageSourceService.java (revision 832b7388158e6588d5791e09d202774d8434de86)
@@ -0,0 +1,15 @@
+package org.lamsfoundation.lams.util;
+
+import org.springframework.context.MessageSource;
+
+
+public interface ILoadedMessageSourceService {
+
+ /** Get the MessageSource for the specified message file.
+ *
+ * @param messageFilename Mandatory
+ * @return Null if messageFilename is null, otherwise a MessageSource (even if the bundle cannot be found)
+ */
+ public abstract MessageSource getMessageService(String messageFilename);
+
+}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/util/LoadedMessageSourceService.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/util/LoadedMessageSourceService.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/util/LoadedMessageSourceService.java (revision 832b7388158e6588d5791e09d202774d8434de86)
@@ -0,0 +1,45 @@
+package org.lamsfoundation.lams.util;
+
+
+import java.util.HashMap;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.context.MessageSource;
+import org.springframework.context.support.ResourceBundleMessageSource;
+
+/**
+ * Access a message service related to a programatically loaded message file.
+ * Authoring uses this to access the message files for tools and activities.
+ */
+public class LoadedMessageSourceService implements ILoadedMessageSourceService, BeanFactoryAware {
+
+ private static final String LOADED_MESSAGE_SOURCE_BEAN = "loadedMessageSource";
+ private HashMap messageServices = new HashMap();
+ private BeanFactory beanFactory = null;
+
+ /* (non-Javadoc)
+ * @see org.lamsfoundation.lams.authoring.service.ILoadMessageService#getMessageService(java.lang.String)
+ */
+ public MessageSource getMessageService(String messageFilename) {
+ if ( messageFilename != null ) {
+ MessageSource ms = messageServices.get(messageFilename);
+ if ( ms == null ) {
+ ResourceBundleMessageSource rbms = (ResourceBundleMessageSource) beanFactory.getBean(LOADED_MESSAGE_SOURCE_BEAN);
+ rbms.setBasename(messageFilename);
+ messageServices.put(messageFilename,rbms);
+ ms = rbms;
+ }
+ return ms;
+ } else {
+ return null;
+ }
+ }
+
+ /* **** Method for BeanFactoryAware interface *****************/
+ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
+ this.beanFactory = beanFactory;
+ }
+
+}