Skip to content

Commit

Permalink
Added synchronized blocks, missing port numbers.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ferada committed Sep 20, 2011
1 parent 35bd5dd commit db1f428
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 51 deletions.
1 change: 1 addition & 0 deletions config.xml
Expand Up @@ -11,4 +11,5 @@
<entry key="mail">false</entry>
<entry key="sms">false</entry>
<entry key="languages">en,de</entry>
<entry key="web.port">8000</entry>
</properties>
1 change: 1 addition & 0 deletions postgres-config.xml
Expand Up @@ -11,4 +11,5 @@
<entry key="mail">false</entry>
<entry key="sms">false</entry>
<entry key="languages">en,de</entry>
<entry key="web.port">8000</entry>
</properties>
45 changes: 24 additions & 21 deletions src/board/FieldConverter.java
Expand Up @@ -116,30 +116,33 @@ public static String getStatus (Whiteboard whiteboard, String userId,
bindings.add ("property", property);
bindings.add ("user", user);

QueryExecution exec = whiteboard.query (query);
exec.setInitialBinding (bindings);
String result = null;

logger.trace ("exec = " + exec);
synchronized (whiteboard) {
QueryExecution exec = whiteboard.query (query);
exec.setInitialBinding (bindings);

String result = null;
try {
ResultSet results = exec.execSelect ();
while (results.hasNext ()) {
QuerySolution solution = results.next ();

logger.trace ("solution " + solution);

RDFNode value = solution.get ("value");
if (value.isLiteral ())
result = value.asLiteral ().getValue ().toString ();
else if (value.isURIResource ())
result = value.asResource ().getLocalName ();
else
logger.error ("value binding was an anonymous node, ignoring");
logger.trace ("exec = " + exec);

try {
ResultSet results = exec.execSelect ();
while (results.hasNext ()) {
QuerySolution solution = results.next ();

logger.trace ("solution " + solution);

RDFNode value = solution.get ("value");
if (value.isLiteral ())
result = value.asLiteral ().getValue ().toString ();
else if (value.isURIResource ())
result = value.asResource ().getLocalName ();
else
logger.error ("value binding was an anonymous node, ignoring");
}
}
finally {
exec.close ();
}
}
finally {
exec.close ();
}

if (result == null) {
Expand Down
31 changes: 18 additions & 13 deletions src/board/ModelServlet.java
Expand Up @@ -17,9 +17,12 @@
* e.g. '.n3'.
*/
public class ModelServlet extends HttpServlet {
public Board board;

public Model model;

public ModelServlet (Model model) {
public ModelServlet (Board board, Model model) {
this.board = board;
this.model = model;
}

Expand Down Expand Up @@ -52,18 +55,20 @@ else if (path.endsWith (".n3")) {

Writer writer = response.getWriter ();

if (htmlOutput) {
writer.write ("<!DOCTYPE html>\n" +
"<html lang='en'>" +
"<head><meta charset='utf-8'/><title>MATe model</title></head>" +
"<body><ul>");
StmtIterator it = model.listStatements ();
/* TODO: well, this could be prettier */
while (it.hasNext ())
writer.write ("<li>" + it.nextStatement () + "</li>");
writer.write ("<ul></body></html>");
synchronized (board) {
if (htmlOutput) {
writer.write ("<!DOCTYPE html>\n" +
"<html lang='en'>" +
"<head><meta charset='utf-8'/><title>MATe model</title></head>" +
"<body><ul>");
StmtIterator it = model.listStatements ();
/* TODO: well, this could be prettier */
while (it.hasNext ())
writer.write ("<li>" + it.nextStatement () + "</li>");
writer.write ("<ul></body></html>");
}
else
model.write (writer, language);
}
else
model.write (writer, language);
}
}
27 changes: 16 additions & 11 deletions src/board/OntologyServlet.java
Expand Up @@ -15,9 +15,12 @@
* a filename postfix, e.g. '.n3'.
*/
public class OntologyServlet extends HttpServlet {
public Board board;

public MateOntology ontology;

public OntologyServlet (MateOntology ontology) {
public OntologyServlet (Board board, MateOntology ontology) {
this.board = board;
this.ontology = ontology;
}

Expand Down Expand Up @@ -50,16 +53,18 @@ else if (path.endsWith (".n3")) {

Writer writer = response.getWriter ();

if (htmlOutput) {
writer.write ("<!DOCTYPE html>\n" +
"<html lang='en'>" +
"<head><meta charset='utf-8'/><title>MATe ontology</title></head>" +
"<body>Known MATe classes:<ul>");
for (Map.Entry<String, MateClass> entry : ontology.classes.entrySet ())
writer.write ("<li><a>" + Whiteboard.getLocalizedLabel (entry.getValue ().base) + "</a></li>");
writer.write ("</ul></body></html>");
synchronized (board) {
if (htmlOutput) {
writer.write ("<!DOCTYPE html>\n" +
"<html lang='en'>" +
"<head><meta charset='utf-8'/><title>MATe ontology</title></head>" +
"<body>Known MATe classes:<ul>");
for (Map.Entry<String, MateClass> entry : ontology.classes.entrySet ())
writer.write ("<li><a>" + Whiteboard.getLocalizedLabel (entry.getValue ().base) + "</a></li>");
writer.write ("</ul></body></html>");
}
else
ontology.model.write (writer, language);
}
else
ontology.model.write (writer, language);
}
}
12 changes: 6 additions & 6 deletions src/board/Whiteboard.java
Expand Up @@ -363,12 +363,12 @@ private void runWebServer (int port) throws Exception {
server.setHandler (context);

context.addServlet (new ServletHolder (new IndexServlet (this)), "/*");
context.addServlet (new ServletHolder (new OntologyServlet (mateOntology)), "/mate/*");
context.addServlet (new ServletHolder (new OntologyServlet (sensorOntology)), "/mate/sensors/*");
context.addServlet (new ServletHolder (new ModelServlet (worldModel)), "/world/*");
context.addServlet (new ServletHolder (new ModelServlet (sensorValues)), "/sensors/*");
context.addServlet (new ServletHolder (new ModelServlet (historyValues)), "/history/*");
context.addServlet (new ServletHolder (new ModelServlet (legacyModel)), "/legacy/*");
context.addServlet (new ServletHolder (new OntologyServlet (this, mateOntology)), "/mate/*");
context.addServlet (new ServletHolder (new OntologyServlet (this, sensorOntology)), "/mate/sensors/*");
context.addServlet (new ServletHolder (new ModelServlet (this, worldModel)), "/world/*");
context.addServlet (new ServletHolder (new ModelServlet (this, sensorValues)), "/sensors/*");
context.addServlet (new ServletHolder (new ModelServlet (this, historyValues)), "/history/*");
context.addServlet (new ServletHolder (new ModelServlet (this, legacyModel)), "/legacy/*");
context.addServlet (new ServletHolder (new QueryServlet (this)), "/query/*");

server.start ();
Expand Down

0 comments on commit db1f428

Please sign in to comment.