/**
* Copyright (c) 2011-2014, OpenIoT
*
* This file is part of OpenIoT.
*
* OpenIoT is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, version 3 of the License.
*
* OpenIoT is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenIoT. If not, see <http://www.gnu.org/licenses/>.
*
* Contact: OpenIoT mailto: info@openiot.eu
*/
package org.openiot.cupus.examples;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import org.openiot.cupus.artefact.HashtablePublication;
import org.openiot.cupus.entity.publisher.Publisher;
/**
*
* @author Aleksandar, Eugen
*/
public class PublisherExample {
public static void main(String[] args) throws InterruptedException, IOException {
Publisher publisher = new Publisher("pub1", "localhost", 10000);
//connect to broker
publisher.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Random r = new Random();
double num1;
double num2;
HashtablePublication hp = null;
while (true) {
System.out.print("Enter q to exit: ");
String inStr = in.readLine();
if (inStr.equalsIgnoreCase("q")) {
break;
}
//define new subscription
hp = new HashtablePublication(-1, System.currentTimeMillis());
//alternatively validity time can be set as: "hp.getStartTime() + [offset in ms]"
//hp.setValidity(hp.getStartTime() + 1000000);
//set publication propertis as name-value pairs;
//each publication can contain an arbitrary number of properties
try {
System.out.print("Enter the ID (number): ");
num1 = Double.parseDouble(in.readLine());
} catch (NumberFormatException e) {
System.out.println("You enetered something wrong. Try again...\n");
continue;
}
hp.setProperty("ID", num1);
hp.setProperty("Type", "SensorReading");
System.out.println();
//send publication to broker
publisher.publish(hp);
}
//publication can be defined and published using parameters from an xml file located in <project_directory>/in
//e.g. "publication.xml" is the XML file which defines a publication
//publisher.publishFromXMLFile("publication.xml");
System.out.println("Press enter to unpublish last publication...");
in.readLine();
System.out.println("Unpublishing...");
publisher.unpublish(hp);
System.out.println("Press enter to disconnect from broker...");
in.readLine();
//disconnect from broker
publisher.disconnectFromBroker();
}
}