diff options
Diffstat (limited to 'musictrigger')
-rw-r--r-- | musictrigger/assembly.xml | 22 | ||||
-rw-r--r-- | musictrigger/pom.xml | 62 | ||||
-rw-r--r-- | musictrigger/src/JSONObject.java | 38 | ||||
-rw-r--r-- | musictrigger/src/MusicTrigger.java | 142 |
4 files changed, 264 insertions, 0 deletions
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 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> + <id>v1</id> + <formats> + <format>jar</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <dependencySets> + <dependencySet> + <unpack>false</unpack> + <scope>runtime</scope> + <useProjectArtifact>false</useProjectArtifact> + </dependencySet> + </dependencySets> + <fileSets> + <fileSet> + <directory>${project.build.outputDirectory}</directory> + <outputDirectory>.</outputDirectory> + </fileSet> + </fileSets> +</assembly> 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 @@ +<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>MusicTrigger</groupId> + <artifactId>MusicTrigger</artifactId> + <packaging>jar</packaging> + <version>0.1</version> + <build> + <sourceDirectory>src</sourceDirectory> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.6.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <archive> + <manifest> + <mainClass>fully.qualified.MainClass</mainClass> + </manifest> + </archive> + <descriptorRefs> + <descriptorRef>jar-with-dependencies</descriptorRef> + </descriptorRefs> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>com.owlike</groupId> + <artifactId>genson</artifactId> + <version>0.99</version> + </dependency> + <dependency> + <groupId>com.sun.jersey</groupId> + <artifactId>jersey-client</artifactId> + <version>1.17</version> + </dependency> + <dependency> + <groupId>com.datastax.cassandra</groupId> + <artifactId>cassandra-driver-core</artifactId> + <version>3.0.0</version> + </dependency> + <dependency> + <groupId>org.cassandraunit</groupId> + <artifactId>cassandra-unit</artifactId> + <version>3.3.0.1</version> + </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.11</version> + </dependency> + </dependencies> +</project>
\ 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<Mutation> 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<Cell> cells = partition.getRow(clt).cells().iterator(); + Iterator<ColumnDefinition> 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<Mutation> 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<Cell> cls = partition.getRow(clt).cells().iterator(); + Iterator<ColumnDefinition> 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 |