You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/12/15 16:46:08 UTC

[3/5] usergrid git commit: changes to get ExportAdmins working under 2.0, ExportApp is still failing.

changes to get ExportAdmins working under 2.0, ExportApp is still failing.


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

Branch: refs/heads/USERGRID-872
Commit: bdf518b430f95fa10ddc7bd6456fec800e1aa1ef
Parents: 2ed5713
Author: Dave Johnson <sn...@apache.org>
Authored: Tue Dec 8 07:36:28 2015 -0500
Committer: Dave Johnson <sn...@apache.org>
Committed: Tue Dec 8 07:36:28 2015 -0500

----------------------------------------------------------------------
 stack/tools/pom.xml                             |   4 +-
 .../org/apache/usergrid/tools/ExportApp.java    |  38 +++---
 .../usergrid/tools/ExportDataCreator.java       |  22 +++-
 .../org/apache/usergrid/tools/ToolBase.java     |   8 ++
 stack/tools/src/main/resources/log4j.properties |   3 +-
 .../main/resources/toolsApplicationContext.xml  | 124 +++++++++----------
 .../apache/usergrid/tools/ExportAppTest.java    |  12 +-
 .../usergrid/tools/ExportImportAdminsTest.java  |   4 +-
 .../test/resources/usergrid-test-context.xml    |  63 ++++++++++
 9 files changed, 187 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/pom.xml
----------------------------------------------------------------------
diff --git a/stack/tools/pom.xml b/stack/tools/pom.xml
index 6b65268..01766eb 100644
--- a/stack/tools/pom.xml
+++ b/stack/tools/pom.xml
@@ -60,16 +60,16 @@
     </resources>
 
     <plugins>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
-          <!-- <groups>fast,${groups}</groups> -->
           <systemPropertyVariables>
             <storage-config>${basedir}/src/test/conf</storage-config>
           </systemPropertyVariables>
           <forkMode>always</forkMode>
-          <argLine>-Xmx${ug.heapmax} -Xms${ug.heapmin} -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${project.build.directory}/jacoco.exec -javaagent:${settings.localRepository}/com/github/stephenc/jamm/0.2.5/jamm-0.2.5.jar ${ug.argline}</argLine>
+          <argLine>-Xmx${ug.heapmax} -Xms${ug.heapmin} -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -javaagent:${settings.localRepository}/com/github/stephenc/jamm/0.2.5/jamm-0.2.5.jar ${ug.argline}</argLine>
         </configuration>
       </plugin>
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/main/java/org/apache/usergrid/tools/ExportApp.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/ExportApp.java b/stack/tools/src/main/java/org/apache/usergrid/tools/ExportApp.java
index f5e5d34..9e522d2 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/ExportApp.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/ExportApp.java
@@ -135,25 +135,20 @@ public class ExportApp extends ExportingToolBase {
 
         Observable<String> collectionsObservable = Observable.create( new CollectionsObservable( em ) );
 
-        collectionsObservable.flatMap( new Func1<String, Observable<ExportEntity>>() {
+        logger.debug( "Starting export" );
 
-            public Observable<ExportEntity> call(String collection) {
+        collectionsObservable.flatMap( collection -> {
 
-                return Observable.create( new EntityObservable( em, collection ) )
-                        .doOnNext( new EntityWriteAction() ).subscribeOn( writeScheduler );
-            }
-
-        }, writeThreadCount ).flatMap( new Func1<ExportEntity, Observable<ExportConnection>>() {
+            return Observable.create( new EntityObservable( em, collection ) )
+                    .doOnNext( new EntityWriteAction() ).subscribeOn( writeScheduler );
 
-            public Observable<ExportConnection> call(ExportEntity exportEntity) {
+        }, writeThreadCount ).flatMap( exportEntity -> {
 
-                return Observable.create( new ConnectionsObservable( em, exportEntity ) )
-                        .doOnNext( new ConnectionWriteAction() ).subscribeOn( writeScheduler );
-            }
+            return Observable.create( new ConnectionsObservable( em, exportEntity ) )
+                    .doOnNext( new ConnectionWriteAction() ).subscribeOn( writeScheduler );
 
         }, writeThreadCount )
-            .doOnCompleted( new FileWrapUpAction() )
-            .toBlocking().last();
+            .doOnCompleted( new FileWrapUpAction() ).toBlocking().lastOrDefault(null);
     }
 
 
@@ -176,6 +171,10 @@ public class ExportApp extends ExportingToolBase {
             int count = 0;
             try {
                 Map<String, Object> collectionMetadata = em.getApplicationCollectionMetadata();
+
+                logger.debug( "Emitting {} collection names for application {}",
+                    collectionMetadata.size(), em.getApplication().getName() );
+
                 for ( String collection : collectionMetadata.keySet() ) {
                     subscriber.onNext( collection );
                     count++;
@@ -274,8 +273,8 @@ public class ExportApp extends ExportingToolBase {
 
         public void call(Subscriber<? super ExportConnection> subscriber) {
 
-            logger.info( "Starting to read connections for entity {} type {}",
-                    exportEntity.getEntity().getName(), exportEntity.getEntity().getType() );
+//            logger.debug( "Starting to read connections for entity {} type {}",
+//                    exportEntity.getEntity().getName(), exportEntity.getEntity().getType() );
 
             int count = 0;
 
@@ -311,8 +310,13 @@ public class ExportApp extends ExportingToolBase {
             }
 
             subscriber.onCompleted();
-            logger.info("Completed entity {} type {} connections count {}",
-                new Object[] { exportEntity.getEntity().getName(), exportEntity.getEntity().getType(), count });
+
+            if ( count == 0 ) {
+                logger.debug("Completed entity {} type {} no connections",
+                    new Object[] { exportEntity.getEntity().getUuid(), exportEntity.getEntity().getType() });
+            }
+//            logger.debug("Completed entity {} type {} connections count {}",
+//                new Object[] { exportEntity.getEntity().getUuid(), exportEntity.getEntity().getType(), count });
         }
     }
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/main/java/org/apache/usergrid/tools/ExportDataCreator.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/ExportDataCreator.java b/stack/tools/src/main/java/org/apache/usergrid/tools/ExportDataCreator.java
index 4b9e5a0..5ad29d2 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/ExportDataCreator.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/ExportDataCreator.java
@@ -160,22 +160,30 @@ public class ExportDataCreator extends ToolBase {
             Entity userEntity = null;
             try {
                 final Map<String, Object> userMap = new HashMap<String, Object>() {{
+                    put( "name", person.username() );
                     put( "username", person.username() );
                     put( "password", person.password() );
                     put( "email", person.email() );
                     put( "companyEmail", person.companyEmail() );
-                    put( "dateOfBirth", person.dateOfBirth() );
+                    put( "dateOfBirth", person.dateOfBirth().toDate().toString());
                     put( "firstName", person.firstName() );
                     put( "lastName", person.lastName() );
                     put( "nationalIdentificationNumber", person.nationalIdentificationNumber() );
                     put( "telephoneNumber", person.telephoneNumber() );
                     put( "passportNumber", person.passportNumber() );
-                    put( "address", person.getAddress() );
+                    put( "address", new HashMap<String, Object>() {{
+                        put("streetNumber", person.getAddress().streetNumber());
+                        put("street", person.getAddress().street());
+                        put("city", person.getAddress().getCity());
+                        put("postalCode", person.getAddress().getPostalCode());
+                    }});
                 }};
 
                 userEntity = em.create( "user", userMap );
                 users.add( userEntity );
 
+                logger.debug("Created user {}", userEntity.getName());
+
             } catch (DuplicateUniquePropertyExistsException e) {
                 logger.error( "Dup user generated: " + person.username() );
                 continue;
@@ -204,6 +212,7 @@ public class ExportDataCreator extends ToolBase {
                 }
 
                 em.createConnection( userEntity, "employer", companyEntity );
+                logger.debug("User {} now employed by {}", userEntity.getName(), companyEntity.getName());
 
             } catch (DuplicateUniquePropertyExistsException e) {
                 logger.error( "Dup company generated {} property={}", company.name(), e.getPropertyName() );
@@ -224,12 +233,17 @@ public class ExportDataCreator extends ToolBase {
                     activity.setContent( "User " + person.username() + " generated a random string "
                             + RandomStringUtils.randomAlphanumeric( 5 ) );
                     em.createItemInCollection( userEntity, "activities", "activity", activity.getProperties() );
+
+                    logger.debug("Created activity {}", activity.getContent());
                 }
 
                 if (users.size() > 10) {
                     for (int j = 0; j < 5; j++) {
                         try {
-                            em.createConnection( userEntity, "associate", users.get( (int) (Math.random() * users.size()) ) );
+                            Entity otherUser = users.get( (int) (Math.random() * users.size()) );
+                            em.createConnection( userEntity, "associate", otherUser );
+                            logger.debug("User {} now associated with user {}",
+                                userEntity.getName(), otherUser.getName());
                         } catch (Exception e) {
                             logger.error( "Error connecting user to user: " + e.getMessage() );
                         }
@@ -242,6 +256,8 @@ public class ExportDataCreator extends ToolBase {
             }
 
         }
+
+        em.refreshIndex();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/main/java/org/apache/usergrid/tools/ToolBase.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/java/org/apache/usergrid/tools/ToolBase.java b/stack/tools/src/main/java/org/apache/usergrid/tools/ToolBase.java
index c9fee00..7fb7015 100644
--- a/stack/tools/src/main/java/org/apache/usergrid/tools/ToolBase.java
+++ b/stack/tools/src/main/java/org/apache/usergrid/tools/ToolBase.java
@@ -135,6 +135,12 @@ public abstract class ToolBase {
         Option hostOption = OptionBuilder.withArgName( "host" ).hasArg()
             .withDescription( "Cassandra host" ).create( "host" );
 
+        Option esHostOption = OptionBuilder.withArgName( "eshost" ).hasArg()
+            .withDescription( "ElasticSearch host" ).create( "eshost" );
+
+        Option esClusterOption = OptionBuilder.withArgName( "escluster" ).hasArg()
+            .withDescription( "ElasticSearch cluster name" ).create( "escluster" );
+
         Option remoteOption = OptionBuilder
             .withDescription( "Use remote Cassandra instance" ).create( "remote" );
 
@@ -144,6 +150,8 @@ public abstract class ToolBase {
 
         Options options = new Options();
         options.addOption( hostOption );
+        options.addOption( esHostOption );
+        options.addOption( esClusterOption );
         options.addOption( remoteOption );
         options.addOption( verbose );
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/main/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/resources/log4j.properties b/stack/tools/src/main/resources/log4j.properties
index cebf385..1b60906 100644
--- a/stack/tools/src/main/resources/log4j.properties
+++ b/stack/tools/src/main/resources/log4j.properties
@@ -27,7 +27,7 @@ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n
 
 log4j.category.org.apache.usergrid.tools=DEBUG
-log4j.category.org.apache.usergrid=WARN
+
 #log4j.logger.org.apache.usergrid.management.cassandra=DEBUG
 #log4j.logger.org.apache.usergrid.tools=INFO
 #log4j.logger.org.apache.usergrid=INFO
@@ -56,4 +56,3 @@ log4j.logger.me.prettyprint.hector.api.beans.AbstractComposite=ERROR
 
 #log4j.logger.org.apache.usergrid.persistence.collection=INFO
 #log4j.logger.org.apache.usergrid.persistence.index=DEBUG
-#log4j.logger.org.apache.usergrid.persistence.index.impl=DEBUG

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/main/resources/toolsApplicationContext.xml
----------------------------------------------------------------------
diff --git a/stack/tools/src/main/resources/toolsApplicationContext.xml b/stack/tools/src/main/resources/toolsApplicationContext.xml
index 048fc58..7e55893 100644
--- a/stack/tools/src/main/resources/toolsApplicationContext.xml
+++ b/stack/tools/src/main/resources/toolsApplicationContext.xml
@@ -1,62 +1,62 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    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.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
-	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:beans="http://www.springframework.org/schema/beans"
-	xmlns:context="http://www.springframework.org/schema/context"
-	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"
-	xmlns:task="http://www.springframework.org/schema/task" xmlns:util="http://www.springframework.org/schema/util"
-	xsi:schemaLocation="http://www.springframework.org/schema/aop
-		http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
-		http://www.springframework.org/schema/beans
-		http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
-		http://www.springframework.org/schema/context
-		http://www.springframework.org/schema/context/spring-context-3.1.xsd
-		http://www.springframework.org/schema/jee
-		http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
-		http://www.springframework.org/schema/lang
-		http://www.springframework.org/schema/lang/spring-lang-3.1.xsd
-		http://www.springframework.org/schema/task
-		http://www.springframework.org/schema/task/spring-task-3.1.xsd
-		http://www.springframework.org/schema/util
-		http://www.springframework.org/schema/util/spring-util-3.1.xsd">
-
-	
-	<bean id="properties"
-		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
-		<property name="singleton" value="true" />
-		<property name="ignoreResourceNotFound" value="true" />
-		<property name="locations">
-			<list>
-				<value>classpath:/usergrid-default.properties</value>
-				<value>classpath:/usergrid.properties</value>
-				<value>file:./usergrid-custom-tools.properties</value>
-			</list>
-		</property>
-	</bean>
-
-	<bean id="propertyPlaceholderConfigurer"
-		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
-		<property name="properties" ref="properties" />
-		<property name="systemPropertiesModeName">
-			<value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
-		</property>
-	</bean>
-
-	<import resource="classpath:/usergrid-rest-context.xml"/>
-</beans>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:beans="http://www.springframework.org/schema/beans"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang"
+	xmlns:task="http://www.springframework.org/schema/task" xmlns:util="http://www.springframework.org/schema/util"
+	xsi:schemaLocation="http://www.springframework.org/schema/aop
+		http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
+		http://www.springframework.org/schema/beans
+		http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+		http://www.springframework.org/schema/context
+		http://www.springframework.org/schema/context/spring-context-3.1.xsd
+		http://www.springframework.org/schema/jee
+		http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
+		http://www.springframework.org/schema/lang
+		http://www.springframework.org/schema/lang/spring-lang-3.1.xsd
+		http://www.springframework.org/schema/task
+		http://www.springframework.org/schema/task/spring-task-3.1.xsd
+		http://www.springframework.org/schema/util
+		http://www.springframework.org/schema/util/spring-util-3.1.xsd">
+
+
+	<bean id="properties"
+		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
+		<property name="singleton" value="true" />
+		<property name="ignoreResourceNotFound" value="true" />
+		<property name="locations">
+			<list>
+				<value>classpath:/usergrid-default.properties</value>
+				<value>classpath:/usergrid.properties</value>
+				<value>file:./usergrid-custom-tools.properties</value>
+			</list>
+		</property>
+	</bean>
+
+	<bean id="propertyPlaceholderConfigurer"
+		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="properties" ref="properties" />
+		<property name="systemPropertiesModeName">
+			<value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
+		</property>
+	</bean>
+
+	<import resource="classpath:/usergrid-rest-context.xml"/>
+</beans>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/test/java/org/apache/usergrid/tools/ExportAppTest.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/test/java/org/apache/usergrid/tools/ExportAppTest.java b/stack/tools/src/test/java/org/apache/usergrid/tools/ExportAppTest.java
index 62d7676..429e700 100644
--- a/stack/tools/src/test/java/org/apache/usergrid/tools/ExportAppTest.java
+++ b/stack/tools/src/test/java/org/apache/usergrid/tools/ExportAppTest.java
@@ -53,25 +53,29 @@ public class ExportAppTest {
 
         String orgName = "org_" + rand;
         String appName = "app_" + rand;
+        String userName = "user_" + rand;
 
         ExportDataCreator creator = new ExportDataCreator();
         creator.startTool( new String[] {
                 "-organization", orgName,
                 "-application", appName,
-                "-host", "localhost:9120",
+                "-username", userName,
+                "-host", "localhost:9160",
                 "-eshost", "localhost:9200",
                 "-escluster", "elasticsearch"
         }, false);
 
         long start = System.currentTimeMillis();
 
+        // export app to a directory
+
         String directoryName = "target/export" + rand;
 
         ExportApp exportApp = new ExportApp();
         exportApp.startTool( new String[] {
                 "-application", orgName + "/" + appName,
                 "-writeThreads", "100",
-                "-host", "localhost:9120",
+                "-host", "localhost:9160",
                 "-eshost", "localhost:9200",
                 "-escluster", "elasticsearch",
                 "-outputDir", directoryName
@@ -79,6 +83,8 @@ public class ExportAppTest {
 
         logger.info( "100 read and 100 write threads = " + (System.currentTimeMillis() - start) / 1000 + "s" );
 
+        // check that we got the expected number of export files
+
         File exportDir = new File(directoryName);
         assertTrue( getFileCount( exportDir, "entities"    ) > 0 );
         assertTrue( getFileCount( exportDir, "connections" ) > 0 );
@@ -89,7 +95,7 @@ public class ExportAppTest {
         exportApp.startTool( new String[] {
                 "-application", orgName + "/" + appName,
                 "-writeThreads", "1",
-                "-host", "localhost:9120",
+                "-host", "localhost:9160",
                 "-eshost", "localhost:9200",
                 "-escluster", "elasticsearch",
                 "-outputDir", directoryName + "1"

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/test/java/org/apache/usergrid/tools/ExportImportAdminsTest.java
----------------------------------------------------------------------
diff --git a/stack/tools/src/test/java/org/apache/usergrid/tools/ExportImportAdminsTest.java b/stack/tools/src/test/java/org/apache/usergrid/tools/ExportImportAdminsTest.java
index 5573279..72fad45 100644
--- a/stack/tools/src/test/java/org/apache/usergrid/tools/ExportImportAdminsTest.java
+++ b/stack/tools/src/test/java/org/apache/usergrid/tools/ExportImportAdminsTest.java
@@ -83,7 +83,7 @@ public class ExportImportAdminsTest {
 
         ExportAdmins exportAdmins = new ExportAdmins();
         exportAdmins.startTool( new String[] {
-            "-host", "localhost:9120",
+            "-host", "localhost:9160",
             "-outputDir", directoryName
         }, false );
 
@@ -216,7 +216,7 @@ public class ExportImportAdminsTest {
 
         ImportAdmins importAdmins = new ImportAdmins();
         importAdmins.startTool( new String[]{
-            "-host", "localhost:9120",
+            "-host", "localhost:9160",
             "-eshost", "localhost:9200",
             "-escuster", "usergrid",
             "-inputDir", tempDir.getAbsolutePath()

http://git-wip-us.apache.org/repos/asf/usergrid/blob/bdf518b4/stack/tools/src/test/resources/usergrid-test-context.xml
----------------------------------------------------------------------
diff --git a/stack/tools/src/test/resources/usergrid-test-context.xml b/stack/tools/src/test/resources/usergrid-test-context.xml
new file mode 100644
index 0000000..da82bd0
--- /dev/null
+++ b/stack/tools/src/test/resources/usergrid-test-context.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:hz="http://www.hazelcast.com/schema/config" xmlns:aop="http://www.springframework.org/schema/aop"
+       xsi:schemaLocation="
+	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
+	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
+	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
+
+    <bean id="properties"
+          class="org.springframework.beans.factory.config.PropertiesFactoryBean">
+        <property name="singleton" value="true" />
+        <property name="ignoreResourceNotFound" value="true" />
+        <property name="locations">
+            <list>
+                <value>classpath:/usergrid-default.properties</value>
+                <value>classpath:/usergrid-test.properties</value>
+                <value>classpath:/usergrid-custom-test.properties</value>
+            </list>
+        </property>
+    </bean>
+
+    <import resource="classpath:/toolsApplicationContext.xml"/>
+
+    <bean id="traceTagManager" class="org.apache.usergrid.persistence.cassandra.util.TraceTagManager">
+        <property name="reportUnattached" value="false"/>
+        <property name="traceEnabled" value="false"/>
+    </bean>
+
+    <bean id="setup" class="org.apache.usergrid.corepersistence.CpSetup">
+
+        <constructor-arg ref="entityManagerFactory"/>
+        <constructor-arg ref="cassandraService"/>
+        <constructor-arg ref="injector"/>
+    </bean>
+
+    <!-- refer to a named schemaManager from the DataControl annotation thusly -->
+    <bean id="coreManager" class="org.apache.usergrid.persistence.CoreSchemaManager">
+        <constructor-arg ref="setup"/>
+        <constructor-arg ref="cassandraCluster"/>
+    </bean>
+
+
+</beans>