csNodeStatements = fileEntity.getObjectPropertyMap().get(this.checksumNodeProperty).getObjectPropertyStatements();
- if(csNodeStatements.size() == 0) {
- System.out.println("No object property statements correspond to this property");
- } else {
- ObjectPropertyStatement cnodeStatement = csNodeStatements.get(0);
- String cnodeUri = cnodeStatement.getObjectURI();
- //System.out.println("Checksum node uri is " + cnodeUri);
-
- Individual checksumNodeObject = iwDao.getIndividualByURI(cnodeUri);
-
- DataProperty checksumDateTime = wdf.getDataPropertyDao().getDataPropertyByURI(this.checksumNodeDateTimeProperty);
- if(checksumDateTime != null) {
- String newDatetime = sessionOntModel.createTypedLiteral(new DateTime()).getString();
- //Review how to update date time
- wdf.getDataPropertyStatementDao().deleteDataPropertyStatementsForIndividualByDataProperty(checksumNodeObject, checksumDateTime);
- dps = new DataPropertyStatementImpl();
- dps.setIndividualURI(checksumNodeObject.getURI());
- dps.setDatapropURI(checksumDateTime.getURI());
- dps.setData(newDatetime);
- wdf.getDataPropertyStatementDao().insertNewDataPropertyStatement(dps);
-
- }
- DataProperty checksumNodeValue = wdf.getDataPropertyDao().getDataPropertyByURI(this.checksumDataProperty);
- if(checksumNodeValue != null) {
- wdf.getDataPropertyStatementDao().deleteDataPropertyStatementsForIndividualByDataProperty(checksumNodeObject, checksumNodeValue);
- dps = new DataPropertyStatementImpl();
- dps.setIndividualURI(checksumNodeObject.getURI());
- dps.setDatapropURI(checksumNodeValue.getURI());
- dps.setData(checksum); //Same as fileName above - change if needed
- wdf.getDataPropertyStatementDao().insertNewDataPropertyStatement(dps);
- }
-
- }
-
- //Assumes original entity name is equal to the location - as occurs with regular file upload
- String originalEntityName = fileEntity.getName();
- if(originalEntityName != originalName) {
- //System.out.println("Setting file entity to name of uploaded file");
- fileEntity.setName(originalName);
- } else {
- //System.out.println("Conditional for file entity name and uploaded name is saying same");
- }
- iwDao.updateIndividual(fileEntity);
- //}
-
- req.setAttribute("fileUri", fileUri);
- req.setAttribute("originalFileName", fileEntity.getName());
- req.setAttribute("checksum", checksum);
- if( "true".equals(useNewName)){
- req.setAttribute("useNewName", "true");
- req.setAttribute("newFileName", originalName);
- }else{
- req.setAttribute("newFileName", fileEntity.getName());
- }
-
- //forward to form
- JSPPageHandler.renderBasicPage(req, res, "/fileupload/datastreamModificationSuccess.jsp");
- }catch(FdcException ex){
- rawRequest.setAttribute("errors", ex.getMessage());
- JSPPageHandler.renderPlainPage(rawRequest, res, "/edit/fileUploadError.jsp");
- return;
- }
- }
-
- //Delete method
- public boolean deleteFile(HttpServletRequest req, Individual entity, IndividualDao iwDao, OntModel sessionOntModel) {
- boolean success = false;
- String fileUri = entity.getURI();
- //Create uri based on milliseconds etc.?
- Calendar c = Calendar.getInstance();
- long timeMs = c.getTimeInMillis();
- //Cuirrent date
- SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
- String formattedDeleteDate = dateTime.format(c.getTime());
- String deleteEventName = "deleteEvent" + timeMs;
- //System.out.println("Delete event name is " +deleteEventName + " - delete time is " + formattedDeleteDate);
-
- //Get current user
- String userURI = LoginStatusBean.getBean(req).getUserURI();
- //System.out.println("Current logged in user uri is " + userURI);
-
- //Update model
- sessionOntModel.enterCriticalSection(true);
-
- try {
-
- //Dataset Uri
- String datasetUri = (String) req.getAttribute("dataseturi");
- //System.out.println("Dataset uri is " + datasetUri);
- //Remove the actual relationships: dsr:hasFile and fedora:fromDataSet
- ObjectProperty hasFileProperty = sessionOntModel.getObjectProperty(fedoraNs + "hasFile");
-
- ObjectProperty fromDatasetProperty = sessionOntModel.getObjectProperty(fedoraNs + "fromDataSet");
- if(hasFileProperty != null) {
- //System.out.println("Has file property does exist");
- sessionOntModel.remove(sessionOntModel.createStatement(sessionOntModel.getResource(datasetUri), hasFileProperty, sessionOntModel.getResource(fileUri)));
- } else{
- //System.out.println("Has file property does not exist");
- }
-
- if(fromDatasetProperty != null) {
- //System.out.println("From dataset property exists ");
- sessionOntModel.remove(sessionOntModel.createStatement(sessionOntModel.getResource(fileUri), fromDatasetProperty, sessionOntModel.getResource(datasetUri)));
- } else{
- //System.out.println("From dataset property does not exist");
- }
-
-
- //Create delete event entity and update with the correct information
- //Type of Event
- Resource deleteEventType = sessionOntModel.createResource(deleteNs + "DeleteEvent");
- //Individual event
- Resource eventIndividual = sessionOntModel.createResource(individualPrefix + deleteEventName);
- //Event is of type DeleteEvent
- Statement rType = sessionOntModel.createStatement(eventIndividual, org.apache.jena.vocabulary.RDF.type, deleteEventType);
- sessionOntModel.add(rType);
- //Add properties to individual - deleteDateTime, deletedBy, forDataSet, forFile
- DatatypeProperty dateTimeProp = sessionOntModel.createDatatypeProperty(deleteNs + "deleteDateTime");
- dateTimeProp.setRange(XSD.dateTime);
-
- ObjectProperty deletedByProp = sessionOntModel.createObjectProperty(deleteNs + "deletedBy");
- ObjectProperty forDatasetProp = sessionOntModel.createObjectProperty(deleteNs + "forDataset");
- ObjectProperty forFileProp = sessionOntModel.createObjectProperty(deleteNs + "forFile");
- //Need to make sure date time property is set to correct xsd:DateTime
- //XSDDateTime now = new XSDDateTime(c);
- //XSDDateTime now = new XSDDateTime(java.util.Calendar.getInstance());
- eventIndividual.addProperty(dateTimeProp, sessionOntModel.createTypedLiteral(formattedDeleteDate, XSDDatatype.XSDdateTime));
- //eventIndividual.addProperty(dateTimeProp, sessionOntModel.createTypedLiteral(now, XSDDatatype.XSDdateTime));
- eventIndividual.addProperty(deletedByProp, sessionOntModel.getResource(userURI));
- if(datasetUri != null){
- //System.out.println("Dataset uri is " + datasetUri);
- eventIndividual.addProperty(forDatasetProp, sessionOntModel.getResource(datasetUri));
- }
- eventIndividual.addProperty(forFileProp, sessionOntModel.getResource(fileUri));
- success = true;
-
- } finally {
- sessionOntModel.leaveCriticalSection();
- }
- return success;
- }
-
- @Override
- public void init() throws ServletException {
- super.init();
-
- ConfigurationProperties configProperties = ConfigurationProperties
- .getBean(getServletContext());
- baseDirectoryForFiles = configProperties.getProperty(
- "n3.baseDirectoryForFiles", DEFAULT_BASE_DIR);
-
- String maxSize = configProperties.getProperty("n3.maxSize", Long
- .toString(DEFAULT_MAX_SIZE));
- try {
- maxFileSize = Integer.parseInt(maxSize);
- } catch (NumberFormatException nfe) {
- log.error(nfe);
- maxFileSize = DEFAULT_MAX_SIZE;
- }
- }
-
- public void setup(OntModel model, ServletContext context) {
- this.configurationStatus = "";
- StringBuffer status = new StringBuffer("");
-
- if( connected && configured )
- return;
-
- Properties props = new Properties();
- String path = context.getRealPath(FEDORA_PROPERTIES);
- try{
- InputStream in = new FileInputStream(new File( path ));
- props.load( in );
- fedoraUrl = props.getProperty("fedoraUrl");
- adminUser = props.getProperty("adminUser");
- adminPassword = props.getProperty("adminPassword");
- pidNamespace = props.getProperty("pidNamespace");
-
- if( fedoraUrl == null || adminUser == null || adminPassword == null ){
- if( fedoraUrl == null ){
- log.error("'fedoraUrl' not found in properties file");
- status.append("'fedoraUrl' not found in properties file.
\n");
- }
- if( adminUser == null ) {
- log.error("'adminUser' was not found in properties file, the " +
- "user name of the fedora admin is needed to access the " +
- "fedora API-M services.");
- status.append("'adminUser' was not found in properties file, the " +
- "user name of the fedora admin is needed to access the " +
- "fedora API-M services.
\n");
- }
- if( adminPassword == null ){
- log.error("'adminPassword' was not found in properties file, the " +
- "admin password is needed to access the fedora API-M services.");
- status.append("'adminPassword' was not found in properties file, the " +
- "admin password is needed to access the fedora API-M services.
\n");
- }
- if( pidNamespace == null ){
- log.error("'pidNamespace' was not found in properties file, the " +
- "PID namespace indicates which namespace to use when creating " +
- "new fedor digital objects.");
- status.append("'pidNamespace' was not found in properties file, the " +
- "PID namespace indicates which namespace to use when creating " +
- "new fedor digital objects.
\n");
- }
- fedoraUrl = null; adminUser = null; adminPassword = null;
- configured = false;
- } else {
- configured = true;
- }
- }catch(FileNotFoundException e) {
- log.error("No fedora.properties file found,"+
- "it should be located at " + path);
- status.append("Fedora configuration failed.
\n");
- status.append("No fedora.properties file found,"+
- "it should be located at " + path + "
\n");
- configured = false;
- return;
- }catch(Exception ex){
- status.append("Fedora configuration failed.
\n");
- status.append("Exception while loading" + path + "
\n");
- status.append("" + ex.getMessage() + "
\n");
- log.error("could not load fedora properties", ex);
- fedoraUrl = null; adminUser = null; adminPassword = null;
- configured = false;
- return;
- }
-
-
- status.append(RELOAD_MSG);
- this.configurationStatus += status.toString();
-// else{
-// status.append("Fedora configuration file ").append(path).append(" was loaded
");
-// status.append("fedoraUrl: ").append(fedoraUrl).append("
\n");
-// checkFedoraServer();
-// }
- }
-
- private boolean canConnectToFedoraServer( ){
- try{
- FedoraClient fc = new FedoraClient(fedoraUrl,adminUser, adminPassword);
- String fedoraVersion = fc.getServerVersion();
- if( fedoraVersion != null && fedoraVersion.length() > 0 ){
- configurationStatus += "Fedora server is live and is running " +
- "fedora version " + fedoraVersion + "
\n";
- connected = true;
- return true;
- } else {
- configurationStatus += "Unable to reach fedora server
\n";
- connected = false;
- return false;
- }
- }catch (Exception e) {
- configurationStatus += "There was an error while checking the " +
- "fedora server version
\n"+ e.getMessage() + "
\n";
- connected = false;
- return false;
- }
- }
-
- public boolean isConfigured(){ return configured; }
- public boolean isConnected(){ return connected; }
-
- private class FdcException extends Exception {
- public FdcException(String message) {
- super(message);
- }
- }
-
- private static final String RELOAD_MSG =
- "The fedora configuartion file will be reloaded if " +
- "you edit the properties file and check the status.
\n";
-
- public static String md5hashForFile(File file){
- try {
- InputStream fin = new FileInputStream(file);
- java.security.MessageDigest md5er =
- MessageDigest.getInstance("MD5");
- byte[] buffer = new byte[1024];
- int read;
- do {
- read = fin.read(buffer);
- if (read > 0)
- md5er.update(buffer, 0, read);
- } while (read != -1);
- fin.close();
- byte[] digest = md5er.digest();
- if (digest == null)
- return null;
- String strDigest = "0x";
- for (int i = 0; i < digest.length; i++) {
- strDigest += Integer.toString((digest[i] & 0xff)
- + 0x100, 16).substring(1);
- }
- return strDigest;
- } catch (Exception e) {
- return null;
- }
- }
-
- private static final Log log = LogFactory.getLog(FedoraDatastreamController.class.getName());
-}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/UserAccountsSelector.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/UserAccountsSelector.java
index 0c684134c..af803122a 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/UserAccountsSelector.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/UserAccountsSelector.java
@@ -20,9 +20,9 @@ import org.apache.jena.rdf.model.Resource;
import edu.cornell.mannlib.vitro.webapp.beans.UserAccount;
import edu.cornell.mannlib.vitro.webapp.beans.UserAccount.Status;
import edu.cornell.mannlib.vitro.webapp.controller.accounts.UserAccountsOrdering.Field;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner.QueryParser;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparql.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.ResultSetParser;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.SparqlQueryRunner;
/**
* Pull some UserAccounts from the model, based on a set of criteria.
@@ -111,8 +111,9 @@ public class UserAccountsSelector {
.replace("%offset%", offset());
log.debug("main query: " + qString);
- List accounts = new SparqlQueryRunner(model)
- .executeSelect(new MainQueryParser(), qString);
+ List accounts = SparqlQueryRunner
+ .createSelectQueryContext(model, qString).execute()
+ .parse(new MainQueryParser());
log.debug("query returns: " + accounts);
return accounts;
}
@@ -126,8 +127,8 @@ public class UserAccountsSelector {
.replace("%filterClauses%", filterClauses());
log.debug("count query: " + qString);
- int count = new SparqlQueryRunner(model).executeSelect(
- new CountQueryParser(), qString);
+ int count = SparqlQueryRunner.createSelectQueryContext(model, qString)
+ .execute().parse(new CountQueryParser());
log.debug("result count: " + count);
return count;
}
@@ -139,8 +140,9 @@ public class UserAccountsSelector {
PREFIX_LINES).replace("%uri%", uri);
log.debug("permissions query: " + qString);
- Set permissions = new SparqlQueryRunner(model)
- .executeSelect(new PermissionsQueryParser(), qString);
+ Set permissions = SparqlQueryRunner
+ .createSelectQueryContext(model, qString).execute()
+ .parse(new PermissionsQueryParser());
log.debug("permissions for '" + uri + "': " + permissions);
account.setPermissionSetUris(permissions);
}
@@ -214,7 +216,8 @@ public class UserAccountsSelector {
return String.valueOf(offset);
}
- private static class MainQueryParser extends QueryParser> {
+ private static class MainQueryParser extends
+ ResultSetParser> {
@Override
protected List defaultValue() {
return Collections.emptyList();
@@ -274,7 +277,7 @@ public class UserAccountsSelector {
}
}
- private static class CountQueryParser extends QueryParser {
+ private static class CountQueryParser extends ResultSetParser {
@Override
protected Integer defaultValue() {
return 0;
@@ -299,7 +302,7 @@ public class UserAccountsSelector {
}
private static class PermissionsQueryParser extends
- QueryParser> {
+ ResultSetParser> {
@Override
protected Set defaultValue() {
return Collections.emptySet();
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ProxyRelationshipSelector.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ProxyRelationshipSelector.java
index 22ba17d6c..95e210dd7 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ProxyRelationshipSelector.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ProxyRelationshipSelector.java
@@ -16,9 +16,9 @@ import org.apache.jena.query.ResultSet;
import edu.cornell.mannlib.vitro.webapp.controller.accounts.manageproxies.ProxyRelationshipSelectionBuilder.ItemInfo;
import edu.cornell.mannlib.vitro.webapp.controller.accounts.manageproxies.ProxyRelationshipSelectionBuilder.Relationship;
import edu.cornell.mannlib.vitro.webapp.controller.accounts.manageproxies.ProxyRelationshipSelectionCriteria.ProxyRelationshipView;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner.QueryParser;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparql.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.ResultSetParser;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.SparqlQueryRunner;
/**
* A class which will accept a ProxyRelationshipSelectionCriteria and produce a
@@ -94,8 +94,9 @@ public class ProxyRelationshipSelector {
PREFIX_LINES);
qString = replaceFilterClauses(qString);
- int count = new SparqlQueryRunner(context.userAccountsModel)
- .executeSelect(new CountQueryParser(), qString);
+ int count = SparqlQueryRunner
+ .createSelectQueryContext(context.userAccountsModel, qString)
+ .execute().parse(new CountQueryParser());
log.debug("result count: " + count);
builder.count = count;
@@ -136,9 +137,9 @@ public class ProxyRelationshipSelector {
.replace("%offset%", offset());
qString = replaceFilterClauses(qString);
- List relationships = new SparqlQueryRunner(
- context.userAccountsModel).executeSelect(
- new ProxyBasicsParser(), qString);
+ List relationships = SparqlQueryRunner
+ .createSelectQueryContext(context.userAccountsModel, qString)
+ .execute().parse(new ProxyBasicsParser());
log.debug("getProxyBasics returns: " + relationships);
builder.relationships.addAll(relationships);
}
@@ -177,8 +178,9 @@ public class ProxyRelationshipSelector {
.replace("%matchingProperty%", context.matchingProperty)
.replace("%externalAuthId%", proxy.externalAuthId);
- ItemInfo expansion = new SparqlQueryRunner(context.unionModel)
- .executeSelect(new ExpandProxyParser(), qString);
+ ItemInfo expansion = SparqlQueryRunner
+ .createSelectQueryContext(context.unionModel, qString)
+ .execute().parse(new ExpandProxyParser());
proxy.classLabel = expansion.classLabel;
proxy.imageUrl = expansion.imageUrl;
}
@@ -199,9 +201,10 @@ public class ProxyRelationshipSelector {
String qString = QUERY_RELATIONSHIPS.replace("%prefixes%",
PREFIX_LINES).replace("%proxyUri%", proxy.uri);
- List profileUris = new SparqlQueryRunner(
- context.userAccountsModel).executeSelect(
- new RelationshipsParser(), qString);
+ List profileUris = SparqlQueryRunner
+ .createSelectQueryContext(context.userAccountsModel,
+ qString).execute()
+ .parse(new RelationshipsParser());
for (String profileUri : profileUris) {
r.profileInfos
@@ -235,8 +238,9 @@ public class ProxyRelationshipSelector {
String qString = QUERY_EXPAND_PROFILE.replace("%prefixes%",
PREFIX_LINES).replace("%profileUri%", profile.uri);
- ItemInfo expansion = new SparqlQueryRunner(context.unionModel)
- .executeSelect(new ExpandProfileParser(), qString);
+ ItemInfo expansion = SparqlQueryRunner
+ .createSelectQueryContext(context.unionModel, qString)
+ .execute().parse(new ExpandProfileParser());
profile.label = expansion.label;
profile.classLabel = expansion.classLabel;
profile.imageUrl = expansion.imageUrl;
@@ -285,7 +289,7 @@ public class ProxyRelationshipSelector {
// ----------------------------------------------------------------------
private static class ProxyBasicsParser extends
- QueryParser> {
+ ResultSetParser> {
@Override
protected List defaultValue() {
return Collections.emptyList();
@@ -318,7 +322,7 @@ public class ProxyRelationshipSelector {
}
}
- private static class CountQueryParser extends QueryParser {
+ private static class CountQueryParser extends ResultSetParser {
@Override
protected Integer defaultValue() {
return 0;
@@ -342,7 +346,7 @@ public class ProxyRelationshipSelector {
}
}
- private static class ExpandProxyParser extends QueryParser {
+ private static class ExpandProxyParser extends ResultSetParser {
@Override
protected ItemInfo defaultValue() {
return new ItemInfo();
@@ -367,7 +371,8 @@ public class ProxyRelationshipSelector {
}
}
- private static class RelationshipsParser extends QueryParser> {
+ private static class RelationshipsParser extends
+ ResultSetParser> {
@Override
protected List defaultValue() {
return Collections.emptyList();
@@ -388,7 +393,7 @@ public class ProxyRelationshipSelector {
}
}
- private static class ExpandProfileParser extends QueryParser {
+ private static class ExpandProfileParser extends ResultSetParser {
@Override
protected ItemInfo defaultValue() {
return new ItemInfo();
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/BasicProxiesGetter.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/BasicProxiesGetter.java
index 85db98834..f1c3d0c3e 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/BasicProxiesGetter.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/manageproxies/ajax/BasicProxiesGetter.java
@@ -24,8 +24,8 @@ import edu.cornell.mannlib.vitro.webapp.controller.ajax.AbstractAjaxResponder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparql.SparqlQueryUtils;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.SparqlQueryRunner;
import edu.cornell.mannlib.vitro.webapp.web.images.PlaceholderUtil;
/**
@@ -76,10 +76,10 @@ public class BasicProxiesGetter extends AbstractAjaxResponder {
String cleanTerm = SparqlQueryUtils.escapeForRegex(term);
String queryStr = QUERY_BASIC_PROXIES.replace("%term%", cleanTerm);
- JSONArray jsonArray = new SparqlQueryRunner(userAccountsModel)
- .executeSelect(
- new BasicProxyInfoParser(placeholderImageUrl),
- queryStr);
+ JSONArray jsonArray = SparqlQueryRunner
+ .createSelectQueryContext(userAccountsModel, queryStr)
+ .execute()
+ .parse(new BasicProxyInfoParser(placeholderImageUrl));
String response = jsonArray.toString();
log.debug(response);
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsFirstTimeExternalPage.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsFirstTimeExternalPage.java
index c48ba8691..ffffc1b1a 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsFirstTimeExternalPage.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/accounts/user/UserAccountsFirstTimeExternalPage.java
@@ -9,7 +9,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import edu.cornell.mannlib.vitro.webapp.auth.permissions.PermissionSets;
import edu.cornell.mannlib.vitro.webapp.beans.UserAccount;
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/RestrictLoginsController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/RestrictLoginsController.java
index a3f04be48..e80d7f2d5 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/RestrictLoginsController.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/RestrictLoginsController.java
@@ -16,6 +16,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServ
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
+import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
/**
* Offer the user the ability to apply a RestrictedAuthenticator or revert to a
@@ -80,7 +81,7 @@ public class RestrictLoginsController extends FreemarkerHttpServlet {
boolean restricted = figureCurrentlyState() == State.RESTRICTED;
Map body = new HashMap();
- body.put("title", "Restrict Logins");
+ body.put("title", I18n.text(vreq, "restrict_logins"));
body.put("restricted", restricted);
if (!MESSAGE_NO_MESSAGE.equals(messageCode)) {
body.put(messageCode, Boolean.TRUE);
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/SparqlQueryController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/SparqlQueryController.java
index da4fc589f..bba1e0865 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/SparqlQueryController.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/SparqlQueryController.java
@@ -16,7 +16,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -36,9 +36,9 @@ import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao;
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryUtils;
import edu.cornell.mannlib.vitro.webapp.utils.http.AcceptHeaderParsingException;
import edu.cornell.mannlib.vitro.webapp.utils.http.NotAcceptableException;
+import edu.cornell.mannlib.vitro.webapp.utils.sparql.SparqlQueryUtils;
/**
* Present the SPARQL Query form, and execute the queries.
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java
index 991f53792..ae295ed35 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/admin/StartupStatusController.java
@@ -11,6 +11,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
+import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
import edu.cornell.mannlib.vitro.webapp.startup.StartupStatus;
/**
@@ -27,7 +28,7 @@ public class StartupStatusController extends FreemarkerHttpServlet {
protected ResponseValues processRequest(VitroRequest vreq) {
Map body = new HashMap();
- body.put("title", "Startup Status");
+ body.put("title", I18n.text(vreq, "startup_status"));
body.put("status", StartupStatus.getBean(getServletContext()));
body.put("contextPath", getContextPath());
body.put("applicationName", getApplicationName(vreq));
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/ajax/AbstractAjaxResponder.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/ajax/AbstractAjaxResponder.java
index 3c80b8070..3faa4c968 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/ajax/AbstractAjaxResponder.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/ajax/AbstractAjaxResponder.java
@@ -24,7 +24,7 @@ import org.apache.jena.query.ResultSet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao;
import edu.cornell.mannlib.vitro.webapp.dao.UserAccountsDao;
-import edu.cornell.mannlib.vitro.webapp.utils.SparqlQueryRunner;
+import edu.cornell.mannlib.vitro.webapp.utils.sparqlrunner.ResultSetParser;
/**
* A base class for AJAX responder objects, to be instantiated and invoked by
@@ -82,7 +82,7 @@ public abstract class AbstractAjaxResponder {
*/
protected String assembleJsonResponse(List