* don't use java.io.tmpdir for the persistent cache but our own application folder
This commit is contained in:
parent
9b2317dbb8
commit
6f56b23d35
|
@ -1,2 +1,2 @@
|
||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
java -Dapplication.dir="%APPDATA%\FileBot" -Dapplication.deployment=msi -Djava.io.tmpdir="%APPDATA%\FileBot\temp" -Xmx256m -jar "%~dp0FileBot.jar" %*
|
java -Dapplication.deployment=msi -Dapplication.dir="%APPDATA%\FileBot" -Xmx256m -jar "%~dp0FileBot.jar" %*
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# FileBot launch4j runtime config
|
# FileBot launch4j runtime config
|
||||||
-Dapplication.deployment=msi
|
-Dapplication.deployment=msi
|
||||||
-Dapplication.dir="%APPDATA%\FileBot"
|
-Dapplication.dir="%APPDATA%\FileBot"
|
||||||
-Djava.io.tmpdir="%APPDATA%\FileBot\temp"
|
|
||||||
|
|
||||||
# memory settings
|
# memory settings
|
||||||
-Xmx256m
|
-Xmx256m
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# FileBot launch4j runtime config
|
# FileBot launch4j runtime config
|
||||||
-Dapplication.deployment=msi
|
-Dapplication.deployment=msi
|
||||||
-Dapplication.dir="%APPDATA%\FileBot"
|
-Dapplication.dir="%APPDATA%\FileBot"
|
||||||
-Djava.io.tmpdir="%APPDATA%\FileBot\temp"
|
|
||||||
|
|
||||||
# memory settings
|
# memory settings
|
||||||
-Xms64m
|
-Xms64m
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
-Dapplication.deployment=portable
|
-Dapplication.deployment=portable
|
||||||
-Dapplication.dir="%EXEDIR%"
|
-Dapplication.dir="%EXEDIR%"
|
||||||
-Duser.home="%EXEDIR%"
|
-Duser.home="%EXEDIR%"
|
||||||
-Djava.io.tmpdir="%EXEDIR%\temp"
|
|
||||||
|
|
||||||
# memory settings
|
# memory settings
|
||||||
-Xmx256m
|
-Xmx256m
|
||||||
|
|
|
@ -4,4 +4,4 @@ while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
||||||
dir_bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
dir_bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||||
|
|
||||||
# WARNING: NOT TESTED / HERE THERE BE DRAGONS
|
# WARNING: NOT TESTED / HERE THERE BE DRAGONS
|
||||||
java -Dapplication.deployment=portable -Dapplication.dir="$dir_bin" -Duser.home="$dir_bin" -Djava.io.tmpdir="$dir_bin/temp" -Djna.library.path="$dir_bin" -Djava.util.prefs.PreferencesFactory=net.sourceforge.tuned.prefs.FilePreferencesFactory -Dnet.sourceforge.tuned.prefs.file=prefs.properties -Xmx256m -jar "$dir_app/FileBot.jar" "$@"
|
java -Dapplication.deployment=portable "-Dapplication.dir=$dir_bin" "-Duser.home=$dir_bin" "-Djna.library.path=$dir_bin" -Djava.util.prefs.PreferencesFactory=net.sourceforge.tuned.prefs.FilePreferencesFactory -Dnet.sourceforge.tuned.prefs.file=prefs.properties -Xmx256m -jar "$dir_app/FileBot.jar" "$@"
|
||||||
|
|
|
@ -1,177 +1,76 @@
|
||||||
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false">
|
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
CacheManager Configuration
|
Persistent disk store location
|
||||||
==========================
|
|
||||||
An ehcache.xml corresponds to a single CacheManager.
|
|
||||||
|
|
||||||
See instructions below or the ehcache schema (ehcache.xsd) on how to configure.
|
|
||||||
|
|
||||||
System property tokens can be specified in this file which are replaced when the configuration
|
|
||||||
is loaded. For example multicastGroupPort=${multicastGroupPort} can be replaced with the
|
|
||||||
System property either from an environment variable or a system property specified with a
|
|
||||||
command line switch such as -DmulticastGroupPort=4446.
|
|
||||||
|
|
||||||
DiskStore configuration
|
|
||||||
=======================
|
|
||||||
|
|
||||||
The diskStore element is optional. To turn off disk store path creation, comment out the diskStore
|
|
||||||
element below.
|
|
||||||
|
|
||||||
Configure it if you have overflowToDisk or diskPersistent enabled for any cache.
|
|
||||||
|
|
||||||
If it is not configured, and a cache is created which requires a disk store, a warning will be
|
|
||||||
issued and java.io.tmpdir will automatically be used.
|
|
||||||
|
|
||||||
diskStore has only one attribute - "path". It is the path to the directory where
|
|
||||||
.data and .index files will be created.
|
|
||||||
|
|
||||||
If the path is one of the following Java System Property it is replaced by its value in the
|
|
||||||
running VM. For backward compatibility these are not specified without being enclosed in the ${token}
|
|
||||||
replacement syntax.
|
|
||||||
|
|
||||||
The following properties are translated:
|
|
||||||
* user.home - User's home directory
|
|
||||||
* user.dir - User's current working directory
|
|
||||||
* java.io.tmpdir - Default temp file path
|
|
||||||
* ehcache.disk.store.dir - A system property you would normally specify on the command line
|
|
||||||
e.g. java -Dehcache.disk.store.dir=/u01/myapp/diskdir ...
|
|
||||||
|
|
||||||
Subdirectories can be specified below the property e.g. java.io.tmpdir/one
|
|
||||||
-->
|
|
||||||
<diskStore path="java.io.tmpdir/filebot-ehcache" />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Cache configuration
|
|
||||||
===================
|
|
||||||
|
|
||||||
The following attributes are required.
|
|
||||||
|
|
||||||
name:
|
|
||||||
Sets the name of the cache. This is used to identify the cache. It must be unique.
|
|
||||||
|
|
||||||
maxElementsInMemory:
|
|
||||||
Sets the maximum number of objects that will be created in memory
|
|
||||||
|
|
||||||
maxElementsOnDisk:
|
|
||||||
Sets the maximum number of objects that will be maintained in the DiskStore
|
|
||||||
The default value is zero, meaning unlimited.
|
|
||||||
|
|
||||||
eternal:
|
|
||||||
Sets whether elements are eternal. If eternal, timeouts are ignored and the
|
|
||||||
element is never expired.
|
|
||||||
|
|
||||||
overflowToDisk:
|
|
||||||
Sets whether elements can overflow to disk when the memory store
|
|
||||||
has reached the maxInMemory limit.
|
|
||||||
|
|
||||||
The following attributes and elements are optional.
|
|
||||||
|
|
||||||
timeToIdleSeconds:
|
|
||||||
Sets the time to idle for an element before it expires.
|
|
||||||
i.e. The maximum amount of time between accesses before an element expires
|
|
||||||
Is only used if the element is not eternal.
|
|
||||||
Optional attribute. A value of 0 means that an Element can idle for infinity.
|
|
||||||
The default value is 0.
|
|
||||||
|
|
||||||
timeToLiveSeconds:
|
|
||||||
Sets the time to live for an element before it expires.
|
|
||||||
i.e. The maximum time between creation time and when an element expires.
|
|
||||||
Is only used if the element is not eternal.
|
|
||||||
Optional attribute. A value of 0 means that and Element can live for infinity.
|
|
||||||
The default value is 0.
|
|
||||||
|
|
||||||
diskPersistent:
|
|
||||||
Whether the disk store persists between restarts of the Virtual Machine.
|
|
||||||
The default value is false.
|
|
||||||
|
|
||||||
diskExpiryThreadIntervalSeconds:
|
|
||||||
The number of seconds between runs of the disk expiry thread. The default value
|
|
||||||
is 120 seconds.
|
|
||||||
|
|
||||||
diskSpoolBufferSizeMB:
|
|
||||||
This is the size to allocate the DiskStore for a spool buffer. Writes are made
|
|
||||||
to this area and then asynchronously written to disk. The default size is 30MB.
|
|
||||||
Each spool buffer is used only by its cache. If you get OutOfMemory errors consider
|
|
||||||
lowering this value. To improve DiskStore performance consider increasing it. Trace level
|
|
||||||
logging in the DiskStore will show if put back ups are occurring.
|
|
||||||
|
|
||||||
memoryStoreEvictionPolicy:
|
|
||||||
Policy would be enforced upon reaching the maxElementsInMemory limit. Default
|
|
||||||
policy is Least Recently Used (specified as LRU). Other policies available -
|
|
||||||
First In First Out (specified as FIFO) and Less Frequently Used
|
|
||||||
(specified as LFU)
|
|
||||||
-->
|
-->
|
||||||
|
<diskStore path="${ehcache.disk.store.dir}" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Mandatory Default Cache configuration. These settings will be applied to caches
|
||||||
|
created pragmatically using CacheManager.add(String cacheName).
|
||||||
|
-->
|
||||||
|
<defaultCache
|
||||||
|
maxElementsInMemory="100"
|
||||||
|
eternal="false"
|
||||||
|
timeToIdleSeconds="120"
|
||||||
|
timeToLiveSeconds="120"
|
||||||
|
overflowToDisk="false"
|
||||||
|
diskPersistent="false"
|
||||||
|
memoryStoreEvictionPolicy="LRU"
|
||||||
|
/>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Mandatory Default Cache configuration. These settings will be applied to caches
|
|
||||||
created pragmatically using CacheManager.add(String cacheName).
|
|
||||||
-->
|
|
||||||
<defaultCache
|
|
||||||
maxElementsInMemory="100"
|
|
||||||
eternal="false"
|
|
||||||
timeToIdleSeconds="120"
|
|
||||||
timeToLiveSeconds="120"
|
|
||||||
overflowToDisk="false"
|
|
||||||
diskPersistent="false"
|
|
||||||
memoryStoreEvictionPolicy="LRU"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Short-lived (48 hours) persistent cache for web responses.
|
Short-lived (48 hours) persistent cache for web responses.
|
||||||
-->
|
-->
|
||||||
<cache name="web-datasource"
|
<cache name="web-datasource"
|
||||||
maxElementsInMemory="120"
|
maxElementsInMemory="120"
|
||||||
maxElementsOnDisk="120"
|
maxElementsOnDisk="120"
|
||||||
eternal="false"
|
eternal="false"
|
||||||
timeToIdleSeconds="172800"
|
timeToIdleSeconds="172800"
|
||||||
timeToLiveSeconds="172800"
|
timeToLiveSeconds="172800"
|
||||||
overflowToDisk="true"
|
overflowToDisk="true"
|
||||||
diskPersistent="true"
|
diskPersistent="true"
|
||||||
memoryStoreEvictionPolicy="LRU"
|
memoryStoreEvictionPolicy="LRU"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Very long-lived cache (one month!) anime/series list and episode information.
|
Very long-lived cache (one month!) anime/series list and episode information.
|
||||||
-->
|
-->
|
||||||
<cache name="web-persistent-datasource"
|
<cache name="web-persistent-datasource"
|
||||||
maxElementsInMemory="40"
|
maxElementsInMemory="40"
|
||||||
maxElementsOnDisk="240"
|
maxElementsOnDisk="240"
|
||||||
eternal="false"
|
eternal="false"
|
||||||
timeToIdleSeconds="2628000"
|
timeToIdleSeconds="2628000"
|
||||||
timeToLiveSeconds="2628000"
|
timeToLiveSeconds="2628000"
|
||||||
overflowToDisk="true"
|
overflowToDisk="true"
|
||||||
diskPersistent="true"
|
diskPersistent="true"
|
||||||
memoryStoreEvictionPolicy="LRU"
|
memoryStoreEvictionPolicy="LRU"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!--
|
||||||
<!--
|
Simple memory cache for calculated checksums. Time to live is 2 hours. This cache is used in EpisodeFormatBindingBean
|
||||||
Simple memory cache for calculated checksums. Time to live is 2 hours. This cache is used in EpisodeFormatBindingBean
|
-->
|
||||||
-->
|
<cache name="checksum"
|
||||||
<cache name="checksum"
|
maxElementsInMemory="4200"
|
||||||
maxElementsInMemory="4200"
|
eternal="false"
|
||||||
eternal="false"
|
timeToIdleSeconds="7200"
|
||||||
timeToIdleSeconds="7200"
|
timeToLiveSeconds="7200"
|
||||||
timeToLiveSeconds="7200"
|
overflowToDisk="false"
|
||||||
overflowToDisk="false"
|
diskPersistent="false"
|
||||||
diskPersistent="false"
|
memoryStoreEvictionPolicy="LRU"
|
||||||
memoryStoreEvictionPolicy="LRU"
|
/>
|
||||||
/>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Short-lived memory cache for resources like icons. This cache is used by ResourceManager.
|
Short-lived memory cache for resources like icons. This cache is used by ResourceManager.
|
||||||
-->
|
-->
|
||||||
<cache name="resource"
|
<cache name="resource"
|
||||||
maxElementsInMemory="40"
|
maxElementsInMemory="40"
|
||||||
eternal="false"
|
eternal="false"
|
||||||
timeToIdleSeconds="120"
|
timeToIdleSeconds="120"
|
||||||
timeToLiveSeconds="120"
|
timeToLiveSeconds="120"
|
||||||
overflowToDisk="false"
|
overflowToDisk="false"
|
||||||
diskPersistent="false"
|
diskPersistent="false"
|
||||||
memoryStoreEvictionPolicy="LRU"
|
memoryStoreEvictionPolicy="LRU"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</ehcache>
|
</ehcache>
|
||||||
|
|
|
@ -13,6 +13,7 @@ import java.awt.Dialog.ModalityType;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.WindowAdapter;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
@ -266,6 +267,7 @@ public class Main {
|
||||||
* Shutdown ehcache properly, so that disk-persistent stores can actually be saved to disk
|
* Shutdown ehcache properly, so that disk-persistent stores can actually be saved to disk
|
||||||
*/
|
*/
|
||||||
private static void initializeCache() {
|
private static void initializeCache() {
|
||||||
|
System.setProperty("ehcache.disk.store.dir", new File(getApplicationFolder(), "cache").getAbsolutePath());
|
||||||
Runtime.getRuntime().addShutdownHook(new Thread() {
|
Runtime.getRuntime().addShutdownHook(new Thread() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue