package fi.otavanopisto.muikku.plugins.h2db;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
import javax.ejb.Stateful;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
import org.apache.commons.io.IOUtils;
import fi.otavanopisto.muikku.plugins.data.DataPluginScriptHandler;
@Dependent
@Stateful
public class H2DBDataPluginScriptHandler implements DataPluginScriptHandler {
@Inject
private H2DBPluginController h2DBPluginController;
@Override
public String getName() {
return "H2";
}
@Override
public void executeScript(String uri, Map<String, String> parameters) throws IOException, SQLException {
URL url = new URL(uri);
URLConnection connection = url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
InputStream inputStream = connection.getInputStream();
try {
executeScript(inputStream, parameters);
} finally {
inputStream.close();
}
}
@Override
public void executeScript(InputStream inputStream, Map<String, String> parameters) throws IOException, SQLException {
String sql = IOUtils.toString(inputStream);
h2DBPluginController.executeScript(h2DBPluginController.getConnection(), sql);
}
@Override
public Connection getConnection(Map<String, String> parameters) throws SQLException {
return h2DBPluginController.getConnection();
}
}