Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Problem with ResourseBundle.Control using struts

 
PradeepKumar Dev Venkata
Greenhorn
Posts: 6
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello all,

I have a requirement to make our web application to reload the ResourceBundle (a properties file) for regular interval. Basically this is to avoid restarting the application server for .properties file changes (FYI..we use Struts Framework and Jboss application server).

For this, I used a util class which will extends ResourceBundle.Control in Java SE 6 and override its getFormats() and newBundle() methods, made getTimeToLive method to return different timeToLive values TTL_DONT_CACHE,0 etc.. and passed this instance to in ResourceBundle.getBundle method.

Something like below...

In Action class:

ResourceBundle msgBundle = ResourceBundle.getBundle("resources.ApplicationResources",ResourceBundleController.instance());

PROBLEM IS: With these changes I couldnt achive the expected outcome. Application is not reloading the cache for any of the timeToLive I mentioned above.. I also have a doubt how can I do same changes on jsp which uses <bean:message .. > tag.

Please correct me if I am wrong anywhere... or suggest any other alternative. Any help is really appreciated.


Below is the util class (ResourceBundleController) used FYI ::

import java.io.IOException;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleController extends Control
{

public static ResourceBundleController instance() {
return new ResourceBundleController();
}

private long timeToLive = ResourceBundle.Control.TTL_DONT_CACHE;

public long getTimeToLive(String baseName, java.util.Locale locale) {
return timeToLive;
}

public boolean needsReload(String baseName, Locale locale, String format, ClassLoader loader, ResourceBundle bundle, long loadTime) {
return super.needsReload(baseName, locale, format, loader, bundle, loadTime);
}

public void setTimeToLive(long timeToLive) {
this.timeToLive = timeToLive;
}

public List<String> getFormats(String arg0) {
return super.getFormats(arg0);
}

public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader,
boolean reload) throws IllegalAccessException, InstantiationException, IOException {
return super.newBundle(baseName,locale, format, loader, reload);
}

}


Thanks in advance,
Pradeep
 
Amit Ghorpade
Bartender
Posts: 2851
10
Fedora Firefox Browser Java
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"PradeepKumar dv " please check your private messages for an important administrative matter. You can check them by clicking the My Private Messages link above.
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64188
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Please be sure to ask Struts questions in the Struts forum. I have moved this post there for you.
 
PradeepKumar Dev Venkata
Greenhorn
Posts: 6
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello all,

Please someone help me in this..

Thanks in advance.
Pradeep


 
Ramakrishnan Vaidhyanathan
Greenhorn
Posts: 1
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

Even i have same requirements can any one help us?

Thanks in Advance,
Ramakrishnan
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic