diff options
author | Nelson,Thomas(tn1381)(arthurdent3) <tn1381@att.com> | 2019-01-29 15:55:37 -0500 |
---|---|---|
committer | Nelson,Thomas(tn1381)(arthurdent3) <tn1381@att.com> | 2019-01-29 16:05:01 -0500 |
commit | a27be9fdbbf2d271c9c5780ba70fe15a24dbdb63 (patch) | |
tree | 1fa631eae149ed6be33b636e7eac03dadbef64c3 /musictrigger | |
parent | 95489883ce973e84267fcbcee685f1598d4bdd6e (diff) |
Push variuos changes
- Spring Boot
- Cadi
- Cassandra Locking
Change-Id: Ie9882f81f0ca141bdb7862cdabf978481fcd7c4a
Issue-ID: MUSIC-296,MUSIC-272
Signed-off-by: Nelson,Thomas(tn1381)(arthurdent3) <tn1381@att.com>
Diffstat (limited to 'musictrigger')
-rw-r--r-- | musictrigger/assembly.xml | 22 | ||||
-rw-r--r-- | musictrigger/pom.xml | 100 | ||||
-rw-r--r-- | musictrigger/src/JSONObject.java | 38 | ||||
-rwxr-xr-x | musictrigger/src/MusicTrigger.java | 210 |
4 files changed, 0 insertions, 370 deletions
diff --git a/musictrigger/assembly.xml b/musictrigger/assembly.xml deleted file mode 100644 index 34451eef..00000000 --- a/musictrigger/assembly.xml +++ /dev/null @@ -1,22 +0,0 @@ -<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>
\ No newline at end of file diff --git a/musictrigger/pom.xml b/musictrigger/pom.xml deleted file mode 100644 index f1d700a9..00000000 --- a/musictrigger/pom.xml +++ /dev/null @@ -1,100 +0,0 @@ -<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>musictrigger</artifactId> - <packaging>jar</packaging> - <version>0.1.0</version> - <parent> - <groupId>org.onap.oparent</groupId> - <artifactId>oparent</artifactId> - <version>1.2.0</version> - <relativePath/> - </parent> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <!--nexus --> - <nexusproxy>https://nexus.onap.org</nexusproxy> - <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath> - <releaseNexusPath>/content/repositories/releases/</releaseNexusPath> - <stagingNexusPath>/content/repositories/staging/</stagingNexusPath> - <sitePath>/content/sites/site/org/onap/music/${project.version}</sitePath> - <!--maven --> - <timestamp>${maven.build.timestamp}</timestamp> - <maven.build.timestamp.format>yyyy.MM.dd.HH.mm</maven.build.timestamp.format> - <!--docker --> - <docker.tag>${project.version}-${timestamp}</docker.tag> - <docker.latest.tag>${project.version}-latest</docker.latest.tag> - </properties> - <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> - <distributionManagement> - <repository> - <id>ecomp-releases</id> - <name>Release Repository</name> - <url>${nexusproxy}/${releaseNexusPath}</url> - </repository> - <snapshotRepository> - <id>ecomp-snapshots</id> - <name>Snapshot Repository</name> - <url>${nexusproxy}/${snapshotNexusPath}</url> - </snapshotRepository> - <!-- added for javadoc --> - <site> - <id>ecomp-site</id> - <url>dav:${nexusproxy}${sitePath}</url> - </site> - </distributionManagement> -</project> diff --git a/musictrigger/src/JSONObject.java b/musictrigger/src/JSONObject.java deleted file mode 100644 index 38dfcbdc..00000000 --- a/musictrigger/src/JSONObject.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * ============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 deleted file mode 100755 index eb79cb8c..00000000 --- a/musictrigger/src/MusicTrigger.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * ============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.HashMap; -import java.util.Iterator; -import java.util.List; -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Map; - -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.Row; -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) - { - new Thread(new Runnable() { - public void run() { - makeAsyncCall(partition); - } - }).start(); - return Collections.emptyList(); - } - - private void makeAsyncCall(Partition partition) { - boolean isDelete = false; - if(partition.partitionLevelDeletion().isLive()) { - - } else { - // Partition Level Deletion - isDelete = true; - } - logger.info("MusicTrigger isDelete: " + isDelete); - String ksName = partition.metadata().ksName; - String tableName = partition.metadata().cfName; - String pkValue = partition.metadata().getKeyValidator().getString(partition.partitionKey().getKey()); - logger.info("MusicTrigger Table: " + tableName); - boolean isInsert = checkQueryType(partition); - org.json.simple.JSONObject obj = new org.json.simple.JSONObject(); - - String operation = null; - if(isDelete) - operation = "delete"; - else if(isInsert) - operation = "insert"; - else - operation = "update"; - Map<String, Object> changeMap = new HashMap<>(); - - obj.put("operation", operation); - obj.put("keyspace", ksName); - obj.put("table_name", tableName); - obj.put("full_table", ksName+"."+tableName); - obj.put("primary_key", partition.metadata().getKeyValidator().getString(partition.partitionKey().getKey())); - List<String> updateList = new ArrayList<>(); - //obj.put("message_id", partition.metadata().getKeyValidator().getString(partition.partitionKey().getKey())); - if("update".equals(operation)) { - 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 = null; - if(cell.column().type.toString().equals("org.apache.cassandra.db.marshal.UTF8Type")) { - logger.info(">> type is String"); - data = new String(cell.value().array()); // If cell type is text - } else if(cell.column().type.toString().equals("org.apache.cassandra.db.marshal.Int32Type")) { - //ByteBuffer wrapped = ByteBuffer.wrap(cell.value()); // big-endian by default - int num = fromByteArray(cell.value().array()); - logger.info(">> type is Integer1 :: "+num); - data = String.valueOf(num); - } - - logger.info("Inside triggers loop: "+columnDef.name+" : "+data); - //changeMap.put(ksName+"."+tableName+"."+columnDef.name,data); - updateList.add(ksName+"."+tableName+":"+columnDef.name+":"+data); - changeMap.put("field_value",ksName+"."+tableName+":"+columnDef.name+":"+data); - - } - } - } catch (Exception e) { - logger.info("Exception while constructing.. "+e.getMessage()); - } - obj.put("updateList", updateList); - } else { - changeMap.put("field_value", ksName+"."+tableName); - } - - obj.put("changeValue", changeMap); - logger.info("Sending response: "+obj.toString()); - try { - notifyMusic(obj.toString()); - logger.info("MUSIC was notified.. "+obj.toString()); - } catch(Exception e) { - logger.error("Notification failed..."+e.getMessage()); - logger.info("Notification failed..."+e.getMessage()); - } - - } - - private int fromByteArray(byte[] bytes) { - return bytes[0] << 24 | (bytes[1] & 0xFF) << 16 | (bytes[2] & 0xFF) << 8 | (bytes[3] & 0xFF); - } - - private boolean checkQueryType(Partition partition) { - UnfilteredRowIterator it = partition.unfilteredIterator(); - while (it.hasNext()) { - Unfiltered unfiltered = it.next(); - Row row = (Row) unfiltered; - if (isInsert(row)) { - return true; - } - } - return false; - } - - private boolean isInsert(Row row) { - return row.primaryKeyLivenessInfo().timestamp() != Long.MIN_VALUE; - } - - private void notifyMusic(String request) { - logger.info("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 = null; - try { - response = webResource.accept("application/json").type("application/json") - .post(ClientResponse.class, data); - } catch (Exception e) { - logger.info("Exception while notifying MUSIC. Retrying.."); - try { - response = webResource.accept("application/json").type("application/json") - .post(ClientResponse.class, data); - } catch (Exception e1) { - logger.info("Exception while notifying MUSIC. Stopping retry attempts.."); - } - } - - if(response.getStatus() != 200){ - logger.info("Exception while notifying MUSIC..."); - try { - response = webResource.accept("application/json").type("application/json") - .post(ClientResponse.class, data); - } catch (Exception e) { - logger.info("Exception while notifying MUSIC. Retrying.."); - try { - response = webResource.accept("application/json").type("application/json") - .post(ClientResponse.class, data); - } catch (Exception e1) { - logger.info("Exception while notifying MUSIC. Stopping retry attempts.."); - } - } - } - } - -}
\ No newline at end of file |