Browse Source

AMBARI-6218 - favorite view example clean-up + doc (Jeff Sposetti via tbeerbower)

tbeerbower 11 years ago
parent
commit
98c9e94d3a

+ 14 - 8
ambari-views/docs/index.md

@@ -313,9 +313,12 @@ For example …
       }
 
 ###Persistence
-#####Application Data
-The application data map is a simple method for view application code to store key/value pairs for a view instance.  

The application data map is different than the view instance properties that are specified to instantiate the view.  The application data map may contain any arbitrary string values that the view needs to persist and may be updated or queried at any point during the life of the view instance by the application logic. 

The view context contains methods to put and get values from the application data map.
-
      /**
+
+The application data map is different than the view instance properties that are specified to instantiate the view.  The application data map may contain any arbitrary string values that the view needs to persist and may be updated or queried at any point during the life of the view instance by the application logic. 
+
+The view context contains methods to put and get values from the application data map.
+
+      /**
        * Save an instance data value for the given key.
        *
        * @param key    the key
@@ -344,17 +347,20 @@ The application data map is a simple method for view application code to store k
        *
        * @param key  the key
        */
-      public void removeInstanceData(String key);

+
 #####DataStore
-The data store allows view instances to save JavaBean entities in the Ambari database.

The view components may acquire a data store instance through the injected view context.  The view context exposes a data store object … 
-
      /**
+The data store allows view instances to save JavaBean entities in the Ambari database.
+
+The view components may acquire a data store instance through the injected view context.  The view context exposes a data store object … 
+
+      /**
        * Get a data store for view persistence entities.
        *
        * @return a data store
        */
       public DataStore getDataStore();
 
-The DataStore object exposes a simple interface for persisting view entities.  The basic CRUD operations are supported …  
+The DataStore object exposes a simple interface for persisting view entities.  The basic CRUD operations are supported …  
 
       /**
        * Save the given entity to persistent storage.  The entity must be declared as an
@@ -822,4 +828,4 @@ So, to access the UI of the above Files view the user would browse to …
 
 
 
-![image](ui.png)
+![image](ui.png)

+ 76 - 0
ambari-views/examples/favorite-view/docs/index.md

@@ -25,3 +25,79 @@ Package
 -----
 All views are packaged as a view archive. The view archive contains the configuration
 file and various optional components of the view.
+
+#####view.xml
+
+The view.xml file is the only required file for a view archive.  The view.xml is the configuration that describes the view and view instances for Ambari.
+The view.xml for this example defines two required parameters for configuring a view instance: what.is.the.question and i.do.not.know. The view also
+defines a single resource that exposes a REST service at the /favorite end point.
+
+    <view>
+      <name>FAVORITE</name>
+      <label>Favorite</label>
+      <version>1.0.0</version>
+      <parameter>
+        <name>what.is.the.question</name>
+        <description>Ask a question</description>
+        <required>true</required>
+      </parameter>
+      <parameter>
+        <name>i.do.not.know</name>
+        <description>If you do not know</description>
+        <required>true</required>
+      </parameter>
+      <resource>
+        <name>favorite</name>
+        <service-class>org.apache.ambari.view.favorite.FavoriteService</service-class>
+      </resource>
+    </view>
+
+Build
+-----
+
+The view can be built as a maven project.
+
+    cd ambari-views/examples/favorite-view
+    mvn clean package
+
+The build will produce the view archive.
+
+    ambari-views/examples/favorite-view/target/favorite-view-1.0.0.jar
+
+Place the view archive on the Ambari Server and restart to deploy.    
+
+    cp favorite-view-1.0.0.jar /var/lib/ambari-server/resources/views/
+    ambari-server restart
+    
+Create View Instance
+-----
+
+With the view deployed, create an instance of the view to be used by Ambari users.
+
+    POST
+    /api/v1/views/FAVORITE/versions/1.0.0/instances/FAVCOLOR
+    
+    [ {
+      "ViewInstanceInfo" : {
+        "label" : "Colors",
+        "description" : "Choose your favorite color",
+        "properties" : {
+          "what.is.the.question" : "What is your favorite color?",
+          "i.do.not.know" : "green"
+        }
+      }
+    } ]
+
+Access the view service end point:
+
+    /api/v1/views/FAVORITE/versions/1.0.0/instances/FAVCOLOR/resources/favorite
+
+To get the favorite color:
+
+    GET
+    /api/v1/views/FAVORITE/versions/1.0.0/instances/FAVCOLOR/resources/favorite/item
+
+To set the favorite color:
+
+    POST
+    /api/v1/views/FAVORITE/versions/1.0.0/instances/FAVCOLOR/resources/favorite/item/blue

+ 2 - 5
ambari-views/examples/favorite-view/src/main/resources/view.xml

@@ -17,8 +17,7 @@
 <view>
   <name>FAVORITE</name>
   <label>Favorite</label>
-  <version>0.1.0</version>
-
+  <version>1.0.0</version>
   <parameter>
     <name>what.is.the.question</name>
     <description>Ask a question</description>
@@ -29,10 +28,8 @@
     <description>If you do not know</description>
     <required>true</required>
   </parameter>
-
   <resource>
     <name>favorite</name>
-    <service-class>org.apache.ambari.view.examples.FavoriteService</service-class>
+    <service-class>org.apache.ambari.view.favorite.FavoriteService</service-class>
   </resource>
-
 </view>