Skip to content


Wicket Resourcen mit Jetty nachladen

Bei großen Wicket-Projekten kann das hotdeployment des maven jetty plugins schonmal dazu führen, dass aus dem Vorteil ein Nachteil wird. Dabei ist das Ziel recht einfach: Nur die Html-Templates für die Wicket-Komponenten sollen neu geladen werden, wenn sich da was verändert hat. Alle Vorschläge aus den Foren sind mir zu aufwendig Außerdem mag ich die Html-Dateien nicht in das selbe Verzeichnis wie die Quelltexte legen. Ich habe mir daher einen für das Problem angepassten ResourceStreamLocator geschrieben:

public class MavenDevResourceStreamLocator extends ResourceStreamLocator
{
  String _prefix="src/main/resources/";

  public IResourceStream locate(final Class clazz, final String path)
  {
    IResourceStream located=getFileSysResourceStream(path);
    if (located != null)
    {
      // alles ok
      return located;
    }
    // fallback
    located=super.locate(clazz, path);
    return located;
  }

  private IResourceStream getFileSysResourceStream(String path)
  {
    File f=new File(_prefix+path);
    if ((f.exists()) && (f.isFile()))
    {
      return new FileResourceStream(f);
    }
    return null;
  }
}

Eingebaut wird das dann in die init-Methode der Application-Klasse wie folgt:

if (DEVELOPMENT.equalsIgnoreCase(configurationType))
{
  getResourceSettings().setResourceStreamLocator(new MavenDevResourceStreamLocator());
}

Und schon werden alle Änderungen an den Html-Dateien sichtbar.

Tags:

Veröffentlicht in Maven, Wicket, .