package org.ilrt.mca.harvester; import com.hp.hpl.jena.sdb.util.StoreUtils; import com.sun.grizzly.http.embed.GrizzlyWebServer; import com.sun.grizzly.tcp.http11.GrizzlyAdapter; import com.sun.grizzly.tcp.http11.GrizzlyRequest; import com.sun.grizzly.tcp.http11.GrizzlyResponse; import org.ilrt.mca.rdf.DataManager; import org.ilrt.mca.rdf.StoreWrapper; import org.ilrt.mca.rdf.StoreWrapperManager; import org.ilrt.mca.rdf.StoreWrapperManagerImpl; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import static org.junit.Assert.assertTrue; public abstract class AbstractTest { protected void setUpStore() throws Exception { StoreWrapper storeWrapper = getStoreWrapper(); if (StoreUtils.isFormatted(storeWrapper.getStore())) { storeWrapper.getStore().getTableFormatter().truncate(); } else { storeWrapper.getStore().getTableFormatter().format(); } assertTrue("The store is not formatted", StoreUtils.isFormatted(storeWrapper.getStore())); storeWrapper.close(); } protected StoreWrapper getStoreWrapper() { return getStoreWrapperManager().getStoreWrapper(); } protected StoreWrapperManager getStoreWrapperManager() { return new StoreWrapperManagerImpl(TEST_CONFIG); } protected void startServer(String resourcePath, String mediaType) throws IOException { ws = new GrizzlyWebServer(portNumber); ws.addGrizzlyAdapter(createAdapter(resourcePath, mediaType), new String[]{resourcePath}); ws.start(); } protected void stopServer() { ws.stop(); } protected GrizzlyAdapter createAdapter(final String resourcePath, final String mediaType) { return new GrizzlyAdapter() { @Override public void service(GrizzlyRequest grizzlyRequest, GrizzlyResponse grizzlyResponse) { try { grizzlyResponse.setContentType(mediaType); OutputStream os = grizzlyResponse.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8"); InputStream is = getClass().getResourceAsStream(resourcePath); if (is != null) { InputStreamReader isr = new InputStreamReader(is); BufferedReader reader = new BufferedReader(isr); PrintWriter writer = new PrintWriter(osw); String s; while ((s = reader.readLine()) != null) { writer.println(s); } } osw.flush(); os.close(); } catch (Exception ex) { ex.printStackTrace(); } } }; } private String TEST_CONFIG = "/test-sdb.ttl"; public String host = "http://localhost"; GrizzlyWebServer ws; public DataManager dataManager; public int portNumber = 9090; }