[jboss-user] [JBoss Seam] - Reloading ResourceBundle without restarting the server

mustaghattack do-not-reply at jboss.com
Mon Jul 23 12:33:47 EDT 2007


I see few solutions to achieve this :
(1) extend seam's ResourceBundle component to use bundle in database (there is a post in the forum on this)
(2) extend seam's ResourceBundle component and manage resource bundles manually (I mean writing the cache and the load method)
(3) extend seam's ResourceBundle and use the clearCache method of java util's ResourceBundle (since JDK 6)

So far I tried to use the clearCache method but it doesnt work : 

  | 	public void updateBundles() {
  | 		java.util.ResourceBundle.clearCache()
  | 	}
  | 
This method is called from the view. The cache is cleared : when I trace the loadBundle I get different instances of ResourceBundle, but the content doesnt change (of course I change the bundle file between two sessions).

I've done a simple test in a Java Application it works well :

  |                 ResourceBundle rb = ResourceBundle.getBundle("test.bundle.messages");
  | 		System.out.println("rb = " + rb);
  | 		System.out.println("toto = " + rb.getString("toto"));
  | 		
  |                 // get the same instance
  | 		rb = ResourceBundle.getBundle("test.bundle.messages");
  | 		System.out.println("rb without clearing cache = " + rb);
  | 
  | 		java.util.ResourceBundle.clearCache();
  | 		readLineOnConsole(); // change the bundle content
  | 
  |                 // get another instance
  | 		rb = ResourceBundle.getBundle("test.bundle.messages");
  | 		System.out.println("rb after clearing cache = " + rb);
  | 		System.out.println("toto = " + rb.getString("toto")); // display the changes
  | 

Any idea ?
Maybe someone has implemented the 2nd solution ?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4066719#4066719

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4066719



More information about the jboss-user mailing list