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/02 00:52:30 UTC

[1/8] incubator-usergrid git commit: isolating app info from old app infos, so we can do in place migration

Repository: incubator-usergrid
Updated Branches:
  refs/heads/two-dot-o-dev 6b829cae6 -> 03d05348d


isolating app info from old app infos, so we can do in place migration


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

Branch: refs/heads/two-dot-o-dev
Commit: d1c19434cf821c67b8fef7d0d205e78574f8e6ac
Parents: 6b829ca
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Jun 30 18:19:33 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Jun 30 18:19:33 2015 -0600

----------------------------------------------------------------------
 .../usergrid/corepersistence/CoreModule.java    |   2 -
 .../corepersistence/CpEntityManagerFactory.java |   9 +-
 .../migration/AppInfoMigrationPlugin.java       | 297 ------------------
 .../corepersistence/util/CpNamingUtils.java     |   8 +-
 .../persistence/EntityManagerFactory.java       |   2 +-
 .../apache/usergrid/persistence/CounterIT.java  |   2 -
 .../management/AppInfoMigrationPlugin.java      | 306 +++++++++++++++++++
 .../usergrid/management/ManagementService.java  |   2 +-
 .../cassandra/ManagementServiceImpl.java        |  16 +-
 .../usergrid/services/guice/ServiceModule.java  |   5 +
 .../org/apache/usergrid/ServiceITSetup.java     |   3 +-
 .../org/apache/usergrid/ServiceITSetupImpl.java |   7 +-
 .../migration/AppInfoMigrationPluginTest.java   |  42 +--
 13 files changed, 348 insertions(+), 353 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
index f419d5a..dd0e1ab 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CoreModule.java
@@ -23,7 +23,6 @@ import org.apache.usergrid.corepersistence.asyncevents.AsyncEventService;
 import org.apache.usergrid.corepersistence.asyncevents.AsyncIndexProvider;
 import org.apache.usergrid.corepersistence.asyncevents.EventBuilder;
 import org.apache.usergrid.corepersistence.asyncevents.EventBuilderImpl;
-import org.apache.usergrid.corepersistence.migration.AppInfoMigrationPlugin;
 import org.apache.usergrid.corepersistence.migration.CoreMigration;
 import org.apache.usergrid.corepersistence.migration.CoreMigrationPlugin;
 import org.apache.usergrid.corepersistence.migration.EntityTypeMappingMigration;
@@ -119,7 +118,6 @@ public class CoreModule  extends AbstractModule {
         //wire up the collection migration plugin
         final Multibinder<MigrationPlugin> plugins = Multibinder.newSetBinder( binder(), MigrationPlugin.class );
         plugins.addBinding().to( CoreMigrationPlugin.class );
-        plugins.addBinding().to( AppInfoMigrationPlugin.class );
         plugins.addBinding().to( MigrationModuleVersionPlugin.class );
 
         bind( AllApplicationsObservable.class ).to( AllApplicationsObservableImpl.class );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index e3c17f0..a962def 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -200,13 +200,13 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
 
     @Override
     public Entity createApplicationV2(String organizationName, String name) throws Exception {
-        return createApplicationV2(organizationName, name, null);
+        return createApplicationV2(organizationName, name, null, null);
     }
 
 
     @Override
     public Entity createApplicationV2(
-        String orgName, String name, Map<String, Object> properties) throws Exception {
+        String orgName, String name, UUID applicationId, Map<String, Object> properties) throws Exception {
 
         String appName = buildAppName( orgName, name );
 
@@ -217,7 +217,7 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
             throw new ApplicationAlreadyExistsException( name );
         }
 
-        UUID applicationId = UUIDGenerator.newTimeUUID();
+        applicationId = applicationId==null ?  UUIDGenerator.newTimeUUID() : applicationId;
 
         logger.debug( "New application orgName {} orgAppName {} id {} ",
             new Object[] { orgName, name, applicationId.toString() } );
@@ -267,7 +267,6 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
 
         Map<String, Object> appInfoMap = new HashMap<String, Object>() {{
             put( PROPERTY_NAME, appName );
-            put( PROPERTY_APPLICATION_ID, applicationId );
         }};
 
         Entity appInfo;
@@ -493,7 +492,7 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
                             final org.apache.usergrid.persistence.model.entity.Entity entityData =
                                 entity.getEntity().get();
 
-                            final UUID applicationId = ( UUID ) entityData.getField( PROPERTY_APPLICATION_ID ).getValue();
+                            final UUID applicationId = entity.getId().getUuid();
                             final String applicationName = ( String ) entityData.getField( PROPERTY_NAME ).getValue();
 
                             appMap.put( applicationName , applicationId );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java
deleted file mode 100644
index 21383aa..0000000
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPlugin.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  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.
- */
-package org.apache.usergrid.corepersistence.migration;
-
-import com.google.common.base.Optional;
-import com.google.inject.Inject;
-import org.apache.usergrid.corepersistence.util.CpEntityMapUtils;
-import org.apache.usergrid.corepersistence.util.CpNamingUtils;
-import org.apache.usergrid.persistence.*;
-import org.apache.usergrid.persistence.Entity;
-import org.apache.usergrid.persistence.collection.EntityCollectionManager;
-import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
-import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
-import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
-import org.apache.usergrid.persistence.core.migration.data.PluginPhase;
-import org.apache.usergrid.persistence.core.migration.data.ProgressObserver;
-import org.apache.usergrid.persistence.core.scope.ApplicationScope;
-import org.apache.usergrid.persistence.entities.Group;
-import org.apache.usergrid.persistence.graph.Edge;
-import org.apache.usergrid.persistence.graph.GraphManager;
-import org.apache.usergrid.persistence.graph.GraphManagerFactory;
-import org.apache.usergrid.persistence.graph.SearchByEdgeType;
-import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdge;
-import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
-import org.apache.usergrid.persistence.model.entity.*;
-import org.apache.usergrid.utils.UUIDUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import rx.Observable;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-
-import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getApplicationScope;
-import static org.apache.usergrid.persistence.Schema.*;
-
-
-/**
- * Migration of appinfos collection to application_info collection.
- *
- * Part of USERGRID-448 "Remove redundant appinfos collections in ManagementServiceImpl"
- * https://issues.apache.org/jira/browse/USERGRID-448
- */
-public class AppInfoMigrationPlugin implements MigrationPlugin {
-
-    /** Old and deprecated SYSTEM_APP */
-    public static final UUID SYSTEM_APP_ID = UUID.fromString( "b6768a08-b5d5-11e3-a495-10ddb1de66c3" );
-
-    private static final Logger logger = LoggerFactory.getLogger(AppInfoMigrationPlugin.class);
-
-    public static String PLUGIN_NAME = "appinfo-migration";
-
-    @Inject
-    final private MigrationInfoSerialization migrationInfoSerialization;
-
-    @Inject
-    final private EntityManagerFactory emf;
-
-    @Inject
-    final private EntityCollectionManagerFactory entityCollectionManagerFactory;
-
-    @Inject
-    final private GraphManagerFactory graphManagerFactory;
-
-
-    @Inject
-    public AppInfoMigrationPlugin(
-        EntityManagerFactory emf,
-        MigrationInfoSerialization migrationInfoSerialization,
-        EntityCollectionManagerFactory entityCollectionManagerFactory,
-        GraphManagerFactory graphManagerFactory ) {
-
-        this.emf = emf;
-        this.migrationInfoSerialization = migrationInfoSerialization;
-        this.entityCollectionManagerFactory = entityCollectionManagerFactory;
-        this.graphManagerFactory = graphManagerFactory;
-    }
-
-
-    @Override
-    public String getName() {
-        return PLUGIN_NAME;
-    }
-
-
-    @Override
-    public int getMaxVersion() {
-        return 2; // standalone plugin, happens once
-    }
-
-
-    @Override
-    public PluginPhase getPhase() {
-        return PluginPhase.MIGRATE;
-    }
-
-
-    @Override
-    public void run(ProgressObserver observer) {
-
-        final int version = migrationInfoSerialization.getVersion(getName());
-
-        if (version == getMaxVersion()) {
-            logger.debug("Skipping Migration Plugin: " + getName());
-            return;
-        }
-
-        observer.start();
-        AtomicInteger count = new AtomicInteger();
-        //get old app infos to migrate
-        final Observable<org.apache.usergrid.persistence.model.entity.Entity> oldAppInfos = getOldAppInfos();
-        oldAppInfos
-            .doOnNext(oldAppInfoEntity -> {
-                try {
-                    migrateAppInfo( oldAppInfoEntity, observer);
-                    count.incrementAndGet();
-                }catch (Exception e){
-                    logger.error("Failed to migrate app info"+oldAppInfoEntity.getId().getUuid(),e);
-                    throw new RuntimeException(e);
-                }
-
-            })
-            .doOnCompleted(() -> {
-                if(count.get()>0) {
-                    migrationInfoSerialization.setVersion(getName(), getMaxVersion());
-                }else{
-                    logger.error("Failed to migrate any app infos");
-                }
-                observer.complete();
-            }).toBlocking().lastOrDefault(null);
-
-    }
-
-
-    private void migrateAppInfo( org.apache.usergrid.persistence.model.entity.Entity oldAppInfoEntity, ProgressObserver observer) {
-        // Get appinfos from the Graph, we don't expect many so use iterator
-        final EntityManager managementEm = emf.getManagementEntityManager();
-
-        Map oldAppInfoMap = CpEntityMapUtils.toMap(oldAppInfoEntity);
-
-        final String name = (String) oldAppInfoMap.get(PROPERTY_NAME);
-
-        try {
-            final String orgName = name.split("/")[0];
-            final String appName = name.split("/")[1];
-            UUID applicationId = getUuid(oldAppInfoMap,"applicationUuid") ;
-            applicationId = applicationId == null ?  getUuid(oldAppInfoMap,"appUuid") : applicationId ;
-            //get app info from graph to see if it has been migrated already
-            Entity appInfo = getApplicationInfo(applicationId);
-            if (appInfo == null) {
-                // create and connect new APPLICATION_INFO oldAppInfo to Organization
-                appInfo = createNewAppInfo(managementEm, name, applicationId);
-                observer.update(getMaxVersion(), "Created application_info for " + appName);
-                // create org->app connections, but not for apps in dummy "usergrid" internal organization
-                if (!orgName.equals("usergrid")) {
-                    EntityRef orgRef = managementEm.getAlias(Group.ENTITY_TYPE, orgName);
-                    managementEm.createConnection(orgRef, "owns", appInfo);
-                }
-            } else {
-                //already migrated don't do anything
-                observer.update(getMaxVersion(), "Received existing application_info for " + appName + " don't do anything");
-            }
-
-        } catch (Exception e) {
-            String msg = "Exception writing application_info for " + name;
-            logger.error(msg, e);
-            observer.failed(getMaxVersion(), msg);
-            throw new RuntimeException(e);
-        }
-
-    }
-
-    private UUID getUuid(Map oldAppInfoMap, String key) {
-        UUID applicationId;
-        Object uuidObject = oldAppInfoMap.get(key);
-        if (uuidObject instanceof UUID) {
-            applicationId = (UUID) uuidObject;
-        } else {
-            applicationId = uuidObject == null ? null : UUIDUtils.tryExtractUUID(uuidObject.toString());
-        }
-        return applicationId;
-    }
-
-    private Entity createNewAppInfo(EntityManager managementEm, final String name, final UUID applicationId) throws Exception {
-        Entity appInfo;Map<String, Object> appInfoMap = new HashMap<String, Object>() {{
-            put(PROPERTY_NAME, name);
-            put(PROPERTY_APPLICATION_ID, applicationId);
-        }};
-        appInfo = managementEm.create(new SimpleId(applicationId, CpNamingUtils.APPLICATION_INFO), appInfoMap);
-        return appInfo;
-    }
-
-    /**
-     * TODO: Use Graph to get application_info for an specified Application.
-     */
-    private Entity getApplicationInfo( final UUID appId ) throws Exception {
-
-        final ApplicationScope managementAppScope = getApplicationScope(CpNamingUtils.MANAGEMENT_APPLICATION_ID);
-        final EntityCollectionManager managementCollectionManager = entityCollectionManagerFactory.createCollectionManager(managementAppScope);
-
-        Observable<Edge> edgesObservable = getApplicationInfoEdges(appId);
-        //get the graph for all app infos
-        Observable<org.apache.usergrid.persistence.model.entity.Entity> entityObs =
-                edgesObservable.flatMap(edge -> {
-                    final Id appInfoId = edge.getTargetNode();
-                    return managementCollectionManager
-                        .load(appInfoId)
-                        .filter( entity ->{
-                            //check for app id
-                            return  entity != null ? entity.getId().getUuid().equals(appId) : false;
-                        });
-                });
-
-        // don't expect many applications, so we block
-        org.apache.usergrid.persistence.model.entity.Entity applicationInfo =
-            entityObs.toBlocking().lastOrDefault(null);
-
-        if ( applicationInfo == null ) {
-            return null;
-        }
-
-        Class clazz = Schema.getDefaultSchema().getEntityClass(applicationInfo.getId().getType());
-
-        Entity entity = EntityFactory.newEntity(
-            applicationInfo.getId().getUuid(), applicationInfo.getId().getType(), clazz );
-
-        entity.setProperties( CpEntityMapUtils.toMap( applicationInfo ) );
-
-        return entity;
-
-    }
-
-
-    /**
-     * Use Graph to get old appinfos from the old and deprecated System App.
-     */
-    public Observable<org.apache.usergrid.persistence.model.entity.Entity> getOldAppInfos( ) {
-
-        final ApplicationScope systemAppScope = getApplicationScope(SYSTEM_APP_ID);
-
-        final EntityCollectionManager systemCollectionManager =
-            entityCollectionManagerFactory.createCollectionManager(systemAppScope);
-
-        final GraphManager gm = graphManagerFactory.createEdgeManager(systemAppScope);
-
-        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName("appinfos");
-
-        Id rootAppId = systemAppScope.getApplication();
-
-        final SimpleSearchByEdgeType simpleSearchByEdgeType =  new SimpleSearchByEdgeType(
-            rootAppId, edgeType, Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent());
-
-        Observable<org.apache.usergrid.persistence.model.entity.Entity> entityObs =
-            gm.loadEdgesFromSource( simpleSearchByEdgeType )
-            .flatMap(edge -> {
-                final Id appInfoId = edge.getTargetNode();
-
-                return systemCollectionManager.load(appInfoId)
-                    .filter(entity -> (entity != null));
-            });
-
-        return entityObs;
-    }
-
-    public Observable<Edge> getApplicationInfoEdges(final UUID applicationId) {
-        final ApplicationScope managementAppScope = getApplicationScope(CpNamingUtils.MANAGEMENT_APPLICATION_ID);
-        final GraphManager gm = graphManagerFactory.createEdgeManager(managementAppScope);
-
-        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName(CpNamingUtils.APPLICATION_INFOS);
-
-
-        final SimpleSearchByEdge simpleSearchByEdgeType =  new SimpleSearchByEdge(
-            CpNamingUtils.generateApplicationId(CpNamingUtils.MANAGEMENT_APPLICATION_ID), edgeType, CpNamingUtils.generateApplicationId( applicationId ), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING,
-            Optional.absent());
-
-        return gm.loadEdgeVersions(simpleSearchByEdgeType  );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
index c812180..e8867e1 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
@@ -72,11 +72,11 @@ public class CpNamingUtils {
     /**
      * Information about applications is stored in the management app using these types
      */
-    public static final String APPLICATION_INFO = "application_info";
-    public static final String APPLICATION_INFOS = "application_infos";
+    public static final String APPLICATION_INFO = "application_map";
+    public static final String APPLICATION_INFOS = "application_maps";
 
-    public static final String DELETED_APPLICATION_INFO = "deleted_application_info";
-    public static final String DELETED_APPLICATION_INFOS = "deleted_application_infos";
+    public static final String DELETED_APPLICATION_INFO = "deleted_application";
+    public static final String DELETED_APPLICATION_INFOS = "deleted_applications";
 
     /**
      * The name of the map that holds our entity id->type mapping

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManagerFactory.java
index b2dc7eb..be6ff1d 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/EntityManagerFactory.java
@@ -77,7 +77,7 @@ public interface EntityManagerFactory {
      * @throws Exception the exception
      */
     Entity createApplicationV2(
-        String organizationName, String name, Map<String, Object> properties ) throws Exception;
+        String organizationName, String name, UUID applicationId, Map<String, Object> properties ) throws Exception;
 
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
index 40da953..4e8b599 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
@@ -235,8 +235,6 @@ public class CounterIT extends AbstractCoreIT {
             applicationId, CpNamingUtils.APPLICATION_INFO, properties );
 
 //Creating connections like below doesn't work.
-//        em.createConnection( new SimpleEntityRef( "group", organizationEntity.getUuid() ), "owns",
-//                new SimpleEntityRef( "application_info", applicationId ) );
 
         em.createConnection( organizationEntity.toTypedEntity(), "owns", applicationEntity );
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
new file mode 100644
index 0000000..3ac72d2
--- /dev/null
+++ b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
@@ -0,0 +1,306 @@
+/*
+ *
+ *  * 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.management;
+
+
+import com.google.common.base.Optional;
+import com.google.inject.Inject;
+import org.apache.usergrid.corepersistence.util.CpEntityMapUtils;
+import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.persistence.*;
+import org.apache.usergrid.persistence.collection.EntityCollectionManager;
+import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
+import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
+import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
+import org.apache.usergrid.persistence.core.migration.data.PluginPhase;
+import org.apache.usergrid.persistence.core.migration.data.ProgressObserver;
+import org.apache.usergrid.persistence.core.scope.ApplicationScope;
+import org.apache.usergrid.persistence.entities.Group;
+import org.apache.usergrid.persistence.exceptions.ApplicationAlreadyExistsException;
+import org.apache.usergrid.persistence.graph.Edge;
+import org.apache.usergrid.persistence.graph.GraphManager;
+import org.apache.usergrid.persistence.graph.GraphManagerFactory;
+import org.apache.usergrid.persistence.graph.SearchByEdgeType;
+import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdge;
+import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
+import org.apache.usergrid.persistence.model.entity.Entity;
+import org.apache.usergrid.persistence.model.entity.Id;
+import org.apache.usergrid.persistence.model.entity.SimpleId;
+import org.apache.usergrid.utils.UUIDUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import rx.Observable;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getApplicationScope;
+import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
+import static org.apache.usergrid.persistence.Schema.PROPERTY_NAME;
+
+/**
+ * Migration of appinfos collection to application_info collection.
+ *
+ * Part of USERGRID-448 "Remove redundant appinfos collections in ManagementServiceImpl"
+ * https://issues.apache.org/jira/browse/USERGRID-448
+ */
+public class AppInfoMigrationPlugin implements MigrationPlugin {
+
+    /** Old and deprecated SYSTEM_APP */
+    public static final UUID SYSTEM_APP_ID = UUID.fromString( "b6768a08-b5d5-11e3-a495-10ddb1de66c3" );
+
+    private static final Logger logger = LoggerFactory.getLogger(AppInfoMigrationPlugin.class);
+
+    public static String PLUGIN_NAME = "appinfo-migration";
+
+    @Inject
+    final private MigrationInfoSerialization migrationInfoSerialization;
+
+    @Inject
+    final private EntityManagerFactory emf;
+
+    @Inject
+    final private EntityCollectionManagerFactory entityCollectionManagerFactory;
+
+    @Inject
+    final private GraphManagerFactory graphManagerFactory;
+    private final ManagementService managementService;
+
+
+    @Inject
+    public AppInfoMigrationPlugin(
+        EntityManagerFactory emf,
+        MigrationInfoSerialization migrationInfoSerialization,
+        EntityCollectionManagerFactory entityCollectionManagerFactory,
+        GraphManagerFactory graphManagerFactory,
+        ManagementService managementService) {
+
+        this.emf = emf;
+        this.migrationInfoSerialization = migrationInfoSerialization;
+        this.entityCollectionManagerFactory = entityCollectionManagerFactory;
+        this.graphManagerFactory = graphManagerFactory;
+        this.managementService = managementService;
+    }
+
+
+    @Override
+    public String getName() {
+        return PLUGIN_NAME;
+    }
+
+
+    @Override
+    public int getMaxVersion() {
+        return 2; // standalone plugin, happens once
+    }
+
+
+    @Override
+    public PluginPhase getPhase() {
+        return PluginPhase.MIGRATE;
+    }
+
+
+    @Override
+    public void run(ProgressObserver observer) {
+
+        final int version = migrationInfoSerialization.getVersion(getName());
+
+        if (version == getMaxVersion()) {
+            logger.debug("Skipping Migration Plugin: " + getName());
+            return;
+        }
+
+        observer.start();
+        AtomicInteger count = new AtomicInteger();
+        //get old app infos to migrate
+        final Observable<Entity> oldAppInfos = getOldAppInfos();
+        oldAppInfos
+            .doOnNext(oldAppInfoEntity -> {
+                try {
+                    migrateAppInfo(oldAppInfoEntity, observer);
+                    count.incrementAndGet();
+                }catch (Exception e){
+                    if(e.getCause() instanceof ApplicationAlreadyExistsException){
+                        count.incrementAndGet();
+                        logger.info("Application already migrated",oldAppInfoEntity.getId().getUuid());
+                    }else {
+                        logger.error("Failed to migrate app info" + oldAppInfoEntity.getId().getUuid(), e);
+                        throw new RuntimeException(e);
+                    }
+                }
+
+            })
+            .doOnCompleted(() -> {
+                if(count.get()>0) {
+                    migrationInfoSerialization.setVersion(getName(), getMaxVersion());
+                }else{
+                    logger.error("Failed to migrate any app infos");
+                }
+                observer.complete();
+            }).toBlocking().lastOrDefault(null);
+
+    }
+
+
+    private void migrateAppInfo( org.apache.usergrid.persistence.model.entity.Entity oldAppInfoEntity, ProgressObserver observer) {
+        // Get appinfos from the Graph, we don't expect many so use iterator
+        final EntityManager managementEm = emf.getManagementEntityManager();
+
+        Map oldAppInfoMap = CpEntityMapUtils.toMap(oldAppInfoEntity);
+
+        final String name = (String) oldAppInfoMap.get(PROPERTY_NAME);
+
+        try {
+            final String orgName = name.split("/")[0];
+            final String appName = name.split("/")[1];
+            UUID applicationId = getUuid(oldAppInfoMap,"applicationUuid") ;
+            applicationId = applicationId == null ?  getUuid(oldAppInfoMap,"appUuid") : applicationId ;
+            //get app info from graph to see if it has been migrated already
+            org.apache.usergrid.persistence.Entity appInfo = getApplicationInfo(applicationId);
+            if (appInfo == null) {
+
+                observer.update(getMaxVersion(), "Created application_info for " + appName);
+                // create org->app connections, but not for apps in dummy "usergrid" internal organization
+                EntityRef orgRef = managementEm.getAlias(Group.ENTITY_TYPE, orgName);
+                // create and connect new APPLICATION_INFO oldAppInfo to Organization
+                managementService.createApplication(orgRef.getUuid(), name, applicationId, null);
+            } else {
+                //already migrated don't do anything
+                observer.update(getMaxVersion(), "Received existing application_info for " + appName + " don't do anything");
+            }
+
+        } catch (Exception e) {
+            String msg = "Exception writing application_info for " + name;
+            logger.error(msg, e);
+            observer.failed(getMaxVersion(), msg);
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    private UUID getUuid(Map oldAppInfoMap, String key) {
+        UUID applicationId;
+        Object uuidObject = oldAppInfoMap.get(key);
+        if (uuidObject instanceof UUID) {
+            applicationId = (UUID) uuidObject;
+        } else {
+            applicationId = uuidObject == null ? null : UUIDUtils.tryExtractUUID(uuidObject.toString());
+        }
+        return applicationId;
+    }
+
+    private org.apache.usergrid.persistence.Entity createNewAppInfo(EntityManager managementEm, final String name, final UUID applicationId) throws Exception {
+        org.apache.usergrid.persistence.Entity appInfo;Map<String, Object> appInfoMap = new HashMap<String, Object>() {{
+            put(PROPERTY_NAME, name);
+            put(PROPERTY_APPLICATION_ID, applicationId);
+        }};
+        appInfo = managementEm.create(new SimpleId(applicationId, CpNamingUtils.APPLICATION_INFO), appInfoMap);
+        return appInfo;
+    }
+
+    /**
+     * TODO: Use Graph to get application_info for an specified Application.
+     */
+    private org.apache.usergrid.persistence.Entity getApplicationInfo( final UUID appId ) throws Exception {
+
+        final ApplicationScope managementAppScope = getApplicationScope(CpNamingUtils.MANAGEMENT_APPLICATION_ID);
+        final EntityCollectionManager managementCollectionManager = entityCollectionManagerFactory.createCollectionManager(managementAppScope);
+
+        Observable<Edge> edgesObservable = getApplicationInfoEdges(appId);
+        //get the graph for all app infos
+        Observable<org.apache.usergrid.persistence.model.entity.Entity> entityObs =
+            edgesObservable.flatMap(edge -> {
+                final Id appInfoId = edge.getTargetNode();
+                return managementCollectionManager
+                    .load(appInfoId)
+                    .filter( entity ->{
+                        //check for app id
+                        return  entity != null ? entity.getId().getUuid().equals(appId) : false;
+                    });
+            });
+
+        // don't expect many applications, so we block
+        org.apache.usergrid.persistence.model.entity.Entity applicationInfo =
+            entityObs.toBlocking().lastOrDefault(null);
+
+        if ( applicationInfo == null ) {
+            return null;
+        }
+
+        Class clazz = Schema.getDefaultSchema().getEntityClass(applicationInfo.getId().getType());
+
+        org.apache.usergrid.persistence.Entity entity = EntityFactory.newEntity(
+            applicationInfo.getId().getUuid(), applicationInfo.getId().getType(), clazz);
+
+        entity.setProperties( CpEntityMapUtils.toMap( applicationInfo ) );
+
+        return entity;
+
+    }
+
+
+    /**
+     * Use Graph to get old appinfos from the old and deprecated System App.
+     */
+    public Observable<org.apache.usergrid.persistence.model.entity.Entity> getOldAppInfos( ) {
+
+        final ApplicationScope systemAppScope = getApplicationScope(SYSTEM_APP_ID);
+
+        final EntityCollectionManager systemCollectionManager =
+            entityCollectionManagerFactory.createCollectionManager(systemAppScope);
+
+        final GraphManager gm = graphManagerFactory.createEdgeManager(systemAppScope);
+
+        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName("appinfos");
+
+        Id rootAppId = systemAppScope.getApplication();
+
+        final SimpleSearchByEdgeType simpleSearchByEdgeType =  new SimpleSearchByEdgeType(
+            rootAppId, edgeType, Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING, Optional.absent());
+
+        Observable<org.apache.usergrid.persistence.model.entity.Entity> entityObs =
+            gm.loadEdgesFromSource( simpleSearchByEdgeType )
+                .flatMap(edge -> {
+                    final Id appInfoId = edge.getTargetNode();
+
+                    return systemCollectionManager.load(appInfoId)
+                        .filter(entity -> (entity != null));
+                });
+
+        return entityObs;
+    }
+
+    public Observable<Edge> getApplicationInfoEdges(final UUID applicationId) {
+        final ApplicationScope managementAppScope = getApplicationScope(CpNamingUtils.MANAGEMENT_APPLICATION_ID);
+        final GraphManager gm = graphManagerFactory.createEdgeManager(managementAppScope);
+
+        String edgeType = CpNamingUtils.getEdgeTypeFromCollectionName(CpNamingUtils.APPLICATION_INFOS);
+
+
+        final SimpleSearchByEdge simpleSearchByEdgeType =  new SimpleSearchByEdge(
+            CpNamingUtils.generateApplicationId(CpNamingUtils.MANAGEMENT_APPLICATION_ID), edgeType, CpNamingUtils.generateApplicationId( applicationId ), Long.MAX_VALUE, SearchByEdgeType.Order.DESCENDING,
+            Optional.absent());
+
+        return gm.loadEdgeVersions(simpleSearchByEdgeType  );
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
index aaa8d65..b5ac750 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/ManagementService.java
@@ -68,7 +68,7 @@ public interface ManagementService {
 
     public ApplicationInfo createApplication( UUID organizationId, String applicationName ) throws Exception;
 
-    public ApplicationInfo createApplication( UUID organizationId, String applicationName,
+    public ApplicationInfo createApplication( UUID organizationId, String applicationName, UUID applicationId,
                                               Map<String, Object> properties ) throws Exception;
 
     public OrganizationInfo createOrganization(String organizationName, UserInfo user, boolean activated)

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 0c5fcec..3606f36 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -189,6 +189,8 @@ public class ManagementServiceImpl implements ManagementService {
 
     private static final String TOKEN_TYPE_CONFIRM = "confirm";
 
+    public static final String Org_App_Relationship = "applications";
+
     public static final String OAUTH_SECRET_SALT = "super secret oauth value";
 
     private static final String ORGANIZATION_PROPERTIES_DICTIONARY = "orgProperties";
@@ -1643,12 +1645,12 @@ public class ManagementServiceImpl implements ManagementService {
     @Override
     public ApplicationInfo createApplication( UUID organizationId, String applicationName ) throws Exception {
 
-        return createApplication( organizationId, applicationName, null );
+        return createApplication( organizationId, applicationName,null, null );
     }
 
 
     @Override
-    public ApplicationInfo createApplication( UUID organizationId, String applicationName,
+    public ApplicationInfo createApplication( UUID organizationId, String applicationName, UUID applicationId,
                                               Map<String, Object> properties ) throws Exception {
 
         if ( ( organizationId == null ) || ( applicationName == null ) ) {
@@ -1661,7 +1663,7 @@ public class ManagementServiceImpl implements ManagementService {
 
         OrganizationInfo organizationInfo = getOrganizationByUuid( organizationId );
         Entity appInfo = emf.createApplicationV2(
-            organizationInfo.getName(), applicationName, properties);
+            organizationInfo.getName(), applicationName, applicationId ,properties);
 
         writeUserToken( smf.getManagementAppId(), appInfo,
             encryptionService.plainTextCredentials(
@@ -1669,7 +1671,7 @@ public class ManagementServiceImpl implements ManagementService {
                 null,
                 smf.getManagementAppId() ) );
 
-        UUID applicationId = addApplicationToOrganization( organizationId, appInfo );
+        applicationId = addApplicationToOrganization( organizationId, appInfo );
 
         UserInfo user = null;
         try {
@@ -1761,7 +1763,7 @@ public class ManagementServiceImpl implements ManagementService {
 
         Results r = em.getSourceEntities(
             new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationInfoId),
-            "owns", Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
+            Org_App_Relationship, Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
 
         Entity entity = r.getEntity();
         if ( entity != null ) {
@@ -1784,7 +1786,7 @@ public class ManagementServiceImpl implements ManagementService {
         // query for application_info entities
         final Results results = em.getTargetEntities(
             new SimpleEntityRef(Group.ENTITY_TYPE, organizationGroupId),
-            "owns", CpNamingUtils.APPLICATION_INFO, Level.ALL_PROPERTIES);
+            Org_App_Relationship, CpNamingUtils.APPLICATION_INFO, Level.ALL_PROPERTIES);
 
         final PagingResultsIterator itr = new PagingResultsIterator( results );
 
@@ -1839,7 +1841,7 @@ public class ManagementServiceImpl implements ManagementService {
         }
 
         EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
-        em.createConnection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), "owns", appInfo );
+        em.createConnection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), Org_App_Relationship, appInfo );
 
         return applicationId;
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java b/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
index b61b18c..f4296fb 100644
--- a/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
+++ b/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
@@ -20,7 +20,9 @@ package org.apache.usergrid.services.guice;
 
 
 import org.apache.usergrid.corepersistence.CoreModule;
+import org.apache.usergrid.management.AppInfoMigrationPlugin;
 import org.apache.usergrid.persistence.EntityManagerFactory;
+import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
 import org.apache.usergrid.services.ServiceManager;
 import org.apache.usergrid.services.ServiceManagerFactory;
 import org.apache.usergrid.services.queues.ImportQueueListener;
@@ -58,6 +60,9 @@ public class ServiceModule extends AbstractModule {
         //Seems weird, aren't we just binding the factory to the exact same factory when it goes to look for it?
         bind( ServiceManagerFactory.class );
         bind( EntityManagerFactory.class );
+        final Multibinder<MigrationPlugin> plugins = Multibinder.newSetBinder( binder(), MigrationPlugin.class );
+        plugins.addBinding().to(AppInfoMigrationPlugin.class);
+
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
index e9bb248..460c471 100644
--- a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
+++ b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
@@ -17,7 +17,7 @@
 package org.apache.usergrid;
 
 
-import org.apache.usergrid.corepersistence.migration.AppInfoMigrationPlugin;
+import org.apache.usergrid.management.AppInfoMigrationPlugin;
 import org.apache.usergrid.management.ApplicationCreator;
 import org.apache.usergrid.management.ManagementService;
 import org.apache.usergrid.management.export.ExportService;
@@ -68,5 +68,4 @@ public interface ServiceITSetup extends CoreITSetup {
 
     SignInProviderFactory getProviderFactory();
 
-    AppInfoMigrationPlugin getAppInfoMigrationPlugin();
 }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/test/java/org/apache/usergrid/ServiceITSetupImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetupImpl.java b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetupImpl.java
index c17ee92..ac40ae3 100644
--- a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetupImpl.java
+++ b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetupImpl.java
@@ -20,7 +20,7 @@ package org.apache.usergrid;
 import java.util.Properties;
 
 import org.apache.usergrid.corepersistence.GuiceFactory;
-import org.apache.usergrid.corepersistence.migration.AppInfoMigrationPlugin;
+import org.apache.usergrid.management.AppInfoMigrationPlugin;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 import org.slf4j.Logger;
@@ -176,10 +176,7 @@ public class ServiceITSetupImpl extends CoreITSetupImpl implements ServiceITSetu
         return providerFactory;
     }
 
-    @Override
-    public AppInfoMigrationPlugin getAppInfoMigrationPlugin() {
-        return appInfoMigrationPlugin;
-    }
+
 
     public void refreshIndex(UUID appid){
         this.getEntityIndex().refresh(appid);

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/d1c19434/stack/services/src/test/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPluginTest.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPluginTest.java b/stack/services/src/test/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPluginTest.java
index 98d73f9..ef97188 100644
--- a/stack/services/src/test/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPluginTest.java
+++ b/stack/services/src/test/java/org/apache/usergrid/corepersistence/migration/AppInfoMigrationPluginTest.java
@@ -25,18 +25,16 @@ import org.apache.usergrid.ServiceITSetup;
 import org.apache.usergrid.ServiceITSetupImpl;
 import org.apache.usergrid.cassandra.ClearShiroSubject;
 import org.apache.usergrid.corepersistence.util.CpNamingUtils;
+import org.apache.usergrid.management.AppInfoMigrationPlugin;
+import org.apache.usergrid.management.ManagementService;
 import org.apache.usergrid.management.OrganizationOwnerInfo;
 import org.apache.usergrid.persistence.*;
 import org.apache.usergrid.persistence.cassandra.CassandraService;
 import org.apache.usergrid.persistence.collection.EntityCollectionManagerFactory;
 import org.apache.usergrid.persistence.core.migration.data.MigrationInfoSerialization;
 import org.apache.usergrid.persistence.core.migration.data.ProgressObserver;
-import org.apache.usergrid.persistence.core.scope.ApplicationScopeImpl;
 import org.apache.usergrid.persistence.entities.Application;
-import org.apache.usergrid.persistence.graph.GraphManager;
 import org.apache.usergrid.persistence.graph.GraphManagerFactory;
-import org.apache.usergrid.persistence.graph.SearchByEdgeType;
-import org.apache.usergrid.persistence.graph.impl.SimpleSearchByEdgeType;
 
 import org.junit.ClassRule;
 import org.junit.Rule;
@@ -46,18 +44,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import rx.Observable;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
+import java.util.*;
 
 import static org.apache.usergrid.TestHelper.*;
-import static org.apache.usergrid.corepersistence.util.CpNamingUtils.createCollectionSearchEdge;
-import static org.apache.usergrid.corepersistence.util.CpNamingUtils.generateApplicationId;
-import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getApplicationScope;
-import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getEdgeTypeFromCollectionName;
 import static org.junit.Assert.*;
 
 
@@ -84,8 +73,9 @@ public class AppInfoMigrationPluginTest {
         Mockito.when(serialization.getVersion(Mockito.any())).thenReturn(0);
         EntityCollectionManagerFactory ecmf = setup.getInjector().getInstance(EntityCollectionManagerFactory.class);
         GraphManagerFactory gmf = setup.getInjector().getInstance(GraphManagerFactory.class);
+        ManagementService managementService = setup.getMgmtSvc();
 
-        AppInfoMigrationPlugin appInfoMigrationPlugin = new AppInfoMigrationPlugin(setup.getEmf(),serialization,ecmf,gmf);
+        AppInfoMigrationPlugin appInfoMigrationPlugin = new AppInfoMigrationPlugin(setup.getEmf(),serialization,ecmf,gmf,managementService);
 
        // create 10 applications, each with 10 entities
 
@@ -146,7 +136,7 @@ public class AppInfoMigrationPluginTest {
 
             final String appName = applicationInfo.getName();
             final String finalOrgId = organization.getOrganization().getUuid().toString();
-            final String finalAppId = applicationInfo.getProperty( Schema.PROPERTY_APPLICATION_ID ).toString();
+            final String finalAppId = applicationInfo.asId().getUuid().toString();
             systemAppEm.create("appinfo", new HashMap<String, Object>() {{
                 put("name", appName );
                 put("organizationUuid", finalOrgId );
@@ -191,9 +181,9 @@ public class AppInfoMigrationPluginTest {
         assertEquals( 0, appInfoResults.size() );
 
         final Results applicationInfoResults =  rootEm.searchCollection(
-            new SimpleEntityRef("application", mgmtAppId), "application_infos", Query.fromQL("select *"));
+            new SimpleEntityRef("application", mgmtAppId), CpNamingUtils.APPLICATION_INFOS, Query.fromQL("select *"));
         int appCount =  Observable.from( applicationInfoResults.getEntities() ).filter(
-            entity -> !entity.getName().startsWith( "org." ) && !entity.getName().startsWith( "usergrid" ) ).doOnNext(
+            entity -> !entity.getName().startsWith( "org." )  ).doOnNext(
             entity -> logger.info("counting entity {}", entity) ).count().toBlocking().last();
         assertEquals( appIds.size() ,appCount );
 
@@ -241,14 +231,12 @@ public class AppInfoMigrationPluginTest {
     }
 
     private Entity getApplicationInfo( UUID appId ) throws Exception {
-
-        UUID mgmtAppId = setup.getEmf().getManagementAppId();
-        EntityManager rootEm = setup.getEmf().getEntityManager( mgmtAppId );
-
-        final Results applicationInfoResults = rootEm.searchCollection(
-            new SimpleEntityRef("application", mgmtAppId), "application_infos",
-            Query.fromQL("select * where applicationId=" + appId.toString()));
-
-        return applicationInfoResults.getEntity();
+        Map<String, UUID> apps = setup.getEmf().getApplications();
+        if(apps.containsValue(appId)){
+            return setup.getEmf().getManagementEntityManager().get(appId);
+        }else{
+            fail("no app " + appId);
+            return null;
+        }
     }
 }


[5/8] incubator-usergrid git commit: change app info name

Posted by sf...@apache.org.
change app info name


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

Branch: refs/heads/two-dot-o-dev
Commit: 107989544c0041b1e7b9f578669fd0154f468887
Parents: 3afbc78
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 10:30:24 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 10:30:24 2015 -0600

----------------------------------------------------------------------
 .../usergrid/corepersistence/CpEntityManagerFactory.java     | 1 +
 .../apache/usergrid/corepersistence/util/CpNamingUtils.java  | 8 ++++----
 2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/10798954/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index 025acbf..048c558 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -266,6 +266,7 @@ public class CpEntityManagerFactory implements EntityManagerFactory, Application
 
         Map<String, Object> appInfoMap = new HashMap<String, Object>() {{
             put( PROPERTY_NAME, appName );
+            put( "org", organizationName );
         }};
 
         Entity appInfo;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/10798954/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
index e8867e1..d5b05a2 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/util/CpNamingUtils.java
@@ -72,11 +72,11 @@ public class CpNamingUtils {
     /**
      * Information about applications is stored in the management app using these types
      */
-    public static final String APPLICATION_INFO = "application_map";
-    public static final String APPLICATION_INFOS = "application_maps";
+    public static final String APPLICATION_INFO = "org_application";
+    public static final String APPLICATION_INFOS = "org_applications";
 
-    public static final String DELETED_APPLICATION_INFO = "deleted_application";
-    public static final String DELETED_APPLICATION_INFOS = "deleted_applications";
+    public static final String DELETED_APPLICATION_INFO = "deleted_org_application";
+    public static final String DELETED_APPLICATION_INFOS = "deleted_org_applications";
 
     /**
      * The name of the map that holds our entity id->type mapping


[7/8] incubator-usergrid git commit: avoid mgmt app

Posted by sf...@apache.org.
avoid mgmt app


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

Branch: refs/heads/two-dot-o-dev
Commit: c61d69f0faf3c0e3dcb6f9b0a0908b7836802743
Parents: 24726af
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 16:02:47 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 16:02:47 2015 -0600

----------------------------------------------------------------------
 .../apache/usergrid/management/AppInfoMigrationPlugin.java  | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/c61d69f0/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
index 6cd487d..ff73402 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
@@ -194,9 +194,12 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
 
                 observer.update(getMaxVersion(), "Created application_info for " + appName);
                 // create org->app connections, but not for apps in dummy "usergrid" internal organization
-                EntityRef orgRef = managementEm.getAlias(Group.ENTITY_TYPE, orgName);
-                // create and connect new APPLICATION_INFO oldAppInfo to Organization
-                managementService.createApplication(orgRef.getUuid(), name, applicationId, null);
+                if(!orgName.equals("usergrid")) { //avoid management org
+
+                    EntityRef orgRef = managementEm.getAlias(Group.ENTITY_TYPE, orgName);
+                    // create and connect new APPLICATION_INFO oldAppInfo to Organization
+                    managementService.createApplication(orgRef.getUuid(), name, applicationId, null);
+                }
             } else {
                 //already migrated don't do anything
                 observer.update(getMaxVersion(), "Received existing application_info for " + appName + " don't do anything");


[3/8] incubator-usergrid git commit: remove application id

Posted by sf...@apache.org.
remove application id


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

Branch: refs/heads/two-dot-o-dev
Commit: b8a40f8a4619d5c2cbbc31fec28838236e3fbd93
Parents: cd6b63d
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 09:14:07 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 09:14:07 2015 -0600

----------------------------------------------------------------------
 .../apache/usergrid/management/AppInfoMigrationPlugin.java  | 9 ---------
 .../management/cassandra/ManagementServiceImpl.java         | 3 +--
 2 files changed, 1 insertion(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b8a40f8a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
index 3ac72d2..2a5346a 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
@@ -54,7 +54,6 @@ import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import static org.apache.usergrid.corepersistence.util.CpNamingUtils.getApplicationScope;
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_NAME;
 
 /**
@@ -209,14 +208,6 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
         return applicationId;
     }
 
-    private org.apache.usergrid.persistence.Entity createNewAppInfo(EntityManager managementEm, final String name, final UUID applicationId) throws Exception {
-        org.apache.usergrid.persistence.Entity appInfo;Map<String, Object> appInfoMap = new HashMap<String, Object>() {{
-            put(PROPERTY_NAME, name);
-            put(PROPERTY_APPLICATION_ID, applicationId);
-        }};
-        appInfo = managementEm.create(new SimpleId(applicationId, CpNamingUtils.APPLICATION_INFO), appInfoMap);
-        return appInfo;
-    }
 
     /**
      * TODO: Use Graph to get application_info for an specified Application.

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/b8a40f8a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 3606f36..0693057 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -1803,8 +1803,7 @@ public class ManagementServiceImpl implements ManagementService {
             }
 
             // make sure we return applicationId and not the application_info UUID
-            UUID applicationId = UUIDUtils.tryExtractUUID(
-                entity.getProperty( PROPERTY_APPLICATION_ID ).toString() );
+            UUID applicationId = entity.getUuid();
 
             applications.put( applicationId, entityName );
         }


[6/8] incubator-usergrid git commit: hacked spring impl, need to improve

Posted by sf...@apache.org.
hacked spring impl, need to improve


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

Branch: refs/heads/two-dot-o-dev
Commit: 24726af8de5265086453cd2f8ef345fe2222b74d
Parents: 1079895
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 15:30:24 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 15:30:24 2015 -0600

----------------------------------------------------------------------
 .../usergrid/corepersistence/GuiceFactory.java  | 15 ++++-
 .../usergrid/corepersistence/ServiceModule.java | 29 ++++++++
 .../management/AppInfoMigrationPlugin.java      | 16 ++++-
 .../usergrid/services/guice/ServiceModule.java  | 71 --------------------
 .../services/guice/ServiceModuleImpl.java       | 60 +++++++++++++++++
 .../resources/usergrid-services-context.xml     |  5 +-
 .../org/apache/usergrid/ServiceITSetup.java     |  1 -
 7 files changed, 121 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/core/src/main/java/org/apache/usergrid/corepersistence/GuiceFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/GuiceFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/GuiceFactory.java
index 6a87005..aadb479 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/GuiceFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/GuiceFactory.java
@@ -20,10 +20,15 @@
 package org.apache.usergrid.corepersistence;
 
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Properties;
 
 import javax.inject.Named;
 
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+import org.apache.usergrid.persistence.collection.service.impl.ServiceModule;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.FactoryBean;
@@ -126,9 +131,15 @@ public class GuiceFactory implements FactoryBean<Injector> {
             throw new RuntimeException( "Fatal error loading configuration.", e );
         }
 
-
+        List<Module> moduleList = new ArrayList<>();
+        if(applicationContext.containsBean("serviceModule")){
+            Module serviceModule =(Module)applicationContext.getBean("serviceModule");
+            moduleList.add( serviceModule);
+        }
+        moduleList.add(new CoreModule());
+        moduleList.add(new PersistenceModule(applicationContext));
         //we have to inject a couple of spring beans into our Guice.  Wire it with PersistenceModule
-        injector = Guice.createInjector( new CoreModule(), new PersistenceModule( applicationContext ) );
+        injector = Guice.createInjector( moduleList );
 
         return injector;
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/core/src/main/java/org/apache/usergrid/corepersistence/ServiceModule.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/ServiceModule.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/ServiceModule.java
new file mode 100644
index 0000000..1859281
--- /dev/null
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/ServiceModule.java
@@ -0,0 +1,29 @@
+/*
+ *
+ *  * 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;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+
+/**
+ * Classy class class.
+ */
+public interface ServiceModule extends Module{
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
index 2a5346a..6cd487d 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/AppInfoMigrationPlugin.java
@@ -46,6 +46,7 @@ import org.apache.usergrid.persistence.model.entity.SimpleId;
 import org.apache.usergrid.utils.UUIDUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.BeanFactory;
 import rx.Observable;
 
 import java.util.HashMap;
@@ -84,13 +85,26 @@ public class AppInfoMigrationPlugin implements MigrationPlugin {
     final private GraphManagerFactory graphManagerFactory;
     private final ManagementService managementService;
 
-
     @Inject
     public AppInfoMigrationPlugin(
         EntityManagerFactory emf,
         MigrationInfoSerialization migrationInfoSerialization,
         EntityCollectionManagerFactory entityCollectionManagerFactory,
         GraphManagerFactory graphManagerFactory,
+        BeanFactory beanFactory) {
+
+        this.emf = emf;
+        this.migrationInfoSerialization = migrationInfoSerialization;
+        this.entityCollectionManagerFactory = entityCollectionManagerFactory;
+        this.graphManagerFactory = graphManagerFactory;
+        this.managementService = beanFactory.getBean(ManagementService.class);
+    }
+
+    public AppInfoMigrationPlugin(
+        EntityManagerFactory emf,
+        MigrationInfoSerialization migrationInfoSerialization,
+        EntityCollectionManagerFactory entityCollectionManagerFactory,
+        GraphManagerFactory graphManagerFactory,
         ManagementService managementService) {
 
         this.emf = emf;

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java b/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
deleted file mode 100644
index f4296fb..0000000
--- a/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModule.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  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.
- */
-package org.apache.usergrid.services.guice;
-
-
-import org.apache.usergrid.corepersistence.CoreModule;
-import org.apache.usergrid.management.AppInfoMigrationPlugin;
-import org.apache.usergrid.persistence.EntityManagerFactory;
-import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
-import org.apache.usergrid.services.ServiceManager;
-import org.apache.usergrid.services.ServiceManagerFactory;
-import org.apache.usergrid.services.queues.ImportQueueListener;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.assistedinject.FactoryModuleBuilder;
-import com.google.inject.multibindings.Multibinder;
-
-
-/**
- * Module that handles all of the guice injects for services.
- */
-
-
-/**
- *   <bean id="notificationsQueueListener" class="org.apache.usergrid.services.notifications.QueueListener"
- scope="singleton">
- <constructor-arg name="emf" ref="entityManagerFactory" />
- <constructor-arg name="metricsService" ref="metricsFactory" />
- <constructor-arg name="props" ref="properties" />
- <constructor-arg name="smf" ref="serviceManagerFactory" />
- </bean>
- */
-
-public class ServiceModule extends AbstractModule {
-    @Override
-    protected void configure() {
-
-        //TODO: why not just make the ImportQueueListener inject the ServiceManager instead?
-        //TODO: I don't know why we need to do the same with emf. We could just inject it like the CoreModule does.
-
-       // install( new CoreModule() );
-
-
-        //Seems weird, aren't we just binding the factory to the exact same factory when it goes to look for it?
-        bind( ServiceManagerFactory.class );
-        bind( EntityManagerFactory.class );
-        final Multibinder<MigrationPlugin> plugins = Multibinder.newSetBinder( binder(), MigrationPlugin.class );
-        plugins.addBinding().to(AppInfoMigrationPlugin.class);
-
-
-
-
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModuleImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModuleImpl.java b/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModuleImpl.java
new file mode 100644
index 0000000..1bcc881
--- /dev/null
+++ b/stack/services/src/main/java/org/apache/usergrid/services/guice/ServiceModuleImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  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.
+ */
+package org.apache.usergrid.services.guice;
+
+
+import org.apache.usergrid.corepersistence.CoreModule;
+import org.apache.usergrid.corepersistence.ServiceModule;
+import org.apache.usergrid.management.AppInfoMigrationPlugin;
+import org.apache.usergrid.persistence.EntityManagerFactory;
+import org.apache.usergrid.persistence.core.migration.data.MigrationPlugin;
+import org.apache.usergrid.services.ServiceManager;
+import org.apache.usergrid.services.ServiceManagerFactory;
+import org.apache.usergrid.services.queues.ImportQueueListener;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.assistedinject.FactoryModuleBuilder;
+import com.google.inject.multibindings.Multibinder;
+
+
+/**
+ * Module that handles all of the guice injects for services.
+ */
+
+
+/**
+ *   <bean id="notificationsQueueListener" class="org.apache.usergrid.services.notifications.QueueListener"
+ scope="singleton">
+ <constructor-arg name="emf" ref="entityManagerFactory" />
+ <constructor-arg name="metricsService" ref="metricsFactory" />
+ <constructor-arg name="props" ref="properties" />
+ <constructor-arg name="smf" ref="serviceManagerFactory" />
+ </bean>
+ */
+
+public class ServiceModuleImpl extends AbstractModule implements ServiceModule {
+    @Override
+    protected void configure() {
+
+        //Seems weird, aren't we just binding the factory to the exact same factory when it goes to look for it?
+        final Multibinder<MigrationPlugin> plugins = Multibinder.newSetBinder( binder(), MigrationPlugin.class );
+        plugins.addBinding().to(AppInfoMigrationPlugin.class);
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/services/src/main/resources/usergrid-services-context.xml
----------------------------------------------------------------------
diff --git a/stack/services/src/main/resources/usergrid-services-context.xml b/stack/services/src/main/resources/usergrid-services-context.xml
index 8674b71..74c4de2 100644
--- a/stack/services/src/main/resources/usergrid-services-context.xml
+++ b/stack/services/src/main/resources/usergrid-services-context.xml
@@ -89,7 +89,10 @@
 
   <bean id="exportJob" class="org.apache.usergrid.management.export.ExportJob" />
 
-  <bean id="notificationsQueueListener" class="org.apache.usergrid.services.notifications.QueueListener">
+    <bean id="serviceModule" class="org.apache.usergrid.services.guice.ServiceModuleImpl" />
+
+
+    <bean id="notificationsQueueListener" class="org.apache.usergrid.services.notifications.QueueListener">
     <constructor-arg name="emf" ref="entityManagerFactory" />
     <constructor-arg name="props" ref="properties" />
     <constructor-arg name="smf" ref="serviceManagerFactory" />

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24726af8/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
index 460c471..6cdb0ea 100644
--- a/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
+++ b/stack/services/src/test/java/org/apache/usergrid/ServiceITSetup.java
@@ -17,7 +17,6 @@
 package org.apache.usergrid;
 
 
-import org.apache.usergrid.management.AppInfoMigrationPlugin;
 import org.apache.usergrid.management.ApplicationCreator;
 import org.apache.usergrid.management.ManagementService;
 import org.apache.usergrid.management.export.ExportService;


[4/8] incubator-usergrid git commit: remove application id

Posted by sf...@apache.org.
remove application id


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

Branch: refs/heads/two-dot-o-dev
Commit: 3afbc7849d929b033ffed2190275216103e7c111
Parents: b8a40f8
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 09:42:10 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 09:42:10 2015 -0600

----------------------------------------------------------------------
 .../management/cassandra/ManagementServiceIT.java     | 14 ++++++--------
 .../usergrid/management/export/ExportServiceIT.java   |  5 ++---
 .../apache/usergrid/services/ServiceFactoryIT.java    |  5 ++---
 3 files changed, 10 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3afbc784/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
index 196400f..f0c0c10 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/cassandra/ManagementServiceIT.java
@@ -59,7 +59,6 @@ import static org.apache.usergrid.TestHelper.uniqueEmail;
 import static org.apache.usergrid.TestHelper.uniqueOrg;
 import static org.apache.usergrid.TestHelper.uniqueUsername;
 import static org.apache.usergrid.persistence.Schema.DICTIONARY_CREDENTIALS;
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -639,8 +638,8 @@ public class ManagementServiceIT {
         String appName = uniqueApp();
 
         Entity appInfo = setup.getEmf().createApplicationV2( orgName, appName );
-        UUID appId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID appId = appInfo.getUuid();
+
 
         User user = new User();
         user.setActivated( true );
@@ -685,8 +684,8 @@ public class ManagementServiceIT {
         String appName = "testAppUserPasswordChangeShaType"+newUUIDString();
 
         Entity appInfo = setup.getEmf().createApplicationV2(orgName, appName);
-        UUID appId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID appId = appInfo.getUuid();
+
 
         User user = new User();
         user.setActivated( true );
@@ -745,9 +744,8 @@ public class ManagementServiceIT {
         String orgName = uniqueOrg();
         String appName = uniqueApp();
 
-        Entity appInfo = setup.getEmf().createApplicationV2( orgName, appName );
-        UUID appId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        Entity appInfo = setup.getEmf().createApplicationV2(orgName, appName);
+        UUID appId = appInfo.getUuid();
 
         User user = new User();
         user.setActivated( true );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3afbc784/stack/services/src/test/java/org/apache/usergrid/management/export/ExportServiceIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/export/ExportServiceIT.java b/stack/services/src/test/java/org/apache/usergrid/management/export/ExportServiceIT.java
index 95e8c7d..8f67e85 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/export/ExportServiceIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/export/ExportServiceIT.java
@@ -62,7 +62,6 @@ import com.google.inject.Module;
 import static org.apache.usergrid.TestHelper.newUUIDString;
 import static org.apache.usergrid.TestHelper.uniqueApp;
 import static org.apache.usergrid.TestHelper.uniqueOrg;
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -407,8 +406,8 @@ public class ExportServiceIT {
 
 
         Entity appInfo = setup.getEmf().createApplicationV2(orgName, appName);
-        UUID applicationId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID applicationId = appInfo.getUuid();
+
 
 
         EntityManager em = setup.getEmf().getEntityManager( applicationId );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3afbc784/stack/services/src/test/java/org/apache/usergrid/services/ServiceFactoryIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/services/ServiceFactoryIT.java b/stack/services/src/test/java/org/apache/usergrid/services/ServiceFactoryIT.java
index cc05451..1d1565b 100644
--- a/stack/services/src/test/java/org/apache/usergrid/services/ServiceFactoryIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/services/ServiceFactoryIT.java
@@ -30,7 +30,6 @@ import org.apache.usergrid.services.simple.SimpleService;
 
 import static org.apache.usergrid.TestHelper.uniqueApp;
 import static org.apache.usergrid.TestHelper.uniqueOrg;
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
@@ -46,8 +45,8 @@ public class ServiceFactoryIT extends AbstractServiceIT {
         logger.info( "test package prefixes" );
 
         Entity appInfo = setup.getEmf().createApplicationV2(uniqueOrg(), uniqueApp());
-        UUID applicationId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID applicationId = appInfo.getUuid();
+
 
         ServiceManager sm = setup.getSmf().getServiceManager( applicationId );
         Service service = sm.getService( "simple" );


[8/8] incubator-usergrid git commit: variable name change

Posted by sf...@apache.org.
variable name change


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

Branch: refs/heads/two-dot-o-dev
Commit: 03d05348dad0d6a35869a617edc959c3105d217b
Parents: c61d69f
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 16:51:16 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 16:51:16 2015 -0600

----------------------------------------------------------------------
 .../management/cassandra/ManagementServiceImpl.java         | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/03d05348/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 0693057..738710b 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -33,7 +33,6 @@ import org.apache.usergrid.corepersistence.util.CpNamingUtils;
 import org.apache.usergrid.exception.ConflictException;
 import org.apache.usergrid.management.exceptions.*;
 import org.apache.usergrid.persistence.*;
-import org.apache.usergrid.persistence.Query;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -189,7 +188,7 @@ public class ManagementServiceImpl implements ManagementService {
 
     private static final String TOKEN_TYPE_CONFIRM = "confirm";
 
-    public static final String Org_App_Relationship = "applications";
+    public static final String ORG_APP_RELATIONSHIP = "applications";
 
     public static final String OAUTH_SECRET_SALT = "super secret oauth value";
 
@@ -1763,7 +1762,7 @@ public class ManagementServiceImpl implements ManagementService {
 
         Results r = em.getSourceEntities(
             new SimpleEntityRef(CpNamingUtils.APPLICATION_INFO, applicationInfoId),
-            Org_App_Relationship, Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
+            ORG_APP_RELATIONSHIP, Group.ENTITY_TYPE, Level.ALL_PROPERTIES);
 
         Entity entity = r.getEntity();
         if ( entity != null ) {
@@ -1786,7 +1785,7 @@ public class ManagementServiceImpl implements ManagementService {
         // query for application_info entities
         final Results results = em.getTargetEntities(
             new SimpleEntityRef(Group.ENTITY_TYPE, organizationGroupId),
-            Org_App_Relationship, CpNamingUtils.APPLICATION_INFO, Level.ALL_PROPERTIES);
+            ORG_APP_RELATIONSHIP, CpNamingUtils.APPLICATION_INFO, Level.ALL_PROPERTIES);
 
         final PagingResultsIterator itr = new PagingResultsIterator( results );
 
@@ -1840,7 +1839,7 @@ public class ManagementServiceImpl implements ManagementService {
         }
 
         EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
-        em.createConnection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), Org_App_Relationship, appInfo );
+        em.createConnection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), ORG_APP_RELATIONSHIP, appInfo );
 
         return applicationId;
     }


[2/8] incubator-usergrid git commit: remove application id

Posted by sf...@apache.org.
remove application id


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

Branch: refs/heads/two-dot-o-dev
Commit: cd6b63d23f7bc30e6ea2fc87e2a11d95f0cb9d67
Parents: d1c1943
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 1 09:06:23 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 1 09:06:23 2015 -0600

----------------------------------------------------------------------
 .../usergrid/corepersistence/CpEntityManagerFactory.java       | 1 -
 .../corepersistence/rx/impl/AllApplicationsObservableImpl.java | 3 +--
 .../src/main/java/org/apache/usergrid/persistence/Schema.java  | 1 -
 .../src/test/java/org/apache/usergrid/CoreITSetupImpl.java     | 6 ++----
 .../test/java/org/apache/usergrid/persistence/CounterIT.java   | 5 ++---
 .../java/org/apache/usergrid/persistence/EntityManagerIT.java  | 3 +--
 .../persistence/cassandra/EntityManagerFactoryImplIT.java      | 4 +---
 7 files changed, 7 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
index a962def..025acbf 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/CpEntityManagerFactory.java
@@ -83,7 +83,6 @@ import rx.Observable;
 
 import static java.lang.String.CASE_INSENSITIVE_ORDER;
 
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.apache.usergrid.persistence.Schema.PROPERTY_NAME;
 import static org.apache.usergrid.persistence.Schema.TYPE_APPLICATION;
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllApplicationsObservableImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllApplicationsObservableImpl.java b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllApplicationsObservableImpl.java
index b130ac6..9c766a8 100644
--- a/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllApplicationsObservableImpl.java
+++ b/stack/core/src/main/java/org/apache/usergrid/corepersistence/rx/impl/AllApplicationsObservableImpl.java
@@ -118,8 +118,7 @@ public class AllApplicationsObservableImpl implements AllApplicationsObservable
 
                         @Override
                         public ApplicationScope call( final Entity entity ) {
-                            final UUID uuid = UUIDUtils.tryExtractUUID(
-                                entity.getField( Schema.PROPERTY_APPLICATION_ID ).getValue().toString() );
+                            final UUID uuid =entity.getId().getUuid();
                             return getApplicationScope( uuid );
                         }
                     } );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/main/java/org/apache/usergrid/persistence/Schema.java
----------------------------------------------------------------------
diff --git a/stack/core/src/main/java/org/apache/usergrid/persistence/Schema.java b/stack/core/src/main/java/org/apache/usergrid/persistence/Schema.java
index 1e3826d..b42995a 100644
--- a/stack/core/src/main/java/org/apache/usergrid/persistence/Schema.java
+++ b/stack/core/src/main/java/org/apache/usergrid/persistence/Schema.java
@@ -108,7 +108,6 @@ public class Schema {
     public static final String TYPE_MEMBER = "member";
 
     public static final String PROPERTY_ACTIVATED = "activated";
-    public static final String PROPERTY_APPLICATION_ID = "applicationId";
     public static final String PROPERTY_COLLECTION_NAME = "collectionName";
     public static final String PROPERTY_CREATED = "created";
     public static final String PROPERTY_CONFIRMED = "confirmed";

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java b/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
index 3b01d3c..30e8b35 100644
--- a/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
+++ b/stack/core/src/test/java/org/apache/usergrid/CoreITSetupImpl.java
@@ -34,8 +34,6 @@ import org.slf4j.LoggerFactory;
 
 import java.util.UUID;
 
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
-
 
 public class CoreITSetupImpl implements CoreITSetup, TestEntityIndex {
     private static final Logger LOG = LoggerFactory.getLogger( CoreITSetupImpl.class );
@@ -125,8 +123,8 @@ public class CoreITSetupImpl implements CoreITSetup, TestEntityIndex {
     @Override
     public UUID createApplication( String organizationName, String applicationName ) throws Exception {
         Entity appInfo = emf.createApplicationV2(organizationName, applicationName);
-        UUID applicationId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID applicationId = appInfo.getUuid();
+
         return applicationId;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
index 4e8b599..b16b943 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/CounterIT.java
@@ -48,7 +48,6 @@ import com.google.inject.Inject;
 
 import net.jcip.annotations.NotThreadSafe;
 
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
@@ -226,8 +225,8 @@ public class CounterIT extends AbstractCoreIT {
         organizationEntity = em.create( organizationEntity );
 
         Entity appInfo = setup.getEmf().createApplicationV2( orgName, appName  );
-        UUID applicationId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID applicationId =
+            appInfo.getUuid();
 
         Map<String, Object> properties = new LinkedHashMap<String, Object>();
         properties.put( "name", orgName + "/" + appName );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
index c70a141..1fc97e9 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/EntityManagerIT.java
@@ -39,7 +39,6 @@ import org.apache.usergrid.persistence.entities.User;
 import org.apache.usergrid.persistence.model.util.UUIDGenerator;
 import org.apache.usergrid.utils.UUIDUtils;
 
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -394,7 +393,7 @@ public class EntityManagerIT extends AbstractCoreIT {
 
         Entity appInfo =
             setup.getEmf().createApplicationV2( "testCounterOrg", "testEntityCounters" + UUIDGenerator.newTimeUUID() );
-        UUID applicationId = UUIDUtils.tryExtractUUID( appInfo.getProperty( PROPERTY_APPLICATION_ID ).toString() );
+        UUID applicationId = appInfo.getUuid();
 
         Map<String, Object> properties = new LinkedHashMap<String, Object>();
         properties.put( "name", "testEntityCounters" );

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/cd6b63d2/stack/core/src/test/java/org/apache/usergrid/persistence/cassandra/EntityManagerFactoryImplIT.java
----------------------------------------------------------------------
diff --git a/stack/core/src/test/java/org/apache/usergrid/persistence/cassandra/EntityManagerFactoryImplIT.java b/stack/core/src/test/java/org/apache/usergrid/persistence/cassandra/EntityManagerFactoryImplIT.java
index 83760e2..ec5688d 100644
--- a/stack/core/src/test/java/org/apache/usergrid/persistence/cassandra/EntityManagerFactoryImplIT.java
+++ b/stack/core/src/test/java/org/apache/usergrid/persistence/cassandra/EntityManagerFactoryImplIT.java
@@ -49,7 +49,6 @@ import rx.functions.Func2;
 
 import javax.annotation.concurrent.NotThreadSafe;
 
-import static org.apache.usergrid.persistence.Schema.PROPERTY_APPLICATION_ID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotEquals;
@@ -94,8 +93,7 @@ public class EntityManagerFactoryImplIT extends AbstractCoreIT {
 
     public UUID createApplication( String organizationName, String applicationName ) throws Exception {
         Entity appInfo = emf.createApplicationV2(organizationName, applicationName);
-        UUID appId = UUIDUtils.tryExtractUUID(
-            appInfo.getProperty(PROPERTY_APPLICATION_ID).toString());
+        UUID appId = appInfo.getUuid();
         return appId;
     }