Download this file

DerbyProvenanceClient.java    103 lines (77 with data), 3.2 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
package net.timbusproject.extractors.modules.tavernaextractor.provenance;
import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import net.sf.taverna.t2.invocation.InvocationContext;
import net.sf.taverna.t2.provenance.api.ProvenanceAccess;
import net.sf.taverna.t2.provenance.client.ProvenanceBaseClient;
import net.sf.taverna.t2.provenance.connector.ProvenanceConnector;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
public class DerbyProvenanceClient extends ProvenanceBaseClient {
private static Logger LOGGER = LogManager.getLogger("DerbyProvenanceClient");
String pathToDerbyDatabase = null;
private ProvenanceAccess pAccess = null;
public DerbyProvenanceClient(String pathToDerbyDatabase) {
super();
LOGGER.setLevel(Level.DEBUG);
if (pathToDerbyDatabase == null) {
throw new IllegalArgumentException("pathToDerbyDatabase must not be null.");
}
this.pathToDerbyDatabase = pathToDerbyDatabase;
LOGGER.debug("Try connect to derby database at '" + pathToDerbyDatabase + "'.");
}
@Override
protected void setDataSource(String connectorType) {
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.osjava.sj.memory.MemoryContextFactory");
System.setProperty("org.osjava.sj.jndi.shared", "true");
System.setProperty("hibernate.dialect", "org.hibernate.dialect.DerbyDialect");
BasicDataSource ds = new BasicDataSource();
ds.setDefaultTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
ds.setMaxActive(50);
ds.setMinIdle(10);
ds.setMaxIdle(50);
ds.setDefaultAutoCommit(true);
ds.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
ds.setUsername("");
ds.setPassword("");
try {
ds.setUrl("jdbc:derby:" + pathToDerbyDatabase);
} catch (Exception e) {
e.printStackTrace();
}
InitialContext context;
try {
context = new InitialContext();
context.rebind("jdbc/taverna", ds);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void setUp(String connectorType) throws ProvenanceAccessException {
//super.setUp(connectorType);
setDataSource(connectorType);
System.setProperty("raven.eclipse", "true");
try {
pAccess = new ProvenanceAccess(connectorType); // creates and initializes the provenance API
} catch (Exception sql) {
sql.printStackTrace();
// bad exception handling
// throw new ProvenanceAccessException(
// "Cannot establish connection to the database. Is another progam using this database currently ?");
}
}
@Override
public InvocationContext getInvocationContext() {
return pAccess.getInvocationContext();
}
public ProvenanceAccess getProvenanceAccess() {
return pAccess;
}
public ProvenanceConnector g() {
return pAccess.getProvenanceConnector();
}
}