import org.sonar.api.config.Settings;
import org.sonar.api.platform.Server;
import org.sonar.api.platform.ServerFileSystem;
-import org.sonar.core.persistence.Database;
import java.io.File;
import java.io.FileFilter;
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultServerFileSystem.class);
- private Database database;
private final Server server;
- private File homeDir;
+ private final File homeDir, tempDir;
- public DefaultServerFileSystem(Database database, Settings settings, Server server) {
- this.database = database;
+ public DefaultServerFileSystem(Settings settings, Server server) {
this.server = server;
this.homeDir = new File(settings.getString("sonar.path.home"));
+ this.tempDir = new File(settings.getString("sonar.path.temp"));
}
/**
* for unit tests
*/
- public DefaultServerFileSystem(Database database, File homeDir, Server server) {
- this.database = database;
+ public DefaultServerFileSystem(File homeDir, File tempDir, Server server) {
this.homeDir = homeDir;
+ this.tempDir = tempDir;
this.server = server;
}
@Override
public File getTempDir() {
- return new File(homeDir, "temp");
+ return tempDir;
}
public File getDeployDir() {
package org.sonar.server.platform;
import com.google.common.io.Resources;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
import org.sonar.api.platform.ServerFileSystem;
import java.io.File;
private static final String PATH = "org/sonar/server/platform/DefaultServerFileSystemTest/";
+ @Rule
+ public TemporaryFolder temp = new TemporaryFolder();
+
@Test
public void find_plugins() throws Exception {
- List<File> plugins = new DefaultServerFileSystem(null, new File(Resources.getResource(PATH + "shouldFindPlugins").toURI()), null).getUserPlugins();
+ List<File> plugins = new DefaultServerFileSystem(new File(Resources.getResource(PATH + "shouldFindPlugins").toURI()), temp.newFolder(), null).getUserPlugins();
assertThat(plugins).hasSize(2);
}
@Test
public void not_fail_if_no_plugins() throws Exception {
- List<File> plugins = new DefaultServerFileSystem(null, new File(Resources.getResource(PATH + "shouldNotFailIfNoPlugins").toURI()), null).getUserPlugins();
+ List<File> plugins = new DefaultServerFileSystem(new File(Resources.getResource(PATH + "shouldNotFailIfNoPlugins").toURI()), temp.newFolder(), null).getUserPlugins();
assertThat(plugins).isEmpty();
}
@Test
public void find_checkstyle_extensions() throws Exception {
- ServerFileSystem fs = new DefaultServerFileSystem(null, new File(Resources.getResource(PATH + "shouldFindCheckstyleExtensions").toURI()), null);
+ ServerFileSystem fs = new DefaultServerFileSystem(new File(Resources.getResource(PATH + "shouldFindCheckstyleExtensions").toURI()), temp.newFolder(), null);
List<File> xmls = fs.getExtensions("checkstyle", "xml");
assertThat(xmls).hasSize(1);
@Test
public void not_fail_if_no_checkstyle_extensions() throws Exception {
- ServerFileSystem fs = new DefaultServerFileSystem(null, new File(Resources.getResource(PATH + "shouldNotFailIfNoCheckstyleExtensions").toURI()), null);
+ ServerFileSystem fs = new DefaultServerFileSystem(new File(Resources.getResource(PATH + "shouldNotFailIfNoCheckstyleExtensions").toURI()), temp.newFolder(), null);
List<File> xmls = fs.getExtensions("checkstyle", "xml");
assertThat(xmls).isEmpty();
import org.sonar.api.platform.Server;
import org.sonar.api.platform.ServerUpgradeStatus;
import org.sonar.api.utils.MessageException;
-import org.sonar.core.persistence.Database;
import org.sonar.server.platform.DefaultServerFileSystem;
import java.io.File;
public TemporaryFolder temp = new TemporaryFolder();
DefaultServerFileSystem fileSystem;
- File homeDir, pluginsDir, downloadsDir, bundledDir, trashDir, coreDir;
+ File homeDir, tempDir, pluginsDir, downloadsDir, bundledDir, trashDir, coreDir;
ServerPluginJarInstaller jarInstaller;
ServerPluginJarsInstaller jarsInstaller;
Server server = mock(Server.class);
homeDir = temp.newFolder("home");
pluginsDir = new File(homeDir, "extensions/plugins");
+ tempDir = temp.newFolder();
FileUtils.forceMkdir(pluginsDir);
downloadsDir = new File(homeDir, "extensions/downloads");
trashDir = new File(homeDir, "extensions/trash");
coreDir = new File(homeDir, "lib/core-plugins");
FileUtils.forceMkdir(bundledDir);
- fileSystem = new DefaultServerFileSystem(mock(Database.class), homeDir, server);
+ fileSystem = new DefaultServerFileSystem(homeDir, tempDir, server);
jarInstaller = new ServerPluginJarInstaller();
jarsInstaller = new ServerPluginJarsInstaller(server, upgradeStatus, fileSystem, jarInstaller);
}
properties.setProperty(IndexProperties.NODE_PORT, clusterPort.toString());
properties.setProperty("sonar.path.home", homeDir.getAbsolutePath());
+ properties.setProperty("sonar.path.temp", createTempDir().getAbsolutePath());
properties.setProperty(DatabaseProperties.PROP_URL, "jdbc:h2:" + homeDir.getAbsolutePath() + "/h2");
for (Map.Entry<Object, Object> entry : System.getProperties().entrySet()) {
String key = entry.getKey().toString();