You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2015/07/14 02:25:15 UTC

[4/9] incubator-usergrid git commit: adding async events

adding async events


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/09873cec
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/09873cec
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/09873cec

Branch: refs/heads/two-dot-o-dev
Commit: 09873cec76ac5f11cef8e5cf39c870e823693619
Parents: a63c817
Author: Shawn Feldman <sf...@apache.org>
Authored: Mon Jul 13 14:58:01 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Mon Jul 13 14:58:01 2015 -0600

----------------------------------------------------------------------
 .../asyncevents/AmazonAsyncEventService.java    |  11 +-
 .../asyncevents/AsyncEventService.java          |   1 +
 .../asyncevents/model/AsyncEvent.java           |  15 ++-
 .../model/InitializeApplicationIndexEvent.java  |   5 +-
 .../index/ReplicatedIndexLocationStrategy.java  | 103 +++++++++++++++++++
 5 files changed, 124 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09873cec/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AmazonAsyncEventService.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AmazonAsyncEventService.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AmazonAsyncEventService.java
index 50000df..1390058 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AmazonAsyncEventService.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AmazonAsyncEventService.java
@@ -29,7 +29,7 @@ import com.codahale.metrics.Histogram;
 import com.google.common.base.Preconditions;
 import org.apache.usergrid.corepersistence.CpEntityManager;
 import org.apache.usergrid.corepersistence.asyncevents.model.*;
-import org.apache.usergrid.corepersistence.index.IndexLocationStrategyFactory;
+import org.apache.usergrid.corepersistence.index.*;
 import org.apache.usergrid.corepersistence.rx.impl.EdgeScope;
 import org.apache.usergrid.persistence.index.EntityIndex;
 import org.apache.usergrid.persistence.index.EntityIndexFactory;
@@ -38,9 +38,6 @@ import org.apache.usergrid.utils.UUIDUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.usergrid.corepersistence.index.EntityIndexOperation;
-import org.apache.usergrid.corepersistence.index.IndexProcessorFig;
-import org.apache.usergrid.corepersistence.index.IndexService;
 import org.apache.usergrid.persistence.collection.EntityCollectionManager;
 import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
 import org.apache.usergrid.persistence.collection.serialization.impl.migration.EntityIdScope;
@@ -255,7 +252,8 @@ public class AmazonAsyncEventService implements AsyncEventService {
 
     @Override
     public void queueInitializeApplicationIndex( final ApplicationScope applicationScope) {
-        offer(new InitializeApplicationIndexEvent(applicationScope));
+        IndexLocationStrategy indexLocationStrategy = indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope);
+        offer(new InitializeApplicationIndexEvent(new ReplicatedIndexLocationStrategy(indexLocationStrategy)));
     }
 
 
@@ -379,8 +377,7 @@ public class AmazonAsyncEventService implements AsyncEventService {
         Preconditions.checkNotNull(message, "QueueMessage Body cannot be null for handleInitializeApplicationIndex");
         Preconditions.checkArgument(event.getEventType() == AsyncEvent.EventType.APPLICATION_INDEX, String.format("Event Type for handleInitializeApplicationIndex must be APPLICATION_INDEX, got %s", event.getEventType()));
 
-        final ApplicationScope applicationScope = event.getApplicationScope();
-        final IndexLocationStrategy indexLocationStrategy = indexLocationStrategyFactory.getIndexLocationStrategy(applicationScope);
+        final IndexLocationStrategy indexLocationStrategy = event.getIndexLocationStrategy();
         final EntityIndex index = entityIndexFactory.createEntityIndex(indexLocationStrategy);
         index.initialize();
         ack(message);

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09873cec/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventService.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventService.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventService.java
index a36a9ae..1a5e865 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventService.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/AsyncEventService.java
@@ -22,6 +22,7 @@ package org.apache.usergrid.corepersistence.asyncevents;
 
 import org.apache.usergrid.corepersistence.index.ReIndexAction;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.entities.Application;
 import org.apache.usergrid.persistence.graph.Edge;
 import org.apache.usergrid.persistence.index.IndexLocationStrategy;
 import org.apache.usergrid.persistence.model.entity.Entity;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09873cec/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/AsyncEvent.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/AsyncEvent.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/AsyncEvent.java
index 9278e0f..3fabc1c 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/AsyncEvent.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/AsyncEvent.java
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import org.apache.usergrid.persistence.collection.serialization.impl.migration.EntityIdScope;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
 import org.apache.usergrid.persistence.graph.Edge;
+import org.apache.usergrid.persistence.index.IndexLocationStrategy;
 import org.apache.usergrid.persistence.model.entity.Id;
 
 import java.io.Serializable;
@@ -37,6 +38,9 @@ import java.io.Serializable;
 public class AsyncEvent implements Serializable {
 
     @JsonProperty
+    protected IndexLocationStrategy indexLocationStrategy;
+
+    @JsonProperty
     protected EventType eventType;
 
     @JsonProperty
@@ -75,9 +79,9 @@ public class AsyncEvent implements Serializable {
         this.creationTime = System.currentTimeMillis();
     }
 
-    public AsyncEvent(EventType eventType, ApplicationScope applicationScope) {
+    public AsyncEvent(EventType eventType, IndexLocationStrategy indexLocationStrategy) {
         this.eventType = eventType;
-        this.applicationScope = applicationScope;
+        this.indexLocationStrategy = indexLocationStrategy;
         this.creationTime = System.currentTimeMillis();
     }
 
@@ -132,6 +136,13 @@ public class AsyncEvent implements Serializable {
         this.applicationScope = applicationScope;
     }
 
+    @JsonSerialize
+    public IndexLocationStrategy getIndexLocationStrategy() { return indexLocationStrategy; }
+
+    public void setIndexLocationStrategy( IndexLocationStrategy indexLocationStrategy ){
+        this.indexLocationStrategy = indexLocationStrategy;
+    }
+
     @JsonSerialize()
     public Edge getEdge() {
         return edge;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09873cec/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/InitializeApplicationIndexEvent.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/InitializeApplicationIndexEvent.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/InitializeApplicationIndexEvent.java
index 656d820..8b20651 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/InitializeApplicationIndexEvent.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/asyncevents/model/InitializeApplicationIndexEvent.java
@@ -21,6 +21,7 @@ package org.apache.usergrid.corepersistence.asyncevents.model;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.index.IndexLocationStrategy;
 
 /**
  * event to init app index
@@ -30,8 +31,8 @@ public class InitializeApplicationIndexEvent extends AsyncEvent {
     public InitializeApplicationIndexEvent() {
         super(EventType.APPLICATION_INDEX);
     }
-    public InitializeApplicationIndexEvent(final ApplicationScope applicationScope) {
-        super(EventType.APPLICATION_INDEX, applicationScope);
+    public InitializeApplicationIndexEvent(final IndexLocationStrategy indexLocationStrategy) {
+        super(EventType.APPLICATION_INDEX, indexLocationStrategy);
 
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/09873cec/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReplicatedIndexLocationStrategy.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReplicatedIndexLocationStrategy.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReplicatedIndexLocationStrategy.java
new file mode 100644
index 0000000..b404a78
--- /dev/null
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/index/ReplicatedIndexLocationStrategy.java
@@ -0,0 +1,103 @@
+/*
+ *
+ *  * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  *  contributor license agreements.  The ASF licenses this file to You
+ *  * 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.  For additional information regarding
+ *  * copyright in this work, please see the NOTICE file in the top level
+ *  * directory of this distribution.
+ *
+ */
+package org.apache.usergrid.corepersistence.index;
+
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.index.IndexAlias;
+import org.apache.usergrid.persistence.index.IndexLocationStrategy;
+
+/**
+ * Classy class class.
+ */
+public class ReplicatedIndexLocationStrategy implements IndexLocationStrategy {
+
+    private ReplicatedIndexAlias alias;
+    private String rootName;
+    private String indexInitialName;
+    private ApplicationScope applicationScope;
+    private int numberShards;
+    private int numberReplicas;
+
+    public ReplicatedIndexLocationStrategy(){
+
+    }
+
+    public ReplicatedIndexLocationStrategy(IndexLocationStrategy indexLocationStrategy){
+        alias = new ReplicatedIndexAlias( indexLocationStrategy.getAlias() );
+        rootName = indexLocationStrategy.getIndexRootName();
+        indexInitialName = indexLocationStrategy.getIndexInitialName();
+        applicationScope = indexLocationStrategy.getApplicationScope();
+        numberShards = indexLocationStrategy.getNumberOfShards();
+        numberReplicas = indexLocationStrategy.getNumberOfReplicas();
+    }
+
+    @Override
+    public IndexAlias getAlias() {
+        return alias;
+    }
+
+    @Override
+    public String getIndexRootName() {
+        return rootName;
+    }
+
+    @Override
+    public String getIndexInitialName() {
+        return indexInitialName;
+    }
+
+    @Override
+    public ApplicationScope getApplicationScope() {
+        return applicationScope;
+    }
+
+    @Override
+    public int getNumberOfShards() {
+        return numberShards;
+    }
+
+    @Override
+    public int getNumberOfReplicas() {
+        return numberReplicas;
+    }
+
+    public static class ReplicatedIndexAlias implements IndexAlias{
+
+        private String readAlias;
+        private String writeAlias;
+
+        public ReplicatedIndexAlias(){
+
+        }
+        public ReplicatedIndexAlias(IndexAlias alias){
+            this.readAlias = alias.getReadAlias();
+            this.writeAlias = alias.getWriteAlias();
+        }
+        @Override
+        public String getReadAlias() {
+            return readAlias;
+        }
+
+        @Override
+        public String getWriteAlias() {
+            return writeAlias;
+        }
+    }
+}