ACCUMULO-1166 improved instamo example unit test

git-svn-id: https://svn.apache.org/repos/asf/accumulo/contrib/instamo-archetype/branches/1.4@1488037 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/README.md b/README.md
index 71a0302..69688f4 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,9 @@
 Checkout this project and run a `mvn install`. This will install the archetype
 to your local repository.
 
-Then, change to a new directory and run `mvn archetype:generate
--DarchetypeGroupId=org.apache.accumulo -DarchetypeArtifactId=instamo-archetype`
+Then, change to a new directory and run 
+
+`mvn archetype:generate -DarchetypeGroupId=org.apache.accumulo -DarchetypeArtifactId=instamo-archetype -DinteractiveMode=false`
+
 and Maven will prompt you to enter the rest of the necessary configuration
 parameters (e.g. groupId, artifactId, version and Java package)
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml
index 594bd9f..6f37215 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -24,13 +24,13 @@
       <defaultValue>org.apache.accumulo.instamo</defaultValue>
     </requiredProperty>
     <requiredProperty key="artifactId">
-      <defaultValue>instamo-example</defaultValue>
+      <defaultValue>instamo</defaultValue>
     </requiredProperty>
     <requiredProperty key="version">
       <defaultValue>1.0-SNAPSHOT</defaultValue>
     </requiredProperty>
     <requiredProperty key="package">
-      <defaultValue>instamo.example</defaultValue>
+      <defaultValue>instamo</defaultValue>
     </requiredProperty>
   </requiredProperties>
 
diff --git a/src/main/resources/archetype-resources/README.md b/src/main/resources/archetype-resources/README.md
index 686203b..929c382 100644
--- a/src/main/resources/archetype-resources/README.md
+++ b/src/main/resources/archetype-resources/README.md
@@ -10,11 +10,12 @@
 installed by following the steps below.
 
 ```
-vim src/main/java/${package}/AccumuloApp.java
+vim src/test/java/${package}/ExampleAccumuloUnitTest.java
 mvn package
 ```
 
-After packing the code, you can run one of the below applications.
+The maven package command will run the unit test.  After packing the code, you
+can also run one of the below applications.
 
 Map Reduce
 ----------
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
index 7db8b8e..a42f616 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -86,7 +86,7 @@
               <arguments>
                   <argument>-classpath</argument>
                   <classpath />
-                  <argument>instamo.example.ShellExample</argument>
+                  <argument>${package}.ShellExample</argument>
               </arguments>
               </configuration>
           </plugin>
diff --git a/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java b/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java
deleted file mode 100644
index bb99aa5..0000000
--- a/src/main/resources/archetype-resources/src/main/java/AccumuloApp.java
+++ /dev/null
@@ -1,62 +0,0 @@
-#set( $symbol_pound = '#' )
-#set( $symbol_dollar = '$' )
-#set( $symbol_escape = '\' )
-/*
- * 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 ${package};
-
-import java.util.Map.Entry;
-
-import org.apache.accumulo.core.Constants;
-import org.apache.accumulo.core.client.BatchWriter;
-import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.Instance;
-import org.apache.accumulo.core.client.Scanner;
-import org.apache.accumulo.core.client.ZooKeeperInstance;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.data.Mutation;
-import org.apache.accumulo.core.data.Value;
-
-public class AccumuloApp {
-  private static final Long MAX_MEMORY = 50 * 1024 * 1024l;
-  private static final Long MAX_LATENCY = 2 * 60 * 1000l;
-  private static final Integer MAX_WRITE_THREADS = 3;
-  
-  public static void run(String instanceName, String zookeepers, byte[] password, String args[]) throws Exception {
-    // edit this method to play with Accumulo
-
-    Instance instance = new ZooKeeperInstance(instanceName, zookeepers);
-    
-    Connector conn = instance.getConnector("root", password);
-    
-    conn.tableOperations().create("foo");
-    
-    BatchWriter bw = conn.createBatchWriter("foo", MAX_MEMORY, MAX_LATENCY, MAX_WRITE_THREADS);
-    Mutation m = new Mutation("r1");
-    m.put("cf1", "cq1", "v1");
-    m.put("cf1", "cq2", "v3");
-    bw.addMutation(m);
-    bw.close();
-    
-    Scanner scanner = conn.createScanner("foo", Constants.NO_AUTHS);
-    for (Entry<Key,Value> entry : scanner) {
-      System.out.println(entry.getKey() + " " + entry.getValue());
-    }
-    
-    conn.tableOperations().delete("foo");
-  }
-}
diff --git a/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java b/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
index a59c5ac..e3c6d90 100644
--- a/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
+++ b/src/main/resources/archetype-resources/src/test/java/ExampleAccumuloUnitTest.java
@@ -19,7 +19,19 @@
  */
 package ${package};
 
+import java.util.Map.Entry;
+
+import org.apache.accumulo.core.Constants;
+import org.apache.accumulo.core.client.BatchWriter;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.Instance;
+import org.apache.accumulo.core.client.Scanner;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
+import org.apache.accumulo.core.data.Key;
+import org.apache.accumulo.core.data.Mutation;
+import org.apache.accumulo.core.data.Value;
 import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -48,7 +60,54 @@
 
   @Test(timeout = 30000)
   public void test() throws Exception {
-    AccumuloApp.run(accumulo.getInstanceName(), accumulo.getZooKeepers(), "superSecret".getBytes(), new String[0]);
+    // edit this method to play with Accumulo
+
+    Instance instance = new ZooKeeperInstance(accumulo.getInstanceName(), accumulo.getZooKeepers());
+    
+    Connector conn = instance.getConnector("root", "superSecret");
+    
+    conn.tableOperations().create("foo");
+    
+    BatchWriter bw = conn.createBatchWriter("foo", 10000000, 60000, 3);
+    Mutation m = new Mutation("1234");
+    m.put("name", "first", "Alice");
+    m.put("friend", "5678", "");
+    m.put("enemy", "5555", "");
+    m.put("enemy", "9999", "");
+    bw.addMutation(m);
+
+    m = new Mutation("5678");
+    m.put("name", "first", "Bob");
+    m.put("friend", "1234", "");
+    m.put("enemy", "5555", "");
+    m.put("enemy", "9999", "");
+    bw.addMutation(m);
+
+    m = new Mutation("9999");
+    m.put("name", "first", "Eve");
+    m.put("friend", "5555", "");
+    m.put("enemy", "1234", "");
+    m.put("enemy", "5678", "");
+    bw.addMutation(m);
+
+    m = new Mutation("5555");
+    m.put("name", "first", "Mallory");
+    m.put("friend", "9999", "");
+    m.put("enemy", "1234", "");
+    m.put("enemy", "5678", "");
+    bw.addMutation(m);
+
+    bw.close();
+    
+    Scanner scanner = conn.createScanner("foo", Constants.NO_AUTHS);
+    for (Entry<Key,Value> entry : scanner) {
+      System.out.println(entry.getKey() + " " + entry.getValue());
+    }
+   
+    //TODO use scanner to find common enemie ids between Alice and Bob, then
+    //use BatchScanner to look up their names
+ 
+    conn.tableOperations().delete("foo");
   }
   
   @AfterClass
@@ -56,5 +115,4 @@
     accumulo.stop();
     folder.delete();
   }
-  
 }