Skip to content
This repository has been archived by the owner on Jun 7, 2024. It is now read-only.

Commit

Permalink
Initial integration of Qakka into Usergrid Queue module, and implemen…
Browse files Browse the repository at this point in the history
…tation of Qakka-based LegacyQueueManager implementation.
  • Loading branch information
snoopdave committed Sep 13, 2016
1 parent 9016fd2 commit 3075dce
Show file tree
Hide file tree
Showing 126 changed files with 12,116 additions and 101 deletions.
2 changes: 1 addition & 1 deletion stack/core/pom.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
</plugins> </plugins>
</reporting> </reporting>



<build> <build>


<resources> <resources>
Expand Down Expand Up @@ -429,6 +428,7 @@
<groupId>org.apache.usergrid</groupId> <groupId>org.apache.usergrid</groupId>
<artifactId>queue</artifactId> <artifactId>queue</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<classifier>classes</classifier>
<type>jar</type> <type>jar</type>
</dependency> </dependency>


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,21 +16,27 @@
*/ */
package org.apache.usergrid.persistence.entities; package org.apache.usergrid.persistence.entities;


import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.apache.usergrid.persistence.TypedEntity; import org.apache.usergrid.persistence.TypedEntity;
import org.apache.usergrid.persistence.annotations.EntityProperty;


import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import org.apache.usergrid.persistence.annotations.EntityProperty;
import org.mortbay.util.ajax.JSON;


@XmlRootElement @XmlRootElement
public class Receipt extends TypedEntity { public class Receipt extends TypedEntity {


public static final String ENTITY_TYPE = "receipt"; public static final String ENTITY_TYPE = "receipt";
public static final String NOTIFICATION_CONNECTION = "notification"; public static final String NOTIFICATION_CONNECTION = "notification";


private static ObjectMapper objectMapper = new ObjectMapper();
static private final TypeReference<HashMap> hashMapTypeRef = new TypeReference<HashMap>() {};



/** device id **/ /** device id **/
@EntityProperty @EntityProperty
protected UUID deviceId; protected UUID deviceId;
Expand Down Expand Up @@ -65,27 +71,28 @@ public class Receipt extends TypedEntity {
public Receipt() { public Receipt() {
} }


public Receipt(UUID notificationUUID, String notifierId, Object payload,UUID deviceId) { public Receipt(UUID notificationUUID, String notifierId, Object payload, UUID deviceId) {
this.notificationUUID = notificationUUID; this.notificationUUID = notificationUUID;
this.notifierId = notifierId; this.notifierId = notifierId;
HashMap receiptPayload; HashMap receiptPayload;
if(! (payload instanceof HashMap) ){
if(payload instanceof String){ if (!(payload instanceof HashMap)) {
if (payload instanceof String) {
try { try {
receiptPayload = (HashMap) JSON.parse((String) payload); receiptPayload = (HashMap) objectMapper.readValue( (String)payload, hashMapTypeRef );
}catch (Exception e){ } catch (Exception e) {
receiptPayload = new HashMap<>(); receiptPayload = new HashMap<>();
receiptPayload.put("payload", payload); receiptPayload.put( "payload", payload );
} }
}else { } else {
receiptPayload = new HashMap<>(); receiptPayload = new HashMap<>();
receiptPayload.put("payload", payload); receiptPayload.put( "payload", payload );
} }
}else{ } else {
receiptPayload = (HashMap)payload; receiptPayload = (HashMap) payload;
} }
this.payload = receiptPayload; this.payload = receiptPayload;
this.setDeviceId(deviceId); this.setDeviceId( deviceId );
} }


@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -20,18 +20,8 @@
package org.apache.usergrid.corepersistence.index; package org.apache.usergrid.corepersistence.index;




import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.apache.avro.generic.GenericData;
import org.apache.usergrid.ExperimentalTest; import org.apache.usergrid.ExperimentalTest;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;

import org.junit.experimental.categories.Category; import org.junit.experimental.categories.Category;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
Expand All @@ -40,6 +30,13 @@
import rx.observables.ConnectableObservable; import rx.observables.ConnectableObservable;
import rx.schedulers.Schedulers; import rx.schedulers.Schedulers;


import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;

import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


Expand All @@ -61,8 +58,10 @@ public void testPublish() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch( count+1 ); final CountDownLatch latch = new CountDownLatch( count+1 );


final Subscription connectedObservable = final Subscription connectedObservable =
Observable.range( 0, count ).doOnNext( integer -> latch.countDown() ).doOnCompleted( () -> latch.countDown() ).subscribeOn( Schedulers.io() ) Observable.range( 0, count )
.subscribe(); .doOnNext( integer -> latch.countDown() )
.doOnCompleted( () -> latch.countDown() ).subscribeOn( Schedulers.io() )
.subscribe();




final boolean completed = latch.await( 3, TimeUnit.SECONDS ); final boolean completed = latch.await( 3, TimeUnit.SECONDS );
Expand Down
1 change: 1 addition & 0 deletions stack/corepersistence/queryindex/pom.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
<groupId>${project.parent.groupId}</groupId> <groupId>${project.parent.groupId}</groupId>
<artifactId>queue</artifactId> <artifactId>queue</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<classifier>classes</classifier>
<type>jar</type> <type>jar</type>
</dependency> </dependency>


Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import com.google.inject.multibindings.Multibinder; import com.google.inject.multibindings.Multibinder;
import org.apache.usergrid.persistence.core.migration.data.DataMigration; import org.apache.usergrid.persistence.core.migration.data.DataMigration;
import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin; import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
import org.apache.usergrid.persistence.core.scope.ApplicationScope;
import org.apache.usergrid.persistence.index.*; import org.apache.usergrid.persistence.index.*;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;


Expand Down
156 changes: 156 additions & 0 deletions stack/corepersistence/queue/pom.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<parent> <parent>
<artifactId>persistence</artifactId> <artifactId>persistence</artifactId>
<groupId>org.apache.usergrid</groupId> <groupId>org.apache.usergrid</groupId>
Expand All @@ -30,6 +31,48 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>queue</artifactId> <artifactId>queue</artifactId>
<name>Usergrid Queue</name> <name>Usergrid Queue</name>
<packaging>war</packaging>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<servlet.version>3.0.1</servlet.version>
<jersey.version>2.23.1</jersey.version>
<guice-bridge.version>2.4.0</guice-bridge.version>
</properties>


<build>

<finalName>queue-${project.version}</finalName>

<pluginManagement>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<archiveClasses>true</archiveClasses>
<attachClasses>true</attachClasses>
</configuration>
</plugin>

</plugins>
</pluginManagement>

<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/**</include>
</includes>
</testResource>
</testResources>

</build>


<dependencies> <dependencies>


Expand Down Expand Up @@ -90,6 +133,119 @@
<version>4.2</version> <version>4.2</version>
</dependency> </dependency>


<dependency>
<groupId>org.apache.usergrid</groupId>
<artifactId>actorsystem</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.usergrid</groupId>
<artifactId>common</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<artifactId>cassandra-all</artifactId>
<groupId>org.apache.cassandra</groupId>
</exclusion>
</exclusions>
</dependency>

<!--
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.9</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<version>3.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
-->

<!-- Java EE & Jersey -->

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey.version}</version>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey.version}</version>
</dependency>

<!-- added for Guice Jersey integration -->
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>guice-bridge</artifactId>
<version>${guice-bridge.version}</version>
</dependency>

<!-- added for Guice Jersey integration -->
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-servlet</artifactId>
<version>${guice.version}</version>
</dependency>

<!-- added to enable logging from within Jersey -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.7.5</version>
</dependency>

<!-- Testing -->

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-jetty</artifactId>
<version>${jersey.version}</version>
</dependency>

</dependencies> </dependencies>


<!-- <!--
Expand Down
Loading

0 comments on commit 3075dce

Please sign in to comment.