diff --git a/src/main/java/bdv/server/BigDataServer.java b/src/main/java/bdv/server/BigDataServer.java index f1b60161def12c247916320f3289350100fb8269..269030f57f5e9429a9e543db3d25480fe55daf62 100644 --- a/src/main/java/bdv/server/BigDataServer.java +++ b/src/main/java/bdv/server/BigDataServer.java @@ -40,6 +40,8 @@ import java.util.Map.Entry; * per line. Each line is formatted as "NAME <TAB> XML". * -p <PORT> Listening port. (default: 8080) * -s <HOSTNAME> Hostname of the server. + * -t <DIRECTORY> Directory to store thumbnails. (new temporary directory + * by default.) * -m enable statistics and manager context. EXPERIMENTAL! * </pre> * @@ -65,8 +67,9 @@ public class BigDataServer { hostname = "localhost"; } + final String thumbnailDirectory = null; final boolean enableManagerContext = false; - return new Parameters( port, hostname, new HashMap< String, String >(), enableManagerContext ); + return new Parameters( port, hostname, new HashMap< String, String >(), thumbnailDirectory, enableManagerContext ); } public static void main( final String[] args ) throws Exception @@ -133,13 +136,16 @@ public class BigDataServer */ private final Map< String, String > datasetNameToXml; + private final String thumbnailDirectory; + private final boolean enableManagerContext; - Parameters( final int port, final String hostname, final Map< String, String > datasetNameToXml, final boolean enableManagerContext ) + Parameters( final int port, final String hostname, final Map< String, String > datasetNameToXml, final String thumbnailDirectory, final boolean enableManagerContext ) { this.port = port; this.hostname = hostname; this.datasetNameToXml = datasetNameToXml; + this.thumbnailDirectory = thumbnailDirectory; this.enableManagerContext = enableManagerContext; } @@ -155,7 +161,7 @@ public class BigDataServer public String getThumbnailDirectory() { - return null; + return thumbnailDirectory; } /** @@ -205,6 +211,12 @@ public class BigDataServer .withArgName( "FILE" ) .create( "d" ) ); + options.addOption( OptionBuilder + .withDescription( "Directory to store thumbnails. (new temporary directory by default.)" ) + .hasArg() + .withArgName( "DIRECTORY" ) + .create( "t" ) ); + if ( Constants.ENABLE_EXPERIMENTAL_FEATURES ) { options.addOption( OptionBuilder @@ -222,8 +234,10 @@ public class BigDataServer final int port = Integer.parseInt( portString ); // Getting server name option - final String serverString = cmd.getOptionValue( "s", defaultParameters.getHostname() ); - final String serverName = serverString; + final String serverName = cmd.getOptionValue( "s", defaultParameters.getHostname() ); + + // Getting thumbnail directory option + final String thumbnailDirectory = cmd.getOptionValue( "t", defaultParameters.getThumbnailDirectory() ); final HashMap< String, String > datasets = new HashMap< String, String >( defaultParameters.getDatasets() ); @@ -280,7 +294,7 @@ public class BigDataServer if ( datasets.isEmpty() ) throw new IllegalArgumentException( "Dataset list is empty." ); - return new Parameters( port, serverName, datasets, enableManagerContext ); + return new Parameters( port, serverName, datasets, thumbnailDirectory, enableManagerContext ); } catch ( final ParseException | IllegalArgumentException e ) { diff --git a/src/main/java/bdv/server/CellHandler.java b/src/main/java/bdv/server/CellHandler.java index 6125bc9123ee6cbb46a42fbec8e965d3d1641d7c..a3fe4df520e47fddfb89a0640fe169f576cdf689 100644 --- a/src/main/java/bdv/server/CellHandler.java +++ b/src/main/java/bdv/server/CellHandler.java @@ -277,8 +277,7 @@ public class CellHandler extends ContextHandler { final String thumbnailFileName = thumbnailsDirectory + "/" + datasetName + ".png"; final File thumbnailFile = new File( thumbnailFileName ); - if ( !thumbnailFile.isFile() ) // do not recreate thumbnail if it - // already exists + if ( !thumbnailFile.isFile() ) // do not recreate thumbnail if it already exists { final BufferedImage bi = ThumbnailGenerator.makeThumbnail( spimData, baseFilename, Constants.THUMBNAIL_WIDTH, Constants.THUMBNAIL_HEIGHT ); try