/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 2007.
*
* Licensed under the Aduna BSD-style license.
*/
package org.openrdf.http.server;
import java.io.File;
import info.aduna.net.http.server.embedded.EmbeddedServer;
import org.openrdf.http.protocol.Protocol;
import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import org.openrdf.repository.config.RepositoryConfig;
import org.openrdf.repository.config.RepositoryConfigException;
import org.openrdf.repository.config.RepositoryConfigUtil;
import org.openrdf.repository.http.HTTPRepository;
import org.openrdf.repository.manager.SystemRepository;
import org.openrdf.repository.sail.config.SailRepositoryConfig;
import org.openrdf.sail.inferencer.fc.config.ForwardChainingRDFSInferencerConfig;
import org.openrdf.sail.memory.config.MemoryStoreConfig;
/**
* @author Herko ter Horst
*/
public class TestServer extends EmbeddedServer {
public static final String TEST_REPO_ID = "Test";
public static final String TEST_INFERENCE_REPO_ID = "Test-RDFS";
public static final String OPENRDF_CONTEXT = "/openrdf";
public static String SERVER_URL = "http://" + DEFAULT_HOST + ":" + DEFAULT_PORT + OPENRDF_CONTEXT;
public static String REPOSITORY_URL = Protocol.getRepositoryLocation(TestServer.SERVER_URL, TEST_REPO_ID);
public static String INFERENCE_REPOSITORY_URL = Protocol.getRepositoryLocation(TestServer.SERVER_URL,
TEST_INFERENCE_REPO_ID);
public static final String OPENRDF_SERVER_WAR = "./target/openrdf-sesame";
public TestServer() {
// warPath configured in pom.xml maven-war-plugin configuration
super(DEFAULT_HOST, DEFAULT_PORT, OPENRDF_CONTEXT, OPENRDF_SERVER_WAR);
}
@Override
public void start()
throws Exception
{
File dataDir = new File(System.getProperty("user.dir") + "/target/datadir");
dataDir.mkdirs();
System.setProperty("info.aduna.platform.appdata.basedir", dataDir.getAbsolutePath());
System.setProperty("DEBUG", "true");
super.start();
createTestRepositories();
}
@Override
public void stop()
throws Exception
{
Repository systemRepo = new HTTPRepository(Protocol.getRepositoryLocation(SERVER_URL,
SystemRepository.ID));
RepositoryConnection con = systemRepo.getConnection();
try {
con.clear();
}
finally {
con.close();
}
super.stop();
}
/**
* @throws RepositoryException
*/
private void createTestRepositories()
throws RepositoryException, RepositoryConfigException
{
Repository systemRep = new HTTPRepository(Protocol.getRepositoryLocation(SERVER_URL,
SystemRepository.ID));
// create a (non-inferencing) memory store
MemoryStoreConfig memStoreConfig = new MemoryStoreConfig();
SailRepositoryConfig sailRepConfig = new SailRepositoryConfig(memStoreConfig);
RepositoryConfig repConfig = new RepositoryConfig(TEST_REPO_ID, sailRepConfig);
RepositoryConfigUtil.updateRepositoryConfigs(systemRep, repConfig);
// create an inferencing memory store
ForwardChainingRDFSInferencerConfig inferMemStoreConfig = new ForwardChainingRDFSInferencerConfig(
new MemoryStoreConfig());
sailRepConfig = new SailRepositoryConfig(inferMemStoreConfig);
repConfig = new RepositoryConfig(TEST_INFERENCE_REPO_ID, sailRepConfig);
RepositoryConfigUtil.updateRepositoryConfigs(systemRep, repConfig);
}
}