merging 2932

This commit is contained in:
bdc34 2010-10-06 21:19:39 +00:00
parent d3789eda71
commit edad16df1f

View file

@ -24,18 +24,18 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.RDBGraphGenerator;
import edu.cornell.mannlib.vitro.webapp.dao.jena.RegeneratingGraph; import edu.cornell.mannlib.vitro.webapp.dao.jena.RegeneratingGraph;
public class JenaDataSourceSetupBase extends JenaBaseDaoCon { public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
private static final Log log = LogFactory.getLog(JenaDataSourceSetupBase.class); private static final Log log = LogFactory.getLog(JenaDataSourceSetupBase.class);
protected final static int DEFAULT_MAXWAIT = 10000, // ms protected final static int DEFAULT_MAXWAIT = 10000, // ms
DEFAULT_MAXACTIVE = 40, DEFAULT_MAXACTIVE = 40,
DEFAULT_MAXIDLE = 10, DEFAULT_MAXIDLE = 10,
DEFAULT_TIMEBETWEENEVICTIONS = 30 * 60 * 1000, // ms DEFAULT_TIMEBETWEENEVICTIONS = 30 * 60 * 1000, // ms
DEFAULT_TESTSPEREVICTION = 3, DEFAULT_TESTSPEREVICTION = 3,
DEFAULT_MINEVICTIONIDLETIME = 1000 * 60 * 30; // ms DEFAULT_MINEVICTIONIDLETIME = 1000 * 60 * 30; // ms
protected final static String DEFAULT_VALIDATIONQUERY = "SELECT 1"; protected final static String DEFAULT_VALIDATIONQUERY = "SELECT 1";
protected final static boolean DEFAULT_TESTONBORROW = true, protected final static boolean DEFAULT_TESTONBORROW = true,
DEFAULT_TESTONRETURN = true, DEFAULT_TESTWHILEIDLE = true; DEFAULT_TESTONRETURN = true, DEFAULT_TESTWHILEIDLE = true;
protected static String BASE = "/WEB-INF/ontologies/"; protected static String BASE = "/WEB-INF/ontologies/";
protected static String USERPATH = BASE+"user/"; protected static String USERPATH = BASE+"user/";
@ -68,22 +68,22 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
*/ */
public final Model makeDBModelFromConfigurationProperties(String jenaDbModelName, OntModelSpec jenaDbOntModelSpec){ public final Model makeDBModelFromConfigurationProperties(String jenaDbModelName, OntModelSpec jenaDbOntModelSpec){
String dbDriverClassname = ConfigurationProperties.getProperty("VitroConnection.DataSource.driver", DB_DRIVER_CLASS_NAME); String dbDriverClassname = ConfigurationProperties.getProperty("VitroConnection.DataSource.driver", DB_DRIVER_CLASS_NAME);
String jdbcUrl = ConfigurationProperties.getProperty("VitroConnection.DataSource.url") + "?useUnicode=yes&characterEncoding=utf8"; String jdbcUrl = ConfigurationProperties.getProperty("VitroConnection.DataSource.url") + "?useUnicode=yes&characterEncoding=utf8";
String username = ConfigurationProperties.getProperty("VitroConnection.DataSource.username"); String username = ConfigurationProperties.getProperty("VitroConnection.DataSource.username");
String password = ConfigurationProperties.getProperty("VitroConnection.DataSource.password"); String password = ConfigurationProperties.getProperty("VitroConnection.DataSource.password");
BasicDataSource ds = makeBasicDataSource(dbDriverClassname, jdbcUrl, username, password); BasicDataSource ds = makeBasicDataSource(dbDriverClassname, jdbcUrl, username, password);
String dns = ConfigurationProperties.getProperty("Vitro.defaultNamespace"); String dns = ConfigurationProperties.getProperty("Vitro.defaultNamespace");
defaultNamespace = (dns != null && dns.length()>0) ? dns : null; defaultNamespace = (dns != null && dns.length()>0) ? dns : null;
jenaDbOntModelSpec = (jenaDbOntModelSpec != null) ? jenaDbOntModelSpec : DB_ONT_MODEL_SPEC; jenaDbOntModelSpec = (jenaDbOntModelSpec != null) ? jenaDbOntModelSpec : DB_ONT_MODEL_SPEC;
return makeDBModel(ds, jenaDbModelName, jenaDbOntModelSpec); return makeDBModel(ds, jenaDbModelName, jenaDbOntModelSpec);
} }
public static BasicDataSource makeBasicDataSource(String dbDriverClassname, String jdbcUrl, String username, String password) { public static BasicDataSource makeBasicDataSource(String dbDriverClassname, String jdbcUrl, String username, String password) {
log.debug("makeBasicDataSource('" + dbDriverClassname + "', '" log.debug("makeBasicDataSource('" + dbDriverClassname + "', '"
+ jdbcUrl + "', '" + username + "', '" + password + "')"); + jdbcUrl + "', '" + username + "', '" + password + "')");
BasicDataSource ds = new BasicDataSource(); BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(dbDriverClassname); ds.setDriverClassName(dbDriverClassname);
ds.setUrl(jdbcUrl); ds.setUrl(jdbcUrl);
ds.setUsername(username); ds.setUsername(username);
@ -112,15 +112,15 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
try { try {
// open the db model // open the db model
try { try {
Graph g = new RegeneratingGraph(new RDBGraphGenerator(ds, DB, jenaDbModelName)); Graph g = new RegeneratingGraph(new RDBGraphGenerator(ds, DB, jenaDbModelName));
Model m = ModelFactory.createModelForGraph(g); Model m = ModelFactory.createModelForGraph(g);
dbModel = m; dbModel = m;
//dbModel = ModelFactory.createOntologyModel(jenaDbOntModelSpec,m); //dbModel = ModelFactory.createOntologyModel(jenaDbOntModelSpec,m);
//Graph g = maker.openGraph(JENA_DB_MODEL,false); //Graph g = maker.openGraph(JENA_DB_MODEL,false);
//dbModel = ModelFactory.createModelForGraph(g); //dbModel = ModelFactory.createModelForGraph(g);
//maker.openModel(JENA_DB_MODEL); //maker.openModel(JENA_DB_MODEL);
log.debug("Using database at "+ds.getUrl()); log.debug("Using database at "+ds.getUrl());
} catch (Throwable t) { } catch (Throwable t) {
t.printStackTrace(); t.printStackTrace();
} }
@ -131,66 +131,66 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
return dbModel; return dbModel;
} }
public static void readOntologyFilesInPathSet(String path, public static void readOntologyFilesInPathSet(String path,
ServletContext ctx, Model model) { ServletContext ctx, Model model) {
log.debug("Reading ontology files from '" + path + "'"); log.debug("Reading ontology files from '" + path + "'");
Set<String> paths = ctx.getResourcePaths(path); Set<String> paths = ctx.getResourcePaths(path);
if (paths != null) { if (paths != null) {
for (String p : paths) { for (String p : paths) {
String format = getRdfFormat(p); String format = getRdfFormat(p);
log.info("Loading ontology file at " + p + " as format " + format); log.info("Loading ontology file at " + p + " as format " + format);
InputStream ontologyInputStream = ctx.getResourceAsStream(p); InputStream ontologyInputStream = ctx.getResourceAsStream(p);
try { try {
model.read(ontologyInputStream, null, format); model.read(ontologyInputStream, null, format);
log.debug("...successful"); log.debug("...successful");
} catch (Throwable t) { } catch (Throwable t) {
log.error("Failed to load ontology file at '" + p + "' as format " + format, t); log.error("Failed to load ontology file at '" + p + "' as format " + format, t);
} }
} }
} }
} }
private static String getRdfFormat(String filename){ private static String getRdfFormat(String filename){
String defaultformat = "RDF/XML"; String defaultformat = "RDF/XML";
if( filename == null ) if( filename == null )
return defaultformat; return defaultformat;
else if( filename.endsWith("n3") ) else if( filename.endsWith("n3") )
return "N3"; return "N3";
else if( filename.endsWith("ttl") ) else if( filename.endsWith("ttl") )
return "TURTLE"; return "TURTLE";
else else
return defaultformat; return defaultformat;
} }
/** /**
* If the {@link ConfigurationProperties} has a name for the initial admin * If the {@link ConfigurationProperties} has a name for the initial admin
* user, create the user and add it to the model. * user, create the user and add it to the model.
*/ */
protected void createInitialAdminUser(Model model) { protected void createInitialAdminUser(Model model) {
String initialAdminUsername = ConfigurationProperties String initialAdminUsername = ConfigurationProperties
.getProperty("initialAdminUser"); .getProperty("initialAdminUser");
if (initialAdminUsername == null) { if (initialAdminUsername == null) {
return; return;
} }
// A hard-coded MD5 encryption of "defaultAdmin" // A hard-coded MD5 encryption of "defaultAdmin"
String initialAdminPassword = "22BA075EC8951A70960A0A95C0BC2294"; String initialAdminPassword = "22BA075EC8951A70960A0A95C0BC2294";
String vitroDefaultNs = "http://vitro.mannlib.cornell.edu/ns/vitro/default#"; String vitroDefaultNs = "http://vitro.mannlib.cornell.edu/ns/vitro/default#";
Resource user = model.createResource(vitroDefaultNs Resource user = model.createResource(vitroDefaultNs
+ "defaultAdminUser"); + "defaultAdminUser");
model.add(model.createStatement(user, model model.add(model.createStatement(user, model
.createProperty(VitroVocabulary.RDF_TYPE), model .createProperty(VitroVocabulary.RDF_TYPE), model
.getResource(VitroVocabulary.USER))); .getResource(VitroVocabulary.USER)));
model.add(model.createStatement(user, model model.add(model.createStatement(user, model
.createProperty(VitroVocabulary.USER_USERNAME), model .createProperty(VitroVocabulary.USER_USERNAME), model
.createTypedLiteral(initialAdminUsername))); .createTypedLiteral(initialAdminUsername)));
model.add(model.createStatement(user, model model.add(model.createStatement(user, model
.createProperty(VitroVocabulary.USER_MD5PASSWORD), model .createProperty(VitroVocabulary.USER_MD5PASSWORD), model
.createTypedLiteral(initialAdminPassword))); .createTypedLiteral(initialAdminPassword)));
model.add(model.createStatement(user, model model.add(model.createStatement(user, model
.createProperty(VitroVocabulary.USER_ROLE), model .createProperty(VitroVocabulary.USER_ROLE), model
.createTypedLiteral("role:/50"))); .createTypedLiteral("role:/50")));
} }
} }