Commit 32f7b7c2 authored by skoulouzis's avatar skoulouzis Committed by GitHub

Merge pull request #43 from skoulouzis/DRIP_0.1

Drip 0.1
parents 03b53d27 7d846333
...@@ -5,4 +5,6 @@ ...@@ -5,4 +5,6 @@
/drip-simple_planner/target/ /drip-simple_planner/target/
/drip-provisioner/target/ /drip-provisioner/target/
/target/ /target/
/drip-planner2provisioner/target/ /drip-planner2provisioner/target/
\ No newline at end of file /drip-component_example/target/
/deleteme/target/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>nl.uva.sne.drip</groupId>
<artifactId>drip</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>deleteme</artifactId>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package nl.uva.sne.drip.deleteme;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.OpenOption;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Base64;
/**
*
* @author alogo
*/
public class Main {
public static void main(String[] args) throws IOException {
byte[] bytes = Files.readAllBytes(Paths.get("/home/alogo/workspace/DRIP/docs/images/DRIP_arch.png"));
byte[] encoded = Base64.getEncoder().encode(bytes);
String cont = new String(encoded, "US-ASCII");
System.out.println(cont);
byte[] decoded = Base64.getDecoder().decode(cont);
OpenOption[] options = new OpenOption[1];
options[0] = StandardOpenOption.CREATE_NEW;
Files.write(Paths.get("/home/alogo/Downloads/DRIP_arch.png"), decoded, options);
}
}
...@@ -12,17 +12,28 @@ ...@@ -12,17 +12,28 @@
"url": null, "url": null,
"encoding": "UTF-8", "encoding": "UTF-8",
"value": "0.84\n 0.735\n 0.44\n 0.211\n 0.669\n 0.683\n 0.011\n 0.435\n 0.246\n 0.006\n 0.046\n 0.214\n 0.872\n 0.206\n 0.643\n 0.289\n 0.381\n 0.05\n 0.831\n 0.835\n 0.953\n 0.119\n 0.214\n 0.412\n 0.643\n 0.714\n 0.672\n 0.929\n 0.562\n 0.216\n 0.386\n 0.309\n 0.977\n 0.281\n 0.522\n 0.393\n 0.217\n 0.002\n 0.147\n 0.755\n 0.745\n 0.074\n 0.032\n 0.844\n 0.636\n 0.74\n 0.473\n 0.539\n 0.032\n 0.268\n 0.736\n 0.232\n 0.278\n 0.309\n 0.143\n 0.171\n 0.491\n 0.55\n 0.087\n 0.723\n 0.274\n 0.757\n 0.263\n 0.09\n 0.563\n 0.747\n 0.935\n 0.493\n 0.108\n 0.448\n 0.128\n 0.498\n 0.691\n 0.791\n 0.499\n 0.474\n 0.045\n 0.338\n 0.754\n 0.838\n 0.758\n 0.8\n 0.055\n 0.798\n 0.517\n 0.619\n 0.055\n 0.803\n 0.467\n 0.47\n 0.842\n 0.294\n 0.977\n 0.211\n 0.513\n 0.282\n 0.147\n 0.219\n 0.445\n 0.157\n\n", "value": "0.84\n 0.735\n 0.44\n 0.211\n 0.669\n 0.683\n 0.011\n 0.435\n 0.246\n 0.006\n 0.046\n 0.214\n 0.872\n 0.206\n 0.643\n 0.289\n 0.381\n 0.05\n 0.831\n 0.835\n 0.953\n 0.119\n 0.214\n 0.412\n 0.643\n 0.714\n 0.672\n 0.929\n 0.562\n 0.216\n 0.386\n 0.309\n 0.977\n 0.281\n 0.522\n 0.393\n 0.217\n 0.002\n 0.147\n 0.755\n 0.745\n 0.074\n 0.032\n 0.844\n 0.636\n 0.74\n 0.473\n 0.539\n 0.032\n 0.268\n 0.736\n 0.232\n 0.278\n 0.309\n 0.143\n 0.171\n 0.491\n 0.55\n 0.087\n 0.723\n 0.274\n 0.757\n 0.263\n 0.09\n 0.563\n 0.747\n 0.935\n 0.493\n 0.108\n 0.448\n 0.128\n 0.498\n 0.691\n 0.791\n 0.499\n 0.474\n 0.045\n 0.338\n 0.754\n 0.838\n 0.758\n 0.8\n 0.055\n 0.798\n 0.517\n 0.619\n 0.055\n 0.803\n 0.467\n 0.47\n 0.842\n 0.294\n 0.977\n 0.211\n 0.513\n 0.282\n 0.147\n 0.219\n 0.445\n 0.157\n\n",
"name": "someInputFile", "name": "input-file",
"attributes": null "attributes": null
}, },
{
"url": null,
"encoding": "Base64",
"value": "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",
"name": "input_image",
"attributes": {
"filename":"arch.png"
}
},
{ {
"url": "http://www.gutenberg.org/cache/epub/3160/pg3160.txt", "url": "http://www.gutenberg.org/cache/epub/3160/pg3160.txt",
"encoding": null, "encoding": null,
"value": null, "value": null,
"name": "theNameOfTheParamater", "name": "text",
"attributes": { "attributes": {
"level": "0", "Author":"Homer",
"filename":"file.txt" "Translator":"Pope, Alexander",
"Language":"English"
} }
} }
] ]
......
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<netbeans.hint.licensePath>${project.basedir}/../licenseheader.txt</netbeans.hint.licensePath>
</properties>
</project-shared-configuration>
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath nl.uva.sne.drip.drip.component_example.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath nl.uva.sne.drip.drip.component_example.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
</properties>
</action>
<action>
<actionName>profile</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath nl.uva.sne.drip.drip.component_example.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
</actions>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>nl.uva.sne.drip</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>drip-component_example</artifactId>
<packaging>jar</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
<type>jar</type>
</dependency>
</dependencies>
</project>
\ No newline at end of file
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.component_example;
import java.io.File;
/**
* This is an example components. It is a dumy components to demonstrate a
* simple application logic
*
* @author S. Koulouziss
*/
public class Component {
private final int input;
private final File inputTextFile;
private final File inputBinFile;
private final ExamplePOJO book;
public Component(int input, File inputTextFile, File inputBinFile, ExamplePOJO book) {
this.input = input;
this.inputTextFile = inputTextFile;
this.inputBinFile = inputBinFile;
this.book = book;
}
String run() throws Exception {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.component_example;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.OpenOption;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.Base64;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
*
* This is an example of a Message consumer
*
*
* @author S. Koulouzis
*/
public class Consumer extends DefaultConsumer {
private final Channel channel;
public Consumer(Channel channel) {
super(channel);
this.channel = channel;
}
public Consumer() {
super(null);
this.channel = null;
}
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
//Create the reply properties which tells us where to reply, and which id to use.
//No need to change anything here
AMQP.BasicProperties replyProps = new AMQP.BasicProperties.Builder()
.correlationId(properties.getCorrelationId())
.build();
String response = "";
try {
//The queue only moves bytes so we need to convert them to stting
String message = new String(body, "UTF-8");
response = invokeComponent(message);
} catch (JSONException | IOException ex) {
response = ex.getMessage();
Logger.getLogger(Consumer.class.getName()).log(Level.SEVERE, null, ex);
} finally {
//We send the response back. No need to change anything here
channel.basicPublish("", properties.getReplyTo(), replyProps, response.getBytes("UTF-8"));
channel.basicAck(envelope.getDeliveryTag(), false);
}
}
/**
* This method is extracts the parammeters from incoming JSON message.
*
* @param message
* @return
* @throws JSONException
* @throws IOException
*/
public String invokeComponent(String message) throws JSONException, IOException {
JSONObject messageJson = new JSONObject(message);
Date creationDate = getMessageCreationDate(messageJson);
Logger.getLogger(Consumer.class.getName()).log(Level.INFO, "Message was created at: {0}", creationDate);
JSONArray parameters = messageJson.getJSONArray("parameters");
int input = getInputInteger(parameters);
Logger.getLogger(Consumer.class.getName()).log(Level.INFO, "Input parameter is: {0}", input);
File inputTextFile = getInputFile(parameters, System.getProperty("java.io.tmpdir") + File.separator + "delete-me.txt");
Logger.getLogger(Consumer.class.getName()).log(Level.INFO, "Input file is at: {0}. With size: {1}", new Object[]{inputTextFile.getAbsolutePath(), inputTextFile.length()});
File inputBinFile = getInputImageFile(parameters, System.getProperty("java.io.tmpdir"));
Logger.getLogger(Consumer.class.getName()).log(Level.INFO, "Input image file is at: {0}. With size: {1}", new Object[]{inputBinFile.getAbsolutePath(), inputBinFile.length()});
ExamplePOJO book = getExamplePOJO(parameters);
Integer wordcount = book.getContent().trim().split("\\s+").length;
Logger.getLogger(Consumer.class.getName()).log(Level.INFO, "Created book object. Author: {0}. Langunage: {1}. Number of words: {2}", new Object[]{book.getAuthor(), book.getLanguage(), wordcount});
Component component = new Component(input, inputTextFile, inputBinFile, book);
String response;
try {
response = component.run();
} catch (Exception ex) {
response = ex.getMessage();
Logger.getLogger(Consumer.class.getName()).log(Level.SEVERE, null, ex);
}
return response;
}
private Date getMessageCreationDate(JSONObject messageJson) throws JSONException {
return new Date(messageJson.getLong("creationDate"));
}
private Integer getInputInteger(JSONArray parameters) throws JSONException {
for (int i = 0; i < parameters.length(); i++) {
JSONObject param = (JSONObject) parameters.get(i);
if (param.has("name") && param.getString("name").equals("input")) {
return param.getInt("value");
}
}
return null;
}
private File getInputFile(JSONArray parameters, String filePath) throws JSONException, IOException {
for (int i = 0; i < parameters.length(); i++) {
JSONObject param = (JSONObject) parameters.get(i);
if (param.has("name") && param.getString("name").equals("input-file")) {
OpenOption[] options = new OpenOption[1];
options[0] = StandardOpenOption.CREATE_NEW;
String value = param.getString("value");
String encoding = param.getString("encoding");
File file = new File(filePath);
file.delete();
byte[] bytes = null;
if (encoding.equals("UTF-8")) {
bytes = value.getBytes();
}
if (encoding.equals("Base64")) {
bytes = Base64.getDecoder().decode(value);
}
Files.write(Paths.get(file.getAbsolutePath()), bytes, options);
return file;
}
}
return null;
}
private File getInputImageFile(JSONArray parameters, String filePath) throws IOException, JSONException {
for (int i = 0; i < parameters.length(); i++) {
JSONObject param = (JSONObject) parameters.get(i);
if (param.has("name") && param.getString("name").equals("input_image")) {
OpenOption[] options = new OpenOption[1];
options[0] = StandardOpenOption.CREATE_NEW;
String value = param.getString("value");
String encoding = param.getString("encoding");
JSONObject attributes = param.getJSONObject("attributes");
String fileName = attributes.getString("filename");
File file = new File(filePath + File.separator + fileName);
file.delete();
byte[] bytes = null;
if (encoding.equals("UTF-8")) {
bytes = value.getBytes();
}
if (encoding.equals("Base64")) {
bytes = Base64.getDecoder().decode(value);
}
Files.write(Paths.get(file.getAbsolutePath()), bytes, options);
return file;
}
}
return null;
}
private ExamplePOJO getExamplePOJO(JSONArray parameters) throws JSONException, MalformedURLException, IOException {
for (int i = 0; i < parameters.length(); i++) {
JSONObject param = (JSONObject) parameters.get(i);
if (param.has("name") && param.getString("name").equals("text")) {
URL url = new URL(param.getString("url"));
String content = getContent(url);
JSONObject attributes = param.getJSONObject("attributes");
String author = attributes.getString("Author");
String translator = attributes.getString("Translator");
String language = attributes.getString("Language");
ExamplePOJO book = new ExamplePOJO(author, content, translator, language);
return book;
}
}
return null;
}
private String getContent(URL url) throws IOException {
URLConnection conn = url.openConnection();
StringBuilder cont = null;
try (BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()))) {
String inputLine;
cont = new StringBuilder();
while ((inputLine = br.readLine()) != null) {
cont.append(inputLine);
}
}
return cont.toString();
}
}
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.component_example;
/**
*
* @author S. Koulouzis
*/
public class ExamplePOJO {
private final String author;
private final String content;
private final String translator;
private final String language;
public ExamplePOJO(String author, String content, String translator, String language) {
this.author = author;
this.content = content;
this.translator = translator;
this.language = language;
}
/**
* @return the author
*/
public String getAuthor() {
return author;
}
/**
* @return the content
*/
public String getContent() {
return content;
}
/**
* @return the translator
*/
public String getTranslator() {
return translator;
}
/**
* @return the language
*/
public String getLanguage() {
return language;
}
}
/*
* Copyright 2017 S. Koulouzis, Wang Junchao, Huan Zhou, Yang Hu
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package nl.uva.sne.drip.drip.component_example;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.MessageFormat;
import java.util.Properties;
import java.util.concurrent.TimeoutException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.JSONException;
/**
* This class is responsible for receiving and sending message to the DRIP
* manager via RabbitMQ.
*
* @author S. Koulouzis
*/
public class RPCServer {
/**
* The name of the queue to send and receive massages
*/
private static final String RPC_QUEUE_NAME = "planner_queue";
/**
* The IP or host name of the RabbitMQ server
*/
private static String HOST = "127.0.0.1";
public static void main(String[] args) {
if (args.length > 1 && args[0].equals("test")) {
try {
Consumer c = new Consumer();
byte[] encoded = Files.readAllBytes(Paths.get(args[1]));
String response = c.invokeComponent(new String(encoded, "UTF-8"));
Logger.getLogger(RPCServer.class.getName()).log(Level.INFO, MessageFormat.format("Response: {0}", response));
} catch (IOException | JSONException ex) {
Logger.getLogger(RPCServer.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
Properties prop = new Properties();
if (args.length >= 1 && !args[0].equals("test")) {
try {
prop.load(new FileInputStream(args[0]));
} catch (IOException ex) {
Logger.getLogger(RPCServer.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
String resourceName = "provisioner.properies";
ClassLoader loader = Thread.currentThread().getContextClassLoader();
try (InputStream resourceStream = loader.getResourceAsStream(resourceName)) {
prop.load(resourceStream);
} catch (IOException ex) {
Logger.getLogger(RPCServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
HOST = prop.getProperty("rabbitmq.host", "127.0.0.1");
Logger.getLogger(RPCServer.class.getName()).log(Level.INFO, MessageFormat.format("rabbitmq.host: {0}", HOST));
start();
}
}
private static void start() {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(HOST);
factory.setPassword("guest");
factory.setUsername("guest");
factory.setPort(AMQP.PROTOCOL.PORT);
try (Connection connection = factory.newConnection()) {
Channel channel = connection.createChannel();
//We define the queue name
channel.queueDeclare(RPC_QUEUE_NAME, false, false, false, null);
//Set our own customized consummer
Consumer c = new Consumer(channel);
//Start listening for messages
channel.basicConsume(RPC_QUEUE_NAME, false, c);
//Block so we don't close the channel
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException _ignore) {
}
}
} catch (IOException | TimeoutException ex) {
Logger.getLogger(RPCServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>nl.uva.sne.drip</groupId>
<artifactId>drip</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>nl.uva.sne.drip</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>drip-provisioner</artifactId> <artifactId>drip-provisioner</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
......
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath nl.uva.sne.drip.drip.planner.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath nl.uva.sne.drip.drip.planner.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
<jpda.listen>true</jpda.listen>
</properties>
</action>
<action>
<actionName>profile</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
</goals>
<properties>
<exec.args>-classpath %classpath nl.uva.sne.drip.drip.planner.RPCServer test /home/alogo/workspace/DRIP/docs/json_samples/messageExample.json</exec.args>
<exec.executable>java</exec.executable>
</properties>
</action>
</actions>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>nl.uva.sne.drip</groupId> <groupId>nl.uva.sne.drip</groupId>
<artifactId>drip</artifactId> <version>1.0-SNAPSHOT</version>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>drip-simple_planner</artifactId> <artifactId>drip-simple_planner</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
......
...@@ -25,12 +25,20 @@ import java.util.logging.Level; ...@@ -25,12 +25,20 @@ import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
/** /**
* *This class is responsible for receiving and sending message to the DRIP manager
* via RabbitMQ.
*
* @author S. Koulouzis * @author S. Koulouzis
*/ */
public class RPCServer { public class RPCServer {
/**
*The name of the queue to send and receive massages
*/
private static final String RPC_QUEUE_NAME = "planner_queue"; private static final String RPC_QUEUE_NAME = "planner_queue";
/**
* The IP or host name of the RabbitMQ server
*/
private static final String HOST = "172.17.0.3"; private static final String HOST = "172.17.0.3";
public static void main(String[] argv) { public static void main(String[] argv) {
......
...@@ -12,5 +12,6 @@ ...@@ -12,5 +12,6 @@
<modules> <modules>
<module>drip-api</module> <module>drip-api</module>
<module>drip-planner2provisioner</module> <module>drip-planner2provisioner</module>
<module>deleteme</module>
</modules> </modules>
</project> </project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment