Initial OpenECOMP Data Router Core commit
[aai/router-core.git] / README.md
diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..58e7d2f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,102 @@
+# Overview
+This component contains a number of general Apache Camel components which are intended for use by the data-router.
+
+# Maven Dependency
+To make use of the Camel components included in this repository, include the following artifact in your dependencies list:
+
+    <dependency>
+        <groupId>org.openecomp</groupId>
+        <artifactId>router-core</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </dependency>
+  
+# How to Build:
+
+    > mvn clean install
+    
+
+## Rest Client Component
+
+The REST client component provides a simple endpoint for sending HTTP requests to a REST endpoint.
+
+### URI Format
+    ecomp-rest:op[?options]
+    
+Where,
+
+op = One of GET, PUT, POST, or DELETE
+    
+### URI Options
+The following option parameters must be passed in to the component for HTTPS communications:
+
+| Parameter | Description |
+| --------- | ----------- |
+| ecomp-client-cert | Fully qualified path to the client certificate to use for HTTPS communications. |
+| ecomp-keystore | Fully qualified path to the keystore file to use for HTTP communications. |
+| ecomp-keystore-password | Obfuscated password for the keystore. |
+
+### IN Message
+
+#### Ecomp-Rest Header Parameters
+| Header Name | Description |
+| ----------- | ----------- |
+| ecomp-url | The fully qualified URL for the HTTP request to be send.  This is mandatory. |
+
+#### HTTP Header Parameters
+The following parameters, if they are present in the Exchange In Message Headers, will be included as header values 
+in the HTTP request generated by the component:
+
+| HTTP Header Name |
+| ---------------- |
+| X-FromAppId | 
+| X-TransactionId |
+| resourceVersion |
+| ETag |
+| If-Match |
+| If-None-Match |
+| Accept |
+
+#### Message Body
+For HTTP operations that require a content body, the body of the IN message will be used.
+
+### OUT Message
+
+#### Headers
+The following header values are populated on the OUT message:
+
+| ecomp-response-code | The response code produced by the HTTP request. |
+| ecomp-response-message | The response message produced by the HTTP request. |
+
+#### Message Body
+For HTTP operations that produce a content body, the body of the OUT message will be populated with this result.
+
+### Example
+
+The following route file illustrates a simple example which takes console input and invokes the rest client, using the input from the
+console as the content body for the REST request.
+
+
+    <route xmlns="http://camel.apache.org/schema/spring" trace="true">
+        <!-- Take some input from the console. -->
+        <from uri="stream:in?promptMessage=Enter Something: " />
+        <!-- Set the URL that we want to send our REST request to. -->
+        <setHeader headerName="ecomp-url">
+            <constant>https://localhost:9509/services/search-data-service/v1/search/indexes/gdf/documents/88</constant>
+        </setHeader>
+        
+        <!-- Set values for some HTTP headers that we want to populate for our reqeust. -->
+        <setHeader headerName="X-FromAppId">
+            <constant>DataLayer</constant>
+        </setHeader>
+        <setHeader headerName="X-TransactionId">
+            <constant>gdf1</constant>
+        </setHeader>
+        
+        <!-- Invoke the REST client, using our console input as the content body of our request. -->
+        <!-- Note that we provide the paths to the client certificate and keystore, as well as   -->
+        <!-- the obfuscated password for the keystore.                                           -->  
+        <to uri="rest-client:put?ecompClientCert=c:/dev/dl_microservice/target/swm/package/nix/dist_files/opt/app/ajsc-aai-data-layer-microservice/bundleconfig/etc/auth/aai-client-cert.p12&amp;ecompKeystore=c:/dev/dl_microservice/target/swm/package/nix/dist_files/opt/app/ajsc-aai-data-layer-microservice/bundleconfig/etc/auth/tomcat_keystore&amp;ecompKeystorePassword=70c87528c88dcd9f9c2558d30e817868"/>
+  <to uri="stream:out" />
+  
+    </route>