X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2FWebIndexer.java;h=6530e70c03aac885d6233cccad849ebf896051c8;hb=1d9057cc722b349a0bc370c0860344f59c42fd0f;hp=29ceac1b607979fb3d7ebdc60887b65e94416578;hpb=f826af1cdb62425a975cd174ecd0905100d3a2dc;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java index 29ceac1..6530e70 100644 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/WebIndexer.java @@ -16,22 +16,28 @@ import eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes.Picture; public class WebIndexer extends AbstractIndexer { + private static final int METADATA_LOAD_TRY_COUNT = 10; private final String globalPrefix; + private final String jspPath; - public WebIndexer(final String globalPrefix) { + public WebIndexer(final String globalPrefix, final String jspPath) { this.globalPrefix = globalPrefix; + this.jspPath = jspPath; } @Override public String getDirectoryUrl(final AbstractFile directory, final IndexingContext context) { - return "photos.jsp?path=" + context.getLocalUrl() + "/" + return jspPath + context.getLocalUrl() + "/" + UrlParamEncoder.encode(directory.fileName); } public String getHtml(String requestPath) throws MalformedURLException, IOException, ClassNotFoundException { + if (requestPath == null) + requestPath = ""; + if (requestPath.equals("/")) requestPath = ""; @@ -44,11 +50,11 @@ public class WebIndexer extends AbstractIndexer { compileHtml(layout, metadata); - return layout.getHtml(); + return layout.getHtml(false, false); } public DirectoryMetadata getMetadataForPath(final String requestPath) - throws IOException, MalformedURLException, ClassNotFoundException { + throws ClassNotFoundException, IOException { final StringBuffer urlStringBuffer = new StringBuffer(); @@ -58,22 +64,32 @@ public class WebIndexer extends AbstractIndexer { final String urlString = urlStringBuffer.toString(); - final BufferedInputStream in = new BufferedInputStream(new URL( - urlString).openStream()); + IOException exception = null; + + for (int i = 0; i < METADATA_LOAD_TRY_COUNT; i++) + try { + + final BufferedInputStream in = new BufferedInputStream(new URL( + urlString).openStream()); + + final ObjectInputStream oin = new ObjectInputStream(in); + final DirectoryMetadata directory = (DirectoryMetadata) oin + .readObject(); + in.close(); - final ObjectInputStream oin = new ObjectInputStream(in); - final DirectoryMetadata directory = (DirectoryMetadata) oin - .readObject(); - in.close(); + return directory; + } catch (final IOException e) { + exception = e; + } - return directory; + throw exception; } @Override public String getParentDirectoryUrl(final IndexingContext context) { final StringBuffer result = new StringBuffer(); - result.append("photos.jsp?path="); + result.append(jspPath); final List components = context.getLocalPathComponents();