You mean *without* reloading context? That sounds nice... But I think there's no legitimate way to achieve it with the containers that I use; i.e. Jetty and Tomcat.
// Iwao Nathan Maves wrote on 08.4.10 11:50 AM: > You could always use an app server that reloads it for you :) > > I think resin can do this. > > On Wed, Apr 9, 2008 at 7:10 PM, Iwao AVE! <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Hi Roland, > > Haven't tried with JBoss, but I use the following class and JSP to > reload resource bundles. > After updating .properties files, I call the JSP with my browser. > > It is a kind of hack (and not 'auto'), but useful during development. > > - Java class - > > package util; > > import java.lang.reflect.Field; > import java.lang.reflect.InvocationTargetException; > import java.lang.reflect.Method; > import java.util.ResourceBundle; > > public class ReloadBundle > { > public static void reloadBundles() > { > try > { > clearMap(ResourceBundle.class, null, "cacheList"); > clearTomcatCache(); > } > catch (Exception e) > { > System.out.println("Could not reload resource bundles" + e.getMessage > ()); > } > } > > private static void clearTomcatCache() > { > ClassLoader loader = Thread.currentThread().getContextClassLoader(); > Class<?> cl = loader.getClass(); > > try > { > if ("org.apache.catalina.loader.WebappClassLoader".equals(cl.getName > ())) > { > clearMap(cl, loader, "resourceEntries"); > } > else > { > System.out.println("class loader " + cl.getName() + " is not > tomcat loader."); > } > } > catch (Exception e) > { > System.out.println("couldn't clear tomcat cache" + e.getMessage()); > } > } > > private static void clearMap(Class<?> cl, Object obj, String name) > throws NoSuchFieldException, IllegalAccessException, > NoSuchMethodException, > InvocationTargetException > { > Field field = cl.getDeclaredField(name); > field.setAccessible(true); > > Object cache = field.get(obj); > Class<? extends Object> ccl = cache.getClass(); > Method clearMethod = ccl.getMethod("clear", (Class[])null); > clearMethod.invoke(cache, (Object[])null); > } > } > > - JSP - > > <[EMAIL PROTECTED] import="util.ReloadBundle"%> > <% > ReloadBundle.reloadBundles(); > %> > <html> > <head><title>Reload ResourceBundle</title></head> > <body>Done</body> > </html> > > -- > Hope this helps, > Iwao > > 2008/4/9 Roland Bali <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>: > > Hi, > > > > I'm using Eclipse and JBoss for my development and everything > > is updated automagically during development except the > > StripesResources.properties file that require a restart. > > > > Is there a way of making StripesResources.properties reloadable > > during development? > > > > Kind regards, > > Roland ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Stripes-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/stripes-users
