You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by am...@apache.org on 2017/07/04 12:16:04 UTC

incubator-unomi git commit: Extensions : Router : Update README

Repository: incubator-unomi
Updated Branches:
  refs/heads/master 7396d1871 -> 061ee51e0


Extensions : Router : Update README


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

Branch: refs/heads/master
Commit: 061ee51e001be5244f105e580de6a64781e29f1d
Parents: 7396d18
Author: Abdelkader Midani <am...@apache.org>
Authored: Tue Jul 4 14:15:31 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Tue Jul 4 14:15:54 2017 +0200

----------------------------------------------------------------------
 extensions/router/README.md                     | 82 ++++++++++++++++----
 .../resources/OSGI-INF/blueprint/blueprint.xml  |  4 +-
 .../main/resources/org.apache.unomi.router.cfg  |  2 +-
 3 files changed, 70 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/061ee51e/extensions/router/README.md
----------------------------------------------------------------------
diff --git a/extensions/router/README.md b/extensions/router/README.md
index 0d382d4..a927075 100644
--- a/extensions/router/README.md
+++ b/extensions/router/README.md
@@ -22,11 +22,20 @@ Unomi Router
 Unomi Router Extension a Karaf Feature that provide an Enterprise Application Integration tool.
 It is optional so you must configure it and install it in Karaf, and can be used for Machine - Machine or Human - Machine integration with Unomi.
 Mainly Unomi Router Extension aim to make it easy to import third party applications/platforms profiles into Unomi.
-This extension is implemented using Apache Camel routes and is using Apache Kafka to buffer import process and make it failsafe. 
+This extension is implemented using Apache Camel routes and can use Apache Kafka to buffer import process and make it failsafe. 
 
 ## Getting started
 1. Configure your Unomi Router:
-    In the `etc/org.apache.unomi.router.cfg` file, you might want to update the following settings:
+    In the `etc/org.apache.unomi.router.cfg` file, first of all you need to decide if you want to use Apache Kafka to support huge amount of imported data
+    or just use the default configuration (Without broker) you might want to update the following settings:
+    
+    Configuration type
+    >`#Configuration Type values {'nobroker', 'kafka'}`
+    
+    >`router.config.type=nobroker`
+    
+    Change to 'kafka' and uncomment settings below to switch your configuration. 
+    
     Kafka settings 
     >`#Kafka settings`
     
@@ -34,26 +43,23 @@ This extension is implemented using Apache Camel routes and is using Apache Kafk
     
     >`kafka.port=9092`
     
-    >`kafka.import.topic=camel-deposit`
+    >`kafka.import.topic=import-deposit`
     
     >`kafka.import.groupId=unomi-import-group`
     
-    Kafka host and port with the topic name and the groupId ti which the topic is assigned
+    >`kafka.export.topic=export-deposit`
+        
+    >`kafka.export.groupId=unomi-export-group`
+    
+    Kafka host and port with the topic name and the groupId to which the topic is assigned
     
     >`#Import One Shot upload directory`
     
-    >`import.oneshot.uploadDir=/tmp/unomi_oneshot_import_configs/`
+    >`import.oneshot.uploadDir=${karaf.data}/tmp/unomi_oneshot_import_configs/`
    
     Path to the folder where unomi should stock file imported for a oneshot processing
     
-
-2. Deploy into Apache Unomi using the following commands from the Apache Karaf shell:
-    ```sh
-    $ feature:repo-add mvn:org.apache.unomi/unomi-router-karaf-feature/${version}/xml/features
-    $ feature:install unomi-router-karaf-feature
-    ```
-    
-3. Send your import configuration:
+2. Send your import configuration:
 
     An import configuration is nothing else than a simple JSON to describe how you want to import your data (Profiles).
     To create/update an import configuration
@@ -64,7 +70,7 @@ This extension is implemented using Apache Camel routes and is using Apache Kafk
          "itemId": "f57f1f86-97bf-4ba0-b4e4-7d5e77e7c0bd",
          "itemType": "importConfig",
          "scope": "integration",
-         "name": "Test Recurrent",
+         "name": "Recurrent import",
          "description": "Just test recurrent import",
          "configType": "recurrent",
          "properties": {
@@ -82,7 +88,7 @@ This extension is implemented using Apache Camel routes and is using Apache Kafk
      }
     ```
     
-    Omit the `itemId` when creating new entry, `configType` can be '**recurrent**' for file/ftp/network path polling or  '**oneshot**' for one time import.
+    Omit the `itemId` when creating new entry, `configType` can be '**recurrent**' for file/ftp/network path polling or  '**oneshot**' for one time import (in case of oneshot configuration, omit the properties.source attribute).
     
     The `properties.source` attribute is an Apache Camel endpoint uri (See http://camel.apache.org/uris.html for more details). Unomi Router is designed to use **File** and **FTP** Camel components. 
     
@@ -106,8 +112,54 @@ This extension is implemented using Apache Camel routes and is using Apache Kafk
     
     First multipart with the name '**importConfigId**' is the importConfiguration to use to import the file, second one with the name '**file**' is the file to import.
     
+    2. Send your export configuration:
+    
+    An export configuration is nothing else than a simple JSON to describe how you want to export your data (Profiles).
+    To create/update an export configuration
+    
+    `POST /cxs/exportConfiguration`
+    ```json
+     {
+         "itemId": "0e59d271-f5a4-497f-8646-0c8c66602278",
+         "itemType": "exportConfig",
+         "scope": "integration",
+         "name": "Test Recurrent",
+         "description": "Just test recurrent export",
+         "configType": "recurrent",
+         "properties": {
+           "destination": "{file/ftp}://{path}?fileName=profiles-export-${date:now:yyyyMMddHHmm}.csv",
+           "period": "1m",
+           "mapping": {
+             "0": "firstName",
+             "1": "lastName",
+             ...
+           }
+         },
+         "active": true
+     }
+    ```
+   Omit the `itemId` when creating new entry, `configType` can be '**recurrent**' for file/ftp/network path polling or  '**oneshot**' for one time export (in case of oneshot configuration, omit the properties.destination 
+   and properties.period attributes).
+       
+   The `properties.destination` attribute is an Apache Camel endpoint uri (See http://camel.apache.org/uris.html for more details). Unomi Router is designed to use **File** and **FTP**/**FTPS**/**SFTP** Camel components.
+    
+   File and ftp URI format:
+    
+   `file://directoryName[?options]`
     
+   See http://camel.apache.org/file2.html for more details.
+       
+   `ftp://[username@]hostname[:port]/directoryname[?options]`
+   `sftp://[username@]hostname[:port]/directoryname[?options]`
+   `ftps://[username@]hostname[:port]/directoryname[?options]`
+   
+   See http://camel.apache.org/ftp.html for more details.
+   
+   Concerning oneshot export configuration using the previously described service will create the export configuration, to return the generated file to download you need to call: 
+   
+   `POST /cxs/importConfiguration/oneshot`
    
+   `Content-Type : application/json`
 
     
     
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/061ee51e/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 7ea578b..29df601 100644
--- a/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/router/router-core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -25,7 +25,7 @@
 
     <cm:property-placeholder persistent-id="org.apache.unomi.router" update-strategy="reload">
         <cm:default-properties>
-            <cm:property name="config.type" value="nobroker"/>
+            <cm:property name="router.config.type" value="nobroker"/>
             <cm:property name="config.allowedEndpoints" value="file,ftp"/>
             <cm:property name="kafka.host" value="localhost"/>
             <cm:property name="kafka.port" value="9092"/>
@@ -90,7 +90,7 @@
 
     <bean id="camelContext" class="org.apache.unomi.router.core.context.RouterCamelContext"
           init-method="initCamelContext" destroy-method="preDestroy">
-        <property name="configType" value="${config.type}"/>
+        <property name="configType" value="${router.config.type}"/>
         <property name="allowedEndpoints" value="${config.allowedEndpoints}"/>
         <property name="uploadDir" value="${import.oneshot.uploadDir}"/>
         <property name="execHistorySize" value="${executionsHistory.size}"/>

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/061ee51e/extensions/router/router-core/src/main/resources/org.apache.unomi.router.cfg
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/resources/org.apache.unomi.router.cfg b/extensions/router/router-core/src/main/resources/org.apache.unomi.router.cfg
index 22d7496..34c80ad 100644
--- a/extensions/router/router-core/src/main/resources/org.apache.unomi.router.cfg
+++ b/extensions/router/router-core/src/main/resources/org.apache.unomi.router.cfg
@@ -16,7 +16,7 @@
 #
 
 #Configuration Type values {'nobroker', 'kafka'}
-import.config.type=nobroker
+router.config.type=nobroker
 
 #Uncomment and update Kafka settings to use Kafka as a broker