aboutsummaryrefslogtreecommitdiffstats
path: root/example/VotingAppJar
diff options
context:
space:
mode:
Diffstat (limited to 'example/VotingAppJar')
-rw-r--r--example/VotingAppJar/VotingAppJar/pom.xml30
-rw-r--r--example/VotingAppJar/VotingAppJar/src/main/java/org/onap/music/VotingAppJar/VotingAppJar.java115
-rw-r--r--example/VotingAppJar/VotingAppJar/src/test/java/org/onap/music/VotingAppJar/AppTest.java38
3 files changed, 183 insertions, 0 deletions
diff --git a/example/VotingAppJar/VotingAppJar/pom.xml b/example/VotingAppJar/VotingAppJar/pom.xml
new file mode 100644
index 00000000..69b310d5
--- /dev/null
+++ b/example/VotingAppJar/VotingAppJar/pom.xml
@@ -0,0 +1,30 @@
+<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>org.onap.music</groupId>
+ <artifactId>VotingAppJar</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <name>VotingAppJar</name>
+ <url>http://maven.apache.org</url>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.music</groupId>
+ <artifactId>MUSIC</artifactId>
+ <version>3.0.2</version>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/example/VotingAppJar/VotingAppJar/src/main/java/org/onap/music/VotingAppJar/VotingAppJar.java b/example/VotingAppJar/VotingAppJar/src/main/java/org/onap/music/VotingAppJar/VotingAppJar.java
new file mode 100644
index 00000000..ad2661ec
--- /dev/null
+++ b/example/VotingAppJar/VotingAppJar/src/main/java/org/onap/music/VotingAppJar/VotingAppJar.java
@@ -0,0 +1,115 @@
+package org.onap.music.VotingAppJar;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.onap.music.datastore.PreparedQueryObject;
+import org.onap.music.exceptions.MusicLockingException;
+import org.onap.music.exceptions.MusicQueryException;
+import org.onap.music.exceptions.MusicServiceException;
+import org.onap.music.main.MusicCore;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+
+/**
+ *
+ */
+public class VotingAppJar
+{
+ String keyspaceName;
+ String tableName;
+
+ public VotingAppJar() throws MusicServiceException {
+ keyspaceName = "VotingAppForMusic"+System.currentTimeMillis();
+ tableName = "votecount";
+
+ createVotingKeyspace();
+ System.out.println("Created keyspaces");
+ createVotingTable();
+ System.out.println("Created tables");
+
+ createEntryForCandidate("Popeye");
+ createEntryForCandidate("Judy");
+ createEntryForCandidate("Flash");
+ createEntryForCandidate("Mickey");
+ System.out.println("Created candidates");
+ }
+
+ private void createVotingKeyspace() throws MusicServiceException {
+
+ Map<String,Object> replicationInfo = new HashMap<String, Object>();
+ replicationInfo.put("'class'", "'SimpleStrategy'");
+ replicationInfo.put("'replication_factor'", 1);
+
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString(
+ "CREATE KEYSPACE " + keyspaceName + " WITH REPLICATION = " + replicationInfo.toString().replaceAll("=", ":"));
+
+ try {
+ MusicCore.nonKeyRelatedPut(queryObject, "eventual");
+ } catch (MusicServiceException e) {
+ if (e.getMessage().equals("Keyspace votingappformusic already exists")) {
+ // ignore
+ } else {
+ throw(e);
+ }
+ }
+ }
+
+ private void createVotingTable() throws MusicServiceException {
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString(
+ "CREATE TABLE " + keyspaceName + "." + tableName + " (name text PRIMARY KEY, count varint);");
+
+ try {
+ MusicCore.createTable(keyspaceName, tableName, queryObject, "eventual");
+ } catch (MusicServiceException e) {
+ if (e.getMessage().equals("Table votingappformusic.votevount already exists")) {
+ //ignore
+ } else {
+ throw(e);
+ }
+ }
+ }
+
+ private void createEntryForCandidate(String candidateName) throws MusicServiceException {
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString(
+ "INSERT INTO " + keyspaceName + "." + tableName + " (name, count) "
+ + "VALUES ('"+candidateName+"', 0);");
+
+ MusicCore.nonKeyRelatedPut(queryObject, "eventual");
+ }
+
+ public void vote() throws MusicLockingException, MusicQueryException, MusicServiceException {
+ updateVoteCount("Popeye",5);
+ updateVoteCount("Judy",7);
+ updateVoteCount("Mickey",8);
+ updateVoteCount("Flash",2);
+ }
+
+ private void updateVoteCount(String candidateName, int numVotes) throws MusicLockingException, MusicQueryException, MusicServiceException {
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString(
+ "INSERT INTO " + keyspaceName + "." + tableName + " (name, count) "
+ + "VALUES ('"+candidateName+"', "+numVotes+");");
+ MusicCore.atomicPut(keyspaceName, tableName, candidateName, queryObject, null);
+ }
+
+ private void readAllVotes() throws MusicServiceException {
+ PreparedQueryObject queryObject = new PreparedQueryObject();
+ queryObject.appendQueryString("SELECT * FROM " + keyspaceName + "." + tableName);
+ ResultSet rs = MusicCore.get(queryObject);
+ for(Row candidate : rs.all()) {
+ System.out.println(candidate.getString("name") + " - " + candidate.getVarint("count"));
+ }
+ }
+
+ public static void main( String[] args ) throws Exception {
+ VotingAppJar vHandle = new VotingAppJar();
+ vHandle.vote();
+ vHandle.readAllVotes();
+ }
+
+} \ No newline at end of file
diff --git a/example/VotingAppJar/VotingAppJar/src/test/java/org/onap/music/VotingAppJar/AppTest.java b/example/VotingAppJar/VotingAppJar/src/test/java/org/onap/music/VotingAppJar/AppTest.java
new file mode 100644
index 00000000..536655c2
--- /dev/null
+++ b/example/VotingAppJar/VotingAppJar/src/test/java/org/onap/music/VotingAppJar/AppTest.java
@@ -0,0 +1,38 @@
+package org.onap.music.VotingAppJar;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}