Skip to content

Commit c636bea

Browse files
committed
Bug fixes
1 parent c3656ec commit c636bea

File tree

4 files changed

+81
-45
lines changed

4 files changed

+81
-45
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>org.hobbit</groupId>
77
<artifactId>hobbit-java-sdk</artifactId>
8-
<version>1.1.14-SNAPHSHOT</version>
8+
<version>1.1.14</version>
99

1010
<properties>
1111
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -65,7 +65,7 @@
6565
<dependency>
6666
<groupId>org.hobbit</groupId>
6767
<artifactId>core</artifactId>
68-
<version>1.0.12</version>
68+
<version>1.0.13</version>
6969
<exclusions>
7070
<exclusion>
7171
<groupId>com.google.guava</groupId>

src/main/java/org/hobbit/sdk/examples/dummybenchmark/test/DummyBenchmarkTestRunner.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.apache.commons.io.FileUtils;
44
import org.apache.jena.rdf.model.Model;
55
import org.apache.jena.rdf.model.Resource;
6+
import org.apache.jena.rdf.model.impl.ModelCom;
67
import org.hobbit.core.Constants;
78
import org.hobbit.core.components.Component;
89
import org.hobbit.core.rabbit.RabbitMQUtils;
@@ -22,6 +23,7 @@
2223
import java.io.IOException;
2324
import java.util.Date;
2425

26+
import static org.apache.jena.rdf.model.ModelFactory.createDefaultModel;
2527
import static org.hobbit.core.Constants.*;
2628
import static org.hobbit.sdk.Constants.*;
2729
import static org.hobbit.sdk.examples.dummybenchmark.test.DummyDockersBuilder.*;
@@ -144,8 +146,8 @@ private void checkHealth(Boolean dockerize) throws Exception {
144146
String benchmarkContainerId = "benchmark";
145147
String systemContainerId = "system";
146148

147-
benchmarkContainerId = commandQueueListener.createContainer(benchmarkBuilder.getImageName(), "benchmark", new String[]{ HOBBIT_EXPERIMENT_URI_KEY+"="+NEW_EXPERIMENT_URI, BENCHMARK_PARAMETERS_MODEL_KEY+"="+ RabbitMQUtils.writeModel2String(createBenchmarkParameters()) });
148-
systemContainerId = commandQueueListener.createContainer(systemAdapterBuilder.getImageName(), "system" ,new String[]{ SYSTEM_PARAMETERS_MODEL_KEY+"="+ RabbitMQUtils.writeModel2String(createSystemParameters()) });
149+
benchmarkContainerId = commandQueueListener.createContainer(benchmarkBuilder.getImageName(), "benchmark", new String[]{ HOBBIT_EXPERIMENT_URI_KEY+"="+NEW_EXPERIMENT_URI, BENCHMARK_PARAMETERS_MODEL_KEY+"="+ RabbitMQUtils.writeModel2String(ModelsHandler.createMergedParametersModel(createBenchmarkParameters(), ModelsHandler.readModelFromFile("benchmark.ttl")))});
150+
systemContainerId = commandQueueListener.createContainer(systemAdapterBuilder.getImageName(), "system" ,new String[]{ SYSTEM_PARAMETERS_MODEL_KEY+"="+ RabbitMQUtils.writeModel2String(ModelsHandler.createMergedParametersModel(createSystemParameters(), ModelsHandler.readModelFromFile("system.ttl"))) });
149151

150152
//componentsExecutor.submit(benchmarkController, benchmarkContainerId, new String[]{ HOBBIT_EXPERIMENT_URI_KEY+"="+EXPERIMENT_URI, BENCHMARK_PARAMETERS_MODEL_KEY+"="+ createBenchmarkParameters() });
151153
//componentsExecutor.submit(systemAdapter, systemContainerId, new String[]{ SYSTEM_PARAMETERS_MODEL_KEY+"="+ createSystemParameters() });
@@ -163,22 +165,17 @@ private void checkHealth(Boolean dockerize) throws Exception {
163165
}
164166

165167
public static Model createBenchmarkParameters() throws IOException {
166-
byte[] bytes = FileUtils.readFileToByteArray(new File("benchmark.ttl"));
167-
Model model = ModelsHandler.byteArrayToModel(bytes, "TTL");
168-
169-
Resource experimentResource = model.createResource(org.hobbit.core.Constants.NEW_EXPERIMENT_URI);
168+
Model model = createDefaultModel();
169+
Resource experimentResource = model.createResource(Constants.NEW_EXPERIMENT_URI);
170170
model.add(experimentResource, model.createProperty(BENCHMARK_URI+"#messages"),"100");
171171
ModelsHandler.fillTheInstanceWithDefaultModelValues(model, experimentResource, BENCHMARK_URI);
172-
173172
return model;
174173

175174
}
176175

177176
public static Model createSystemParameters() throws IOException {
178-
byte[] bytes = FileUtils.readFileToByteArray(new File("system.ttl"));
179-
Model model = ModelsHandler.byteArrayToModel(bytes, "TTL");
180-
181-
Resource experimentResource = model.createResource(org.hobbit.core.Constants.NEW_EXPERIMENT_URI);
177+
Model model = createDefaultModel();
178+
Resource experimentResource = model.createResource(Constants.NEW_EXPERIMENT_URI);
182179
model.add(experimentResource, model.createProperty(BENCHMARK_URI+"#systemParam123"),"100");
183180
return model;
184181
}

src/main/java/org/hobbit/sdk/utils/ModelsHandler.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package org.hobbit.sdk.utils;
22

3+
import org.apache.commons.io.FileUtils;
34
import org.apache.jena.rdf.model.*;
45
import org.apache.jena.vocabulary.RDF;
56
import org.apache.jena.vocabulary.XSD;
7+
import org.hobbit.core.Constants;
68
import org.hobbit.vocab.HOBBIT;
79

810
import java.io.ByteArrayInputStream;
11+
import java.io.File;
12+
import java.io.IOException;
913
import java.io.StringWriter;
1014
import java.util.HashMap;
1115
import java.util.Map;
@@ -46,6 +50,42 @@ public static void fillTheInstanceWithDefaultModelValues(Model model, Resource b
4650

4751
}
4852

53+
public static Model readModelFromFile(String path) throws IOException {
54+
byte[] bytes = FileUtils.readFileToByteArray(new File(path));
55+
Model model = ModelsHandler.byteArrayToModel(bytes, "TTL");
56+
return model;
57+
}
58+
59+
public static Model createMergedParametersModel(Model paramsModel, Model defaultModel){
60+
61+
Property parameter;
62+
NodeIterator objIterator;
63+
64+
ResIterator iterator0 = paramsModel.listResourcesWithProperty(RDF.type, HOBBIT.Experiment);
65+
Resource experimentResource = iterator0.nextResource();
66+
67+
Property defaultValProperty = paramsModel.getProperty("http://w3id.org/hobbit/vocab#defaultValue");
68+
ResIterator iterator = defaultModel.listResourcesWithProperty(RDF.type, HOBBIT.Parameter);
69+
while (iterator.hasNext()) {
70+
try{
71+
parameter = defaultModel.getProperty(iterator.next().getURI());
72+
if(experimentResource.getProperty(parameter)==null){
73+
objIterator = defaultModel.listObjectsOfProperty(parameter, defaultValProperty);
74+
while (objIterator.hasNext()) {
75+
Literal valueLiteral = (Literal) objIterator.next();//.asLiteral().getString();
76+
//paramsModel.add(experimentResource, parameter, valueLiteral.getString(), valueLiteral.getDatatype());
77+
paramsModel.add(experimentResource, parameter, valueLiteral.getString());
78+
//parameters.put(namespaceUri + "#" + parameter.getLocalName(), value);
79+
}
80+
}
81+
}
82+
catch (Exception e){
83+
e.printStackTrace();
84+
}
85+
}
86+
return paramsModel;
87+
}
88+
4989
public static Model addParameters(Model model, Resource benchmarkInstanceResource, Map<String, Object> params) throws Exception {
5090
//Property valueProperty = model.getProperty("http://w3id.org/hobbit/vocab#defaultValue");
5191
// Property valueProperty = model.getProperty("hobbit:defaultValue");

src/main/java/org/hobbit/sdk/utils/commandreactions/ContainerCommandsReaction.java

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.hobbit.core.Commands;
66
import org.hobbit.core.components.Component;
77
//import org.hobbit.core.data.ExecuteCommandData;
8-
import org.hobbit.core.data.ExecuteCommandData;
98
import org.hobbit.core.data.StartCommandData;
109
import org.hobbit.core.rabbit.RabbitMQUtils;
1110
import org.hobbit.sdk.docker.AbstractDockerizer;
@@ -249,37 +248,37 @@ public void handleCmd(Byte command, byte[] bytes, String replyTo) throws Excepti
249248
}
250249
}
251250
}
252-
else if(command==Commands.EXECUTE_ASYNC_COMMAND){
253-
//Supported only for the extended core, not supported in the online platform
254-
CommandSender commandSender = null;
255-
String dataString = RabbitMQUtils.readString(bytes);
256-
ExecuteCommandData executeCommandData = gson.fromJson(dataString, ExecuteCommandData.class);
257-
258-
logger.debug("EXECUTE_COMMAND_IN_CONTAINER {} received", executeCommandData.containerId);
259-
260-
AbstractDockerizer runningContainer;
261-
if(!runningComponents.containsKey(executeCommandData.containerId)){
262-
runningContainer = new PullBasedDockersBuilder("container-"+executeCommandData.containerId).containerName(executeCommandData.containerId).build();
263-
//logger.error("No running container {} found", executeCommandData.containerId);
264-
//return;
265-
}else
266-
runningContainer = (AbstractDockerizer)runningComponents.get(executeCommandData.containerId);
267-
268-
Boolean result0 = runningContainer.execAsyncCommand(executeCommandData.containerId, executeCommandData.command);
269-
String result = (result0?"Succeeded":"Failed");
270-
synchronized (this) {
271-
try {
272-
logger.debug("Sending command execution result: {}", result);
273-
new CommandSender(result.getBytes(), MessageProperties.PERSISTENT_BASIC, replyTo).send();
274-
275-
} catch (Exception e){
276-
logger.error("Failed send reply: ", e.getLocalizedMessage());
277-
Assert.fail(e.getMessage());
278-
}
279-
}
280-
281-
282-
}
251+
// else if(command==Commands.EXECUTE_ASYNC_COMMAND){
252+
// //Supported only for the extended core, not supported in the online platform
253+
// CommandSender commandSender = null;
254+
// String dataString = RabbitMQUtils.readString(bytes);
255+
// ExecuteCommandData executeCommandData = gson.fromJson(dataString, ExecuteCommandData.class);
256+
//
257+
// logger.debug("EXECUTE_COMMAND_IN_CONTAINER {} received", executeCommandData.containerId);
258+
//
259+
// AbstractDockerizer runningContainer;
260+
// if(!runningComponents.containsKey(executeCommandData.containerId)){
261+
// runningContainer = new PullBasedDockersBuilder("container-"+executeCommandData.containerId).containerName(executeCommandData.containerId).build();
262+
// //logger.error("No running container {} found", executeCommandData.containerId);
263+
// //return;
264+
// }else
265+
// runningContainer = (AbstractDockerizer)runningComponents.get(executeCommandData.containerId);
266+
//
267+
// Boolean result0 = runningContainer.execAsyncCommand(executeCommandData.containerId, executeCommandData.command);
268+
// String result = (result0?"Succeeded":"Failed");
269+
// synchronized (this) {
270+
// try {
271+
// logger.debug("Sending command execution result: {}", result);
272+
// new CommandSender(result.getBytes(), MessageProperties.PERSISTENT_BASIC, replyTo).send();
273+
//
274+
// } catch (Exception e){
275+
// logger.error("Failed send reply: ", e.getLocalizedMessage());
276+
// Assert.fail(e.getMessage());
277+
// }
278+
// }
279+
//
280+
//
281+
// }
283282

284283

285284
}

0 commit comments

Comments
 (0)