From 9b6efbd93a12c858a0d2643013217ec3d6c3a46d Mon Sep 17 00:00:00 2001 From: "Thomas Nelson Jr (arthurdent3) tn1381@att.com" Date: Mon, 16 Jul 2018 16:41:20 -0400 Subject: various Updates Q-api, triggers, conductor conditional updates. Bug fixes Change-Id: Iec392309787cd90f0a2827a2955399723640e800 Issue-ID: MUSIC-93 Signed-off-by: Thomas Nelson Jr (arthurdent3) tn1381@att.com --- musictrigger/assembly.xml | 22 ++++++ musictrigger/pom.xml | 62 ++++++++++++++++ musictrigger/src/JSONObject.java | 38 ++++++++++ musictrigger/src/MusicTrigger.java | 142 +++++++++++++++++++++++++++++++++++++ 4 files changed, 264 insertions(+) create mode 100644 musictrigger/assembly.xml create mode 100644 musictrigger/pom.xml create mode 100644 musictrigger/src/JSONObject.java create mode 100644 musictrigger/src/MusicTrigger.java (limited to 'musictrigger') diff --git a/musictrigger/assembly.xml b/musictrigger/assembly.xml new file mode 100644 index 00000000..90178d8f --- /dev/null +++ b/musictrigger/assembly.xml @@ -0,0 +1,22 @@ + + v1 + + jar + + false + + + false + runtime + false + + + + + ${project.build.outputDirectory} + . + + + diff --git a/musictrigger/pom.xml b/musictrigger/pom.xml new file mode 100644 index 00000000..a0a156a9 --- /dev/null +++ b/musictrigger/pom.xml @@ -0,0 +1,62 @@ + + 4.0.0 + MusicTrigger + MusicTrigger + jar + 0.1 + + src + + + maven-compiler-plugin + 3.6.1 + + 1.8 + 1.8 + + + + maven-assembly-plugin + + + + fully.qualified.MainClass + + + + jar-with-dependencies + + + + + + + + + com.owlike + genson + 0.99 + + + com.sun.jersey + jersey-client + 1.17 + + + com.datastax.cassandra + cassandra-driver-core + 3.0.0 + + + org.cassandraunit + cassandra-unit + 3.3.0.1 + + + commons-codec + commons-codec + 1.11 + + + \ No newline at end of file diff --git a/musictrigger/src/JSONObject.java b/musictrigger/src/JSONObject.java new file mode 100644 index 00000000..38dfcbdc --- /dev/null +++ b/musictrigger/src/JSONObject.java @@ -0,0 +1,38 @@ +/* + * ============LICENSE_START========================================== + * org.onap.music + * =================================================================== + * Copyright (c) 2017 AT&T Intellectual Property + * =================================================================== + * 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. + * + * ============LICENSE_END============================================= + * ==================================================================== + */ + + +public class JSONObject { + + private String data; + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + + +} diff --git a/musictrigger/src/MusicTrigger.java b/musictrigger/src/MusicTrigger.java new file mode 100644 index 00000000..a27a6c40 --- /dev/null +++ b/musictrigger/src/MusicTrigger.java @@ -0,0 +1,142 @@ +/* + * ============LICENSE_START========================================== + * org.onap.music + * =================================================================== + * Copyright (c) 2017 AT&T Intellectual Property + * =================================================================== + * 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. + * + * ============LICENSE_END============================================= + * ==================================================================== + */ + +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Iterator; + +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MediaType; + +import org.apache.cassandra.config.ColumnDefinition; +import org.apache.cassandra.db.Clustering; +import org.apache.cassandra.db.Mutation; +import org.apache.cassandra.db.partitions.Partition; +import org.apache.cassandra.db.rows.Cell; +import org.apache.cassandra.db.rows.Unfiltered; +import org.apache.cassandra.db.rows.UnfilteredRowIterator; +import org.apache.cassandra.triggers.ITrigger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource; + +public class MusicTrigger implements ITrigger { + + private static final Logger logger = LoggerFactory.getLogger(MusicTrigger.class); + + public Collection augment(Partition partition) + { + String tableName = partition.metadata().cfName; + logger.info("MusicTrigger Table: " + tableName); + + org.json.simple.JSONObject obj = new org.json.simple.JSONObject(); + obj.put("message_id", partition.metadata().getKeyValidator().getString(partition.partitionKey().getKey())); + + try { + UnfilteredRowIterator it = partition.unfilteredIterator(); + while (it.hasNext()) { + Unfiltered un = it.next(); + Clustering clt = (Clustering) un.clustering(); + Iterator cells = partition.getRow(clt).cells().iterator(); + Iterator columns = partition.getRow(clt).columns().iterator(); + + while(columns.hasNext()){ + ColumnDefinition columnDef = columns.next(); + Cell cell = cells.next(); + String data = new String(cell.value().array()); // If cell type is text + obj.put(columnDef.toString(), data); + } + } + } catch (Exception e) { + + } + logger.info("What is this? "+obj.toString()); + + notifyMusic(obj.toString()); + return Collections.emptyList(); + } + + + private void notifyMusic(String request) { + System.out.println("notifyMusic..."); + Client client = Client.create(); + WebResource webResource = client.resource("http://localhost:8080/MUSIC/rest/v2/admin/callbackOps"); + + JSONObject data = new JSONObject(); + data.setData(request); + + ClientResponse response = webResource.accept("application/json").type("application/json") + .post(ClientResponse.class, data); + + if(response.getStatus() != 200){ + System.out.println("Exception..."); + } + response.getHeaders().put(HttpHeaders.CONTENT_TYPE, Arrays.asList(MediaType.APPLICATION_JSON)); + response.bufferEntity(); + String x = response.getEntity(String.class); + System.out.println("Response: "+x); + + } + + /*public Collection augment(Partition partition) { + + String tableName = partition.metadata().cfName; + System.out.println("Table: " + tableName); + + JSONObject obj = new JSONObject(); + obj.put("message_id", partition.metadata().getKeyValidator().getString(partition.partitionKey().getKey())); + + + try { + UnfilteredRowIterator it = partition.unfilteredIterator(); + while (it.hasNext()) { + Unfiltered un = it.next(); + Clustering clt = (Clustering) un.clustering(); + Iterator cls = partition.getRow(clt).cells().iterator(); + Iterator columns = partition.getRow(clt).columns().iterator(); + + while(cls.hasNext()){ + Cell cell = cls.next(); + String data = new String(cell.value().array()); // If cell type is text + System.out.println(cell + " : " +data); + + } + while(columns.hasNext()){ + ColumnDefinition columnDef = columns.next(); + Cell cell = cls.next(); + String data = new String(cell.value().array()); // If cell type is text + obj.put(columnDef.toString(), data); + } + } + } catch (Exception e) { + } + + System.out.println(obj.toString()); + + return Collections.emptyList(); + }*/ + +} \ No newline at end of file -- cgit 1.2.3-korg