aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/sip/communicator')
-rw-r--r--src/net/java/sip/communicator/impl/contactlist/MclStorageManager.java3
-rwxr-xr-xsrc/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java5
-rw-r--r--src/net/java/sip/communicator/impl/gui/main/presence/avatar/AvatarStackManager.java16
-rw-r--r--src/net/java/sip/communicator/impl/history/HistoryServiceImpl.java30
-rw-r--r--src/net/java/sip/communicator/impl/keybindings/KeybindingsServiceImpl.java6
-rw-r--r--src/net/java/sip/communicator/impl/packetlogging/PacketLoggingServiceImpl.java12
-rw-r--r--src/net/java/sip/communicator/impl/protocol/msn/OperationSetServerStoredAccountInfoMsnImpl.java8
-rw-r--r--src/net/java/sip/communicator/launcher/SIPCommunicator.java67
-rw-r--r--src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java4
-rw-r--r--src/net/java/sip/communicator/plugin/loggingutils/LogsCollector.java4
-rw-r--r--src/net/java/sip/communicator/plugin/spellcheck/SpellChecker.java18
-rw-r--r--src/net/java/sip/communicator/util/AvatarCacheUtils.java8
-rw-r--r--src/net/java/sip/communicator/util/FileHandler.java8
-rw-r--r--src/net/java/sip/communicator/util/launchutils/LaunchArgHandler.java16
-rw-r--r--src/net/java/sip/communicator/util/launchutils/SipCommunicatorLock.java18
15 files changed, 150 insertions, 73 deletions
diff --git a/src/net/java/sip/communicator/impl/contactlist/MclStorageManager.java b/src/net/java/sip/communicator/impl/contactlist/MclStorageManager.java
index 27052e8..3d45280 100644
--- a/src/net/java/sip/communicator/impl/contactlist/MclStorageManager.java
+++ b/src/net/java/sip/communicator/impl/contactlist/MclStorageManager.java
@@ -295,7 +295,8 @@ public class MclStorageManager
// get a reference to the contact list file.
try
{
- contactlistFile = faService.getPrivatePersistentFile(fileName);
+ contactlistFile = faService.getPrivatePersistentFile(fileName,
+ FileCategory.PROFILE);
if (!contactlistFile.exists() && !contactlistFile.createNewFile())
throw new IOException("Failed to create file"
diff --git a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java
index 537fd07..c462a20 100755
--- a/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java
+++ b/src/net/java/sip/communicator/impl/gui/main/chat/ChatConversationPanel.java
@@ -22,6 +22,7 @@ import javax.swing.text.html.*;
import javax.swing.text.html.HTML.*;
import org.jitsi.service.configuration.*;
+import org.jitsi.service.fileaccess.FileCategory;
import net.java.sip.communicator.impl.gui.*;
import net.java.sip.communicator.impl.gui.main.chat.history.*;
@@ -1841,7 +1842,7 @@ public class ChatConversationPanel
try
{
avatarFile = GuiActivator.getFileAccessService()
- .getPrivatePersistentFile(avatarPath);
+ .getPrivatePersistentFile(avatarPath, FileCategory.CACHE);
}
catch (Exception e)
{
@@ -1874,7 +1875,7 @@ public class ChatConversationPanel
try
{
avatarFile = GuiActivator.getFileAccessService()
- .getPrivatePersistentFile(avatarPath);
+ .getPrivatePersistentFile(avatarPath, FileCategory.CACHE);
}
catch (Exception e)
{
diff --git a/src/net/java/sip/communicator/impl/gui/main/presence/avatar/AvatarStackManager.java b/src/net/java/sip/communicator/impl/gui/main/presence/avatar/AvatarStackManager.java
index b38d867..948716e 100644
--- a/src/net/java/sip/communicator/impl/gui/main/presence/avatar/AvatarStackManager.java
+++ b/src/net/java/sip/communicator/impl/gui/main/presence/avatar/AvatarStackManager.java
@@ -45,7 +45,7 @@ public class AvatarStackManager
{
File imageFile
= GuiActivator.getFileAccessService().getPrivatePersistentFile(
- fileName);
+ fileName, FileCategory.CACHE);
if (imageFile.exists() && !imageFile.delete())
logger.error("Failed to delete stored image at index " + index);
@@ -72,7 +72,7 @@ public class AvatarStackManager
imageFile
= GuiActivator.getFileAccessService().getPrivatePersistentFile(
- imagePath);
+ imagePath, FileCategory.CACHE);
}
catch (Exception e)
{
@@ -108,11 +108,13 @@ public class AvatarStackManager
try
{
FileAccessService fas = GuiActivator.getFileAccessService();
- File oldFile = fas.getPrivatePersistentFile(oldImagePath);
+ File oldFile = fas.getPrivatePersistentFile(oldImagePath,
+ FileCategory.CACHE);
if (oldFile.exists())
{
- File newFile = fas.getPrivatePersistentFile(newImagePath);
+ File newFile = fas.getPrivatePersistentFile(newImagePath,
+ FileCategory.CACHE);
oldFile.renameTo(newFile);
}
@@ -147,12 +149,14 @@ public class AvatarStackManager
try
{
FileAccessService fas = GuiActivator.getFileAccessService();
- File storeDir = fas.getPrivatePersistentDirectory(STORE_DIR);
+ File storeDir = fas.getPrivatePersistentDirectory(STORE_DIR,
+ FileCategory.CACHE);
// if dir doesn't exist create it
storeDir.mkdirs();
- File file = fas.getPrivatePersistentFile(imagePath);
+ File file = fas.getPrivatePersistentFile(imagePath,
+ FileCategory.CACHE);
ImageIO.write(image, "png", file);
}
diff --git a/src/net/java/sip/communicator/impl/history/HistoryServiceImpl.java b/src/net/java/sip/communicator/impl/history/HistoryServiceImpl.java
index d799999..370558b 100644
--- a/src/net/java/sip/communicator/impl/history/HistoryServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/history/HistoryServiceImpl.java
@@ -101,7 +101,7 @@ public class HistoryServiceImpl
= getFileAccessService().getPrivatePersistentDirectory(
(userSetDataDirectory == null)
? DATA_DIRECTORY
- : userSetDataDirectory);
+ : userSetDataDirectory, FileCategory.PROFILE);
findDatFiles(vect, histDir);
} catch (Exception e)
@@ -246,24 +246,29 @@ public class HistoryServiceImpl
throws IOException
{
String[] idComponents = id.getID();
- String[] dirs = new String[idComponents.length + 1];
- String userSetDataDirectory = System.getProperty("HistoryServiceDirectory");
- if(userSetDataDirectory != null)
- dirs[0] = userSetDataDirectory;
- else
- dirs[0] = DATA_DIRECTORY;
-
- // escape chars in direcotory names
+ // escape chars in directory names
escapeCharacters(idComponents);
- System.arraycopy(idComponents, 0, dirs, 1, dirs.length - 1);
+ String userSetDataDirectory
+ = System.getProperty("HistoryServiceDirectory");
+
+ File dir = new File(userSetDataDirectory != null
+ ? userSetDataDirectory
+ : DATA_DIRECTORY);
+
+ for (String s : idComponents)
+ {
+ dir = new File(dir, s);
+ }
File directory = null;
try
{
directory
- = getFileAccessService().getPrivatePersistentDirectory(dirs);
+ = getFileAccessService().getPrivatePersistentDirectory(
+ dir.toString(),
+ FileCategory.PROFILE);
}
catch (Exception e)
{
@@ -475,7 +480,8 @@ public class HistoryServiceImpl
= getFileAccessService().getPrivatePersistentDirectory(
(userSetDataDirectory == null)
? DATA_DIRECTORY
- : userSetDataDirectory);
+ : userSetDataDirectory,
+ FileCategory.PROFILE);
}
catch (Exception e)
{
diff --git a/src/net/java/sip/communicator/impl/keybindings/KeybindingsServiceImpl.java b/src/net/java/sip/communicator/impl/keybindings/KeybindingsServiceImpl.java
index bdeb0f1..d528c0c 100644
--- a/src/net/java/sip/communicator/impl/keybindings/KeybindingsServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/keybindings/KeybindingsServiceImpl.java
@@ -139,13 +139,15 @@ class KeybindingsServiceImpl
// Makes directory for custom bindings if it doesn't exist
File customDir =
faService
- .getPrivatePersistentDirectory(CUSTOM_KEYBINDING_DIR);
+ .getPrivatePersistentDirectory(CUSTOM_KEYBINDING_DIR,
+ FileCategory.PROFILE);
if (!customDir.exists())
customDir.mkdir();
// Gets file access service to reference persistent storage
// of the user
- customFile = faService.getPrivatePersistentFile(customPath);
+ customFile = faService.getPrivatePersistentFile(customPath,
+ FileCategory.PROFILE);
}
catch (Exception exc)
{
diff --git a/src/net/java/sip/communicator/impl/packetlogging/PacketLoggingServiceImpl.java b/src/net/java/sip/communicator/impl/packetlogging/PacketLoggingServiceImpl.java
index 964b6e2..62deaa9 100644
--- a/src/net/java/sip/communicator/impl/packetlogging/PacketLoggingServiceImpl.java
+++ b/src/net/java/sip/communicator/impl/packetlogging/PacketLoggingServiceImpl.java
@@ -11,6 +11,7 @@ import java.util.*;
import net.java.sip.communicator.util.*;
+import org.jitsi.service.fileaccess.*;
import org.jitsi.service.packetlogging.*;
/**
@@ -165,12 +166,11 @@ public class PacketLoggingServiceImpl
for(int i = 0; i < fileCount; i++)
{
files[i]
- = PacketLoggingActivator.getFileAccessService().getPrivatePersistentFile(
- PacketLoggingActivator.LOGGING_DIR_NAME
- + File.separator
- + "jitsi"
- + i
- + ".pcap");
+ = PacketLoggingActivator.getFileAccessService()
+ .getPrivatePersistentFile(
+ new File(PacketLoggingActivator.LOGGING_DIR_NAME,
+ "jitsi" + i + ".pcap").toString(),
+ FileCategory.LOG);
}
}
diff --git a/src/net/java/sip/communicator/impl/protocol/msn/OperationSetServerStoredAccountInfoMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetServerStoredAccountInfoMsnImpl.java
index 421c2c1..81aa89a 100644
--- a/src/net/java/sip/communicator/impl/protocol/msn/OperationSetServerStoredAccountInfoMsnImpl.java
+++ b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetServerStoredAccountInfoMsnImpl.java
@@ -11,6 +11,8 @@ import java.util.*;
import javax.imageio.*;
+import org.jitsi.service.fileaccess.FileCategory;
+
import net.java.sip.communicator.service.protocol.*;
import net.java.sip.communicator.service.protocol.ServerStoredDetails.GenericDetail;
import net.java.sip.communicator.service.protocol.ServerStoredDetails.ImageDetail;
@@ -397,13 +399,13 @@ public class OperationSetServerStoredAccountInfoMsnImpl
+ msnProvider.getAccountID().getAccountUniqueID() + ".jpg";
File storeDir = MsnActivator.getFileAccessService()
- .getPrivatePersistentDirectory(STORE_DIR);
+ .getPrivatePersistentDirectory(STORE_DIR, FileCategory.CACHE);
// if dir doesn't exist create it
storeDir.mkdirs();
File file = MsnActivator.getFileAccessService()
- .getPrivatePersistentFile(imagePath);
+ .getPrivatePersistentFile(imagePath, FileCategory.CACHE);
ImageIO.write(
ImageIO.read(new ByteArrayInputStream(data)),
@@ -557,7 +559,7 @@ public class OperationSetServerStoredAccountInfoMsnImpl
+ msnProvider.getAccountID().getAccountUniqueID() + ".jpg";
File file = MsnActivator.getFileAccessService()
- .getPrivatePersistentFile(imagePath);
+ .getPrivatePersistentFile(imagePath, FileCategory.CACHE);
if(file.exists())
{
diff --git a/src/net/java/sip/communicator/launcher/SIPCommunicator.java b/src/net/java/sip/communicator/launcher/SIPCommunicator.java
index fb56729..6353fc4 100644
--- a/src/net/java/sip/communicator/launcher/SIPCommunicator.java
+++ b/src/net/java/sip/communicator/launcher/SIPCommunicator.java
@@ -32,6 +32,20 @@ public class SIPCommunicator
= { ".sip-communicator", "SIP Communicator" };
/**
+ * The name of the property that stores the home dir for cache data, such
+ * as avatars and spelling dictionaries.
+ */
+ public static final String PNAME_SC_CACHE_DIR_LOCATION =
+ "net.java.sip.communicator.SC_CACHE_DIR_LOCATION";
+
+ /**
+ * The name of the property that stores the home dir for application log
+ * files (not history).
+ */
+ public static final String PNAME_SC_LOG_DIR_LOCATION =
+ "net.java.sip.communicator.SC_LOG_DIR_LOCATION";
+
+ /**
* Name of the possible configuration file names (used under macosx).
*/
private static final String[] LEGACY_CONFIGURATION_FILE_NAMES
@@ -182,12 +196,14 @@ public class SIPCommunicator
* ${user.home}/.sip-communicator if it exists (and the new path isn't
* already in use).
*/
- String location = System.getProperty(PNAME_SC_HOME_DIR_LOCATION);
+ String profileLocation = System.getProperty(PNAME_SC_HOME_DIR_LOCATION);
+ String cacheLocation = System.getProperty(PNAME_SC_CACHE_DIR_LOCATION);
+ String logLocation = System.getProperty(PNAME_SC_LOG_DIR_LOCATION);
String name = System.getProperty(PNAME_SC_HOME_DIR_NAME);
boolean isHomeDirnameForced = name != null;
- if ((location == null) || (name == null))
+ if (profileLocation == null || name == null)
{
String defaultLocation = System.getProperty("user.home");
String defaultName = ".jitsi";
@@ -202,11 +218,22 @@ public class SIPCommunicator
if (osName.startsWith("Mac"))
{
- if (location == null)
- location =
+ if (profileLocation == null)
+ profileLocation =
System.getProperty("user.home") + File.separator
+ "Library" + File.separator
+ "Application Support";
+ if (cacheLocation == null)
+ cacheLocation =
+ System.getProperty("user.home") + File.separator
+ + "Library" + File.separator
+ + "Caches";
+ if (logLocation == null)
+ logLocation =
+ System.getProperty("user.home") + File.separator
+ + "Library" + File.separator
+ + "Logs";
+
if (name == null)
name = "Jitsi";
}
@@ -218,15 +245,23 @@ public class SIPCommunicator
* it may be a good idea to follow the OS recommendations and
* use APPDATA on pre-Vista systems as well.
*/
- if (location == null)
- location = System.getenv("APPDATA");
+ if (profileLocation == null)
+ profileLocation = System.getenv("APPDATA");
+ if (cacheLocation == null)
+ cacheLocation = System.getenv("LOCALAPPDATA");
+ if (logLocation == null)
+ logLocation = System.getenv("LOCALAPPDATA");
if (name == null)
name = "Jitsi";
}
/* If there're no OS specifics, use the defaults. */
- if (location == null)
- location = defaultLocation;
+ if (profileLocation == null)
+ profileLocation = defaultLocation;
+ if (cacheLocation == null)
+ cacheLocation = profileLocation;
+ if (logLocation == null)
+ logLocation = profileLocation;
if (name == null)
name = defaultName;
@@ -236,23 +271,23 @@ public class SIPCommunicator
* doesn't look for the default dir.
*/
if (!isHomeDirnameForced
- && (new File(location, name).isDirectory() == false)
+ && (new File(profileLocation, name).isDirectory() == false)
&& new File(defaultLocation, defaultName).isDirectory())
{
- location = defaultLocation;
+ profileLocation = defaultLocation;
name = defaultName;
}
// if we need to check legacy names and there is no current home dir
// already created
if(chekLegacyDirNames
- && !checkHomeFolderExist(location, name, osName))
+ && !checkHomeFolderExist(profileLocation, name, osName))
{
// now check whether a legacy dir name exists and use it
for(String dir : LEGACY_DIR_NAMES)
{
// check the platform specific directory
- if(checkHomeFolderExist(location, dir, osName))
+ if(checkHomeFolderExist(profileLocation, dir, osName))
{
name = dir;
break;
@@ -262,18 +297,20 @@ public class SIPCommunicator
if(checkHomeFolderExist(defaultLocation, dir, osName))
{
name = dir;
- location = defaultLocation;
+ profileLocation = defaultLocation;
break;
}
}
}
- System.setProperty(PNAME_SC_HOME_DIR_LOCATION, location);
+ System.setProperty(PNAME_SC_HOME_DIR_LOCATION, profileLocation);
+ System.setProperty(PNAME_SC_CACHE_DIR_LOCATION, cacheLocation);
+ System.setProperty(PNAME_SC_LOG_DIR_LOCATION, logLocation);
System.setProperty(PNAME_SC_HOME_DIR_NAME, name);
}
// when we end up with the home dirs, make sure we have log dir
- new File(location, name + File.separator + "log").mkdirs();
+ new File(new File(logLocation, name), "log").mkdirs();
}
/**
diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java b/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java
index 4faa6c1..722e264 100644
--- a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java
+++ b/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java
@@ -20,6 +20,7 @@ import net.java.sip.communicator.service.dns.*;
import net.java.sip.communicator.util.*;
import org.jitsi.service.configuration.*;
+import org.jitsi.service.fileaccess.*;
import org.jitsi.service.resources.*;
import org.osgi.framework.*;
@@ -250,7 +251,8 @@ public class DnssecPanel
try
{
f = DnsConfigActivator.getFileAccessService()
- .getPrivatePersistentFile(".usednsjava");
+ .getPrivatePersistentFile(".usednsjava",
+ FileCategory.PROFILE);
if(chkEnabled.isSelected())
{
if(!f.createNewFile() && !f.exists())
diff --git a/src/net/java/sip/communicator/plugin/loggingutils/LogsCollector.java b/src/net/java/sip/communicator/plugin/loggingutils/LogsCollector.java
index 93a87c5..df85586 100644
--- a/src/net/java/sip/communicator/plugin/loggingutils/LogsCollector.java
+++ b/src/net/java/sip/communicator/plugin/loggingutils/LogsCollector.java
@@ -13,6 +13,7 @@ import java.util.zip.*;
import net.java.sip.communicator.util.Logger;
+import org.jitsi.service.fileaccess.*;
import org.jitsi.util.*;
/**
@@ -124,7 +125,8 @@ public class LogsCollector
try
{
File[] fs = LoggingUtilsActivator.getFileAccessService()
- .getPrivatePersistentDirectory(LOGGING_DIR_NAME).listFiles();
+ .getPrivatePersistentDirectory(LOGGING_DIR_NAME,
+ FileCategory.LOG).listFiles();
for(File f : fs)
{
diff --git a/src/net/java/sip/communicator/plugin/spellcheck/SpellChecker.java b/src/net/java/sip/communicator/plugin/spellcheck/SpellChecker.java
index 51204e6..092542a 100644
--- a/src/net/java/sip/communicator/plugin/spellcheck/SpellChecker.java
+++ b/src/net/java/sip/communicator/plugin/spellcheck/SpellChecker.java
@@ -98,7 +98,8 @@ class SpellChecker
SpellCheckActivator.getFileAccessService();
// checks if DICT_DIR exists to see if this is the first run
- File dictionaryDir = faService.getPrivatePersistentFile(DICT_DIR);
+ File dictionaryDir = faService.getPrivatePersistentFile(DICT_DIR,
+ FileCategory.CACHE);
if (!dictionaryDir.exists())
{
@@ -124,7 +125,8 @@ class SpellChecker
String filename = dictUrl.getPath().substring(filenameStart);
File dictLocation =
- faService.getPrivatePersistentFile(DICT_DIR + filename);
+ faService.getPrivatePersistentFile(DICT_DIR + filename,
+ FileCategory.CACHE);
copyDictionary(source, dictLocation);
}
@@ -133,7 +135,8 @@ class SpellChecker
// gets resource for personal dictionary
this.personalDictLocation =
- faService.getPrivatePersistentFile(DICT_DIR + PERSONAL_DICT_NAME);
+ faService.getPrivatePersistentFile(DICT_DIR + PERSONAL_DICT_NAME,
+ FileCategory.PROFILE);
if (!personalDictLocation.exists())
personalDictLocation.createNewFile();
@@ -379,7 +382,8 @@ class SpellChecker
File dictLocation =
SpellCheckActivator.getFileAccessService()
- .getPrivatePersistentFile(DICT_DIR + filename);
+ .getPrivatePersistentFile(DICT_DIR + filename,
+ FileCategory.CACHE);
// downloads dictionary if unavailable (not cached)
if (!dictLocation.exists())
@@ -430,7 +434,8 @@ class SpellChecker
File dictLocation =
SpellCheckActivator.getFileAccessService()
- .getPrivatePersistentFile(DICT_DIR + filename);
+ .getPrivatePersistentFile(DICT_DIR + filename,
+ FileCategory.CACHE);
if (dictLocation.exists())
dictLocation.delete();
@@ -457,7 +462,8 @@ class SpellChecker
{
File dictLocation =
SpellCheckActivator.getFileAccessService()
- .getPrivatePersistentFile(DICT_DIR + filename);
+ .getPrivatePersistentFile(DICT_DIR + filename,
+ FileCategory.CACHE);
return dictLocation.exists();
}
diff --git a/src/net/java/sip/communicator/util/AvatarCacheUtils.java b/src/net/java/sip/communicator/util/AvatarCacheUtils.java
index 37dcac1..b9418bc 100644
--- a/src/net/java/sip/communicator/util/AvatarCacheUtils.java
+++ b/src/net/java/sip/communicator/util/AvatarCacheUtils.java
@@ -176,7 +176,8 @@ public class AvatarCacheUtils
File avatarFile
= UtilActivator
.getFileAccessService()
- .getPrivatePersistentFile(avatarPath);
+ .getPrivatePersistentFile(avatarPath,
+ FileCategory.CACHE);
if(avatarFile.exists())
{
@@ -297,10 +298,11 @@ public class AvatarCacheUtils
avatarDir
= fileAccessService.getPrivatePersistentDirectory(
- avatarDirPath);
+ avatarDirPath, FileCategory.CACHE);
avatarFile
= fileAccessService.getPrivatePersistentFile(
- avatarDirPath + File.separator + avatarFileName);
+ new File(avatarDirPath, avatarFileName).toString(),
+ FileCategory.CACHE);
if(!avatarFile.exists())
{
diff --git a/src/net/java/sip/communicator/util/FileHandler.java b/src/net/java/sip/communicator/util/FileHandler.java
index 49b2ecb..6a971c9 100644
--- a/src/net/java/sip/communicator/util/FileHandler.java
+++ b/src/net/java/sip/communicator/util/FileHandler.java
@@ -41,7 +41,7 @@ public class FileHandler
* %t, %h, %g, %u.
* Also adds the special component :
* %s sip-communicator's home directory, typically -
- * ${net.java.sip.communicator.SC_HOME_DIR_LOCATION}/
+ * ${net.java.sip.communicator.SC_LOG_DIR_LOCATION}/
* ${net.java.sip.communicator.SC_HOME_DIR_NAME}.
* <p>
* The field is public so that our <tt>Logger</tt> could reset it if
@@ -135,9 +135,9 @@ public class FileHandler
FileHandler.class.getName() + ".pattern");
String homeLocation = System.getProperty(
- "net.java.sip.communicator.SC_HOME_DIR_LOCATION");
+ "net.java.sip.communicator.SC_LOG_DIR_LOCATION");
String dirName = System.getProperty(
- "net.java.sip.communicator.SC_HOME_DIR_NAME");
+ "net.java.sip.communicator.SC_HOME_DIR_NAME");
if(homeLocation != null && dirName != null)
{
@@ -149,7 +149,7 @@ public class FileHandler
homeLocation + "/" + dirName);
}
- // if pattern is missing and both dir name and home lcation
+ // if pattern is missing and both dir name and home location
// properties are also not defined its most probably running from
// source or testing - lets create log directory in working dir.
if(pattern == null)
diff --git a/src/net/java/sip/communicator/util/launchutils/LaunchArgHandler.java b/src/net/java/sip/communicator/util/launchutils/LaunchArgHandler.java
index adc6c36..a6de4cb 100644
--- a/src/net/java/sip/communicator/util/launchutils/LaunchArgHandler.java
+++ b/src/net/java/sip/communicator/util/launchutils/LaunchArgHandler.java
@@ -35,6 +35,20 @@ public class LaunchArgHandler
"net.java.sip.communicator.SC_HOME_DIR_LOCATION";
/**
+ * The name of the property that stores the home dir for cache data, such
+ * as avatars or spelling dictionaries.
+ */
+ private static final String PNAME_SC_CACHE_DIR_LOCATION =
+ "net.java.sip.communicator.SC_CACHE_DIR_LOCATION";
+
+ /**
+ * The name of the property that stores the home dir for application logs
+ * (not history).
+ */
+ private static final String PNAME_SC_LOG_DIR_LOCATION =
+ "net.java.sip.communicator.SC_LOG_DIR_LOCATION";
+
+ /**
* The name of the property that contains the name of the SC configuration
* directory.
*/
@@ -381,6 +395,8 @@ public class LaunchArgHandler
}
System.setProperty(PNAME_SC_HOME_DIR_LOCATION, configDir.getParent());
+ System.setProperty(PNAME_SC_CACHE_DIR_LOCATION, configDir.getParent());
+ System.setProperty(PNAME_SC_LOG_DIR_LOCATION, configDir.getParent());
System.setProperty(PNAME_SC_HOME_DIR_NAME, configDir.getName());
//we instantiated our class logger before we had a chance to change
diff --git a/src/net/java/sip/communicator/util/launchutils/SipCommunicatorLock.java b/src/net/java/sip/communicator/util/launchutils/SipCommunicatorLock.java
index 33b0fb9..f0d0844 100644
--- a/src/net/java/sip/communicator/util/launchutils/SipCommunicatorLock.java
+++ b/src/net/java/sip/communicator/util/launchutils/SipCommunicatorLock.java
@@ -473,17 +473,13 @@ public class SipCommunicatorLock extends Thread
*/
private File getLockFile()
{
- String homeDirLocation
- = System.getProperty(SIPCommunicator.PNAME_SC_HOME_DIR_LOCATION);
- String homeDirName
- = System.getProperty(SIPCommunicator.PNAME_SC_HOME_DIR_NAME);
- String fileSeparator = System.getProperty("file.separator");
- String fullLockFileName
- = homeDirLocation + fileSeparator
- + homeDirName + fileSeparator
- + LOCK_FILE_NAME;
-
- return new File(fullLockFileName);
+ String homeDirLocation =
+ System
+ .getProperty(SIPCommunicator.PNAME_SC_CACHE_DIR_LOCATION);
+ String homeDirName = System
+ .getProperty(SIPCommunicator.PNAME_SC_HOME_DIR_NAME);
+
+ return new File(new File(homeDirLocation, homeDirName), LOCK_FILE_NAME);
}
/**