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/06/28 00:32:13 UTC
[1/5] incubator-unomi git commit: [jgitflow-maven-plugin]updating
poms for unomi_102 version
Repository: incubator-unomi
Updated Branches:
refs/heads/master 8860ddffa -> 27a7288e8
[jgitflow-maven-plugin]updating poms for unomi_102 version
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/fe8fbef4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/fe8fbef4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/fe8fbef4
Branch: refs/heads/master
Commit: fe8fbef4aec4211379db9899b5b2191cc594fad7
Parents: d19be22
Author: Abdelkader Midani <am...@apache.org>
Authored: Mon Jun 19 13:20:42 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Mon Jun 26 09:29:14 2017 +0200
----------------------------------------------------------------------
api/pom.xml | 2 +-
extensions/geonames/pom.xml | 2 +-
extensions/geonames/rest/pom.xml | 8 +++---
extensions/geonames/services/pom.xml | 8 +++---
extensions/lists-extension/actions/pom.xml | 8 +++---
extensions/lists-extension/pom.xml | 4 +--
extensions/lists-extension/rest/pom.xml | 8 +++---
extensions/lists-extension/services/pom.xml | 8 +++---
extensions/pom.xml | 2 +-
extensions/privacy-extension/pom.xml | 4 +--
extensions/privacy-extension/rest/pom.xml | 8 +++---
extensions/privacy-extension/services/pom.xml | 8 +++---
extensions/router/pom.xml | 6 ++--
extensions/router/router-api/pom.xml | 6 ++--
extensions/router/router-core/pom.xml | 6 ++--
extensions/router/router-karaf-feature/pom.xml | 6 ++--
extensions/router/router-rest/pom.xml | 6 ++--
extensions/router/router-service/pom.xml | 6 ++--
kar/pom.xml | 32 ++++++++++-----------
lifecycle-watcher/pom.xml | 6 ++--
package/pom.xml | 6 ++--
persistence-elasticsearch/core/pom.xml | 6 ++--
persistence-elasticsearch/pom.xml | 2 +-
persistence-spi/pom.xml | 4 +--
plugins/baseplugin/pom.xml | 6 ++--
plugins/hover-event/pom.xml | 4 +--
plugins/mail/pom.xml | 4 +--
plugins/optimization-test/pom.xml | 2 +-
plugins/past-event/pom.xml | 6 ++--
plugins/pom.xml | 4 +--
plugins/request/pom.xml | 2 +-
plugins/tracked-event/pom.xml | 6 ++--
pom.xml | 2 +-
rest/pom.xml | 6 ++--
samples/login-integration/pom.xml | 4 +--
samples/pom.xml | 2 +-
samples/tweet-button-plugin/pom.xml | 4 +--
services/pom.xml | 6 ++--
wab/pom.xml | 6 ++--
39 files changed, 106 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/api/pom.xml
----------------------------------------------------------------------
diff --git a/api/pom.xml b/api/pom.xml
index 6662b6f..1c8ad15 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-api</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/geonames/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/geonames/pom.xml b/extensions/geonames/pom.xml
index f601a7c..6c24ef8 100644
--- a/extensions/geonames/pom.xml
+++ b/extensions/geonames/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-extensions</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>cxs-geonames</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/geonames/rest/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/geonames/rest/pom.xml b/extensions/geonames/rest/pom.xml
index cec5546..b7938f9 100644
--- a/extensions/geonames/rest/pom.xml
+++ b/extensions/geonames/rest/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-geonames</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -33,14 +33,14 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-geonames-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -76,7 +76,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/geonames/services/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/geonames/services/pom.xml b/extensions/geonames/services/pom.xml
index e1e7310..c04a0cd 100644
--- a/extensions/geonames/services/pom.xml
+++ b/extensions/geonames/services/pom.xml
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-geonames</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -28,20 +28,20 @@
<artifactId>cxs-geonames-services</artifactId>
<name>Apache Unomi :: Extensions :: Geonames Database :: Service</name>
<description>Service implementation for the Apache Unomi Context Server extension that integrates with the Geonames database</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/lists-extension/actions/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/lists-extension/actions/pom.xml b/extensions/lists-extension/actions/pom.xml
index 91c0e8e..1ededc6 100644
--- a/extensions/lists-extension/actions/pom.xml
+++ b/extensions/lists-extension/actions/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>cxs-lists-extension</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -28,21 +28,21 @@
<name>Apache Unomi :: Extensions :: Lists :: Actions</name>
<description>List extension rule actions for the Apache Unomi Context Server</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-lists-extension-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/lists-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/lists-extension/pom.xml b/extensions/lists-extension/pom.xml
index 6542575..2d0bae7 100644
--- a/extensions/lists-extension/pom.xml
+++ b/extensions/lists-extension/pom.xml
@@ -28,12 +28,12 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-extensions</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>cxs-lists-extension</artifactId>
<name>Apache Unomi :: Extensions :: Lists</name>
<description>List extension for the Apache Unomi Context Server</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>pom</packaging>
</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/lists-extension/rest/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/lists-extension/rest/pom.xml b/extensions/lists-extension/rest/pom.xml
index e4e9414..4f6f1ff 100644
--- a/extensions/lists-extension/rest/pom.xml
+++ b/extensions/lists-extension/rest/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>cxs-lists-extension</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -34,14 +34,14 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-lists-extension-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -77,7 +77,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/lists-extension/services/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/lists-extension/services/pom.xml b/extensions/lists-extension/services/pom.xml
index d7ebedb..88837c5 100644
--- a/extensions/lists-extension/services/pom.xml
+++ b/extensions/lists-extension/services/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>cxs-lists-extension</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -28,20 +28,20 @@
<name>Apache Unomi :: Extensions :: Lists :: Service</name>
<description>List extension service implementation for the Apache Unomi Context Server</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/pom.xml b/extensions/pom.xml
index dea4bc2..48a8bc5 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-extensions</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/privacy-extension/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/pom.xml b/extensions/privacy-extension/pom.xml
index 46e4315..297bae2 100644
--- a/extensions/privacy-extension/pom.xml
+++ b/extensions/privacy-extension/pom.xml
@@ -27,12 +27,12 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-extensions</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>cxs-privacy-extension</artifactId>
<name>Apache Unomi :: Extensions :: Privacy</name>
<description>Privacy management extension for the Apache Unomi Context Server</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>pom</packaging>
</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/privacy-extension/rest/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/rest/pom.xml b/extensions/privacy-extension/rest/pom.xml
index 0388a60..a71ab06 100644
--- a/extensions/privacy-extension/rest/pom.xml
+++ b/extensions/privacy-extension/rest/pom.xml
@@ -20,7 +20,7 @@
<parent>
<artifactId>cxs-privacy-extension</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -33,14 +33,14 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-privacy-extension-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -76,7 +76,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/privacy-extension/services/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/privacy-extension/services/pom.xml b/extensions/privacy-extension/services/pom.xml
index 4afcde8..d7e6d45 100644
--- a/extensions/privacy-extension/services/pom.xml
+++ b/extensions/privacy-extension/services/pom.xml
@@ -20,27 +20,27 @@
<parent>
<artifactId>cxs-privacy-extension</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cxs-privacy-extension-services</artifactId>
<name>Apache Unomi :: Extensions :: Privacy :: Services</name>
<description>Privacy management extension service implementation for the Apache Unomi Context Server</description>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>bundle</packaging>
<dependencies>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/pom.xml b/extensions/router/pom.xml
index 225f3d1..933e18d 100644
--- a/extensions/router/pom.xml
+++ b/extensions/router/pom.xml
@@ -14,15 +14,13 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-extensions</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-router</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/router-api/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/pom.xml b/extensions/router/router-api/pom.xml
index 9085a30..9ded1f1 100644
--- a/extensions/router/router-api/pom.xml
+++ b/extensions/router/router-api/pom.xml
@@ -15,13 +15,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-router</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/router-core/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/pom.xml b/extensions/router/router-core/pom.xml
index e20dfc5..95cc6b2 100644
--- a/extensions/router/router-core/pom.xml
+++ b/extensions/router/router-core/pom.xml
@@ -15,13 +15,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-router</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/router-karaf-feature/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-karaf-feature/pom.xml b/extensions/router/router-karaf-feature/pom.xml
index 06c16da..213f607 100644
--- a/extensions/router/router-karaf-feature/pom.xml
+++ b/extensions/router/router-karaf-feature/pom.xml
@@ -15,13 +15,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-router</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/router-rest/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/pom.xml b/extensions/router/router-rest/pom.xml
index e151363..3ba4be5 100644
--- a/extensions/router/router-rest/pom.xml
+++ b/extensions/router/router-rest/pom.xml
@@ -15,13 +15,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-router</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/extensions/router/router-service/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/pom.xml b/extensions/router/router-service/pom.xml
index 750cd1e..4339ed0 100644
--- a/extensions/router/router-service/pom.xml
+++ b/extensions/router/router-service/pom.xml
@@ -15,13 +15,11 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-router</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/kar/pom.xml
----------------------------------------------------------------------
diff --git a/kar/pom.xml b/kar/pom.xml
index 20d4257..8eeede5 100644
--- a/kar/pom.xml
+++ b/kar/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-kar</artifactId>
@@ -34,77 +34,77 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-wab</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins-base</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins-request</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins-mail</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins-optimization-test</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-lists-extension-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-lists-extension-rest</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-lists-extension-actions</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-geonames-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-geonames-rest</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-privacy-extension-services</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>cxs-privacy-extension-rest</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/lifecycle-watcher/pom.xml
----------------------------------------------------------------------
diff --git a/lifecycle-watcher/pom.xml b/lifecycle-watcher/pom.xml
index 419f7bf..0a01846 100644
--- a/lifecycle-watcher/pom.xml
+++ b/lifecycle-watcher/pom.xml
@@ -16,13 +16,11 @@
~ limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>unomi-root</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/package/pom.xml
----------------------------------------------------------------------
diff --git a/package/pom.xml b/package/pom.xml
index da235b2..3dc04d6 100644
--- a/package/pom.xml
+++ b/package/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi</artifactId>
@@ -85,7 +85,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-kar</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<classifier>features</classifier>
<type>xml</type>
<scope>runtime</scope>
@@ -94,7 +94,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-router-karaf-feature</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<classifier>features</classifier>
<type>xml</type>
<scope>runtime</scope>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/persistence-elasticsearch/core/pom.xml
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/pom.xml b/persistence-elasticsearch/core/pom.xml
index eb169ef..f9430d8 100644
--- a/persistence-elasticsearch/core/pom.xml
+++ b/persistence-elasticsearch/core/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
@@ -45,13 +45,13 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/persistence-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/pom.xml b/persistence-elasticsearch/pom.xml
index 70a85ea..c1e674a 100644
--- a/persistence-elasticsearch/pom.xml
+++ b/persistence-elasticsearch/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-persistence-elasticsearch</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/persistence-spi/pom.xml
----------------------------------------------------------------------
diff --git a/persistence-spi/pom.xml b/persistence-spi/pom.xml
index 976f46c..6fb4f9f 100644
--- a/persistence-spi/pom.xml
+++ b/persistence-spi/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-persistence-spi</artifactId>
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/baseplugin/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/pom.xml b/plugins/baseplugin/pom.xml
index 6efb0e5..d2f7658 100644
--- a/plugins/baseplugin/pom.xml
+++ b/plugins/baseplugin/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-base</artifactId>
@@ -56,13 +56,13 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/hover-event/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/hover-event/pom.xml b/plugins/hover-event/pom.xml
index d83c662..d6374af 100644
--- a/plugins/hover-event/pom.xml
+++ b/plugins/hover-event/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-hover-event</artifactId>
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/mail/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/mail/pom.xml b/plugins/mail/pom.xml
index e7dfdf6..4229105 100644
--- a/plugins/mail/pom.xml
+++ b/plugins/mail/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-mail</artifactId>
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/optimization-test/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/optimization-test/pom.xml b/plugins/optimization-test/pom.xml
index 445e457..d579e0b 100644
--- a/plugins/optimization-test/pom.xml
+++ b/plugins/optimization-test/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-optimization-test</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/past-event/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/past-event/pom.xml b/plugins/past-event/pom.xml
index eb37f52..7e07b7d 100644
--- a/plugins/past-event/pom.xml
+++ b/plugins/past-event/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-past-event</artifactId>
@@ -34,13 +34,13 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 5de8cfb..1bbbeab 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins</artifactId>
@@ -44,7 +44,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/request/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/request/pom.xml b/plugins/request/pom.xml
index cd17202..342282a 100644
--- a/plugins/request/pom.xml
+++ b/plugins/request/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-request</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/plugins/tracked-event/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/tracked-event/pom.xml b/plugins/tracked-event/pom.xml
index 68d3fdd..11f29a9 100644
--- a/plugins/tracked-event/pom.xml
+++ b/plugins/tracked-event/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-plugins</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-plugins-tracked-event</artifactId>
@@ -34,13 +34,13 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-elasticsearch-core</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 376cf21..31ff58c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
event tracking server.
</description>
<url>http://unomi.incubator.apache.org</url>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<packaging>pom</packaging>
<licenses>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/rest/pom.xml
----------------------------------------------------------------------
diff --git a/rest/pom.xml b/rest/pom.xml
index f089dc0..37528a1 100644
--- a/rest/pom.xml
+++ b/rest/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-rest</artifactId>
@@ -42,7 +42,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -84,7 +84,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!--<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/samples/login-integration/pom.xml
----------------------------------------------------------------------
diff --git a/samples/login-integration/pom.xml b/samples/login-integration/pom.xml
index 675807f..0392896 100644
--- a/samples/login-integration/pom.xml
+++ b/samples/login-integration/pom.xml
@@ -21,7 +21,7 @@
<parent>
<artifactId>samples</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>login-integration-sample</artifactId>
@@ -33,7 +33,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/samples/pom.xml
----------------------------------------------------------------------
diff --git a/samples/pom.xml b/samples/pom.xml
index 67e0d6f..8f1b84b 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -19,7 +19,7 @@
<parent>
<artifactId>unomi-root</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/samples/tweet-button-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/samples/tweet-button-plugin/pom.xml b/samples/tweet-button-plugin/pom.xml
index c1725d5..1ca1e15 100644
--- a/samples/tweet-button-plugin/pom.xml
+++ b/samples/tweet-button-plugin/pom.xml
@@ -21,7 +21,7 @@
<parent>
<artifactId>samples</artifactId>
<groupId>org.apache.unomi</groupId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>tweet-button-plugin</artifactId>
@@ -33,7 +33,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/services/pom.xml
----------------------------------------------------------------------
diff --git a/services/pom.xml b/services/pom.xml
index 2d5f345..23fdbb6 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-services</artifactId>
@@ -34,7 +34,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
@@ -53,7 +53,7 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/fe8fbef4/wab/pom.xml
----------------------------------------------------------------------
diff --git a/wab/pom.xml b/wab/pom.xml
index cb29c05..468f726 100644
--- a/wab/pom.xml
+++ b/wab/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-root</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
</parent>
<artifactId>unomi-wab</artifactId>
@@ -43,13 +43,13 @@
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-api</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
<artifactId>unomi-persistence-spi</artifactId>
- <version>1.2.0-incubating-SNAPSHOT</version>
+ <version>1.2.0-incubating-unomi_102-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
[5/5] incubator-unomi git commit: Merge branch 'feature-UNOMI-102'
Posted by am...@apache.org.
Merge branch 'feature-UNOMI-102'
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/27a7288e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/27a7288e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/27a7288e
Branch: refs/heads/master
Commit: 27a7288e89bce78fb9add5bd9b8b36c76ef6c133
Parents: 8860ddf cb83301
Author: Abdelkader Midani <am...@apache.org>
Authored: Wed Jun 28 02:31:57 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Wed Jun 28 02:31:57 2017 +0200
----------------------------------------------------------------------
api/pom.xml | 2 +-
.../api/services/ConfigSharingService.java | 32 +++
extensions/geonames/pom.xml | 2 +-
extensions/geonames/rest/pom.xml | 8 +-
extensions/geonames/services/pom.xml | 8 +-
extensions/lists-extension/actions/pom.xml | 8 +-
extensions/lists-extension/pom.xml | 4 +-
extensions/lists-extension/rest/pom.xml | 8 +-
extensions/lists-extension/services/pom.xml | 8 +-
extensions/pom.xml | 2 +-
extensions/privacy-extension/pom.xml | 4 +-
extensions/privacy-extension/rest/pom.xml | 8 +-
extensions/privacy-extension/services/pom.xml | 8 +-
extensions/router/pom.xml | 6 +-
extensions/router/router-api/pom.xml | 6 +-
.../unomi/router/api/ExportConfiguration.java | 45 ++++
.../unomi/router/api/ImportConfiguration.java | 182 +-------------
.../router/api/ImportExportConfiguration.java | 203 ++++++++++++++++
.../unomi/router/api/RouterConstants.java | 44 ++++
.../services/ImportConfigurationService.java | 60 -----
.../ImportExportConfigurationService.java | 61 +++++
extensions/router/router-core/pom.xml | 13 +-
.../unomi/router/core/RouterConstants.java | 41 ----
.../core/config/ConfigSharingServiceImpl.java | 77 ++++++
.../core/context/ProfileImportCamelContext.java | 187 --------------
.../router/core/context/RouterCamelContext.java | 243 +++++++++++++++++++
.../core/processor/ConfigUpdateProcessor.java | 12 +-
.../ImportConfigByFileNameProcessor.java | 8 +-
.../core/processor/LineSplitFailureHandler.java | 2 +-
.../core/processor/LineSplitProcessor.java | 2 +-
.../processor/RouteCompletionProcessor.java | 8 +-
.../core/route/ConfigUpdateRouteBuilder.java | 73 ++++++
.../route/ProfileExportCollectRouteBuilder.java | 81 +++++++
.../ProfileImportAbstractRouteBuilder.java | 2 +-
.../ProfileImportConfigUpdateRouteBuilder.java | 62 -----
.../ProfileImportFromSourceRouteBuilder.java | 104 ++++----
.../route/ProfileImportOneShotRouteBuilder.java | 2 +-
.../route/ProfileImportToUnomiRouteBuilder.java | 2 +-
.../resources/OSGI-INF/blueprint/blueprint.xml | 39 ++-
.../main/resources/org.apache.unomi.router.cfg | 8 +-
extensions/router/router-karaf-feature/pom.xml | 8 +-
extensions/router/router-rest/pom.xml | 6 +-
.../AbstractConfigurationServiceEndpoint.java | 92 +++++++
.../ExportConfigurationServiceEndPoint.java | 86 +++++++
.../ImportConfigurationServiceEndPoint.java | 92 ++-----
.../resources/OSGI-INF/blueprint/blueprint.xml | 46 ++--
extensions/router/router-service/pom.xml | 6 +-
.../AbstractConfigurationServiceImpl.java | 73 ++++++
.../ExportConfigurationServiceImpl.java | 61 +++++
.../ImportConfigurationServiceImpl.java | 56 +----
.../resources/OSGI-INF/blueprint/blueprint.xml | 17 +-
kar/pom.xml | 32 +--
lifecycle-watcher/pom.xml | 6 +-
package/pom.xml | 6 +-
persistence-elasticsearch/core/pom.xml | 6 +-
persistence-elasticsearch/pom.xml | 2 +-
persistence-spi/pom.xml | 4 +-
plugins/baseplugin/pom.xml | 6 +-
plugins/hover-event/pom.xml | 4 +-
plugins/mail/pom.xml | 4 +-
plugins/optimization-test/pom.xml | 2 +-
plugins/past-event/pom.xml | 6 +-
plugins/pom.xml | 4 +-
plugins/request/pom.xml | 2 +-
plugins/tracked-event/pom.xml | 6 +-
pom.xml | 2 +-
rest/pom.xml | 6 +-
samples/login-integration/pom.xml | 4 +-
samples/pom.xml | 2 +-
samples/tweet-button-plugin/pom.xml | 4 +-
services/pom.xml | 6 +-
.../services/ConfigSharingServiceImpl.java | 80 ++++++
.../resources/OSGI-INF/blueprint/blueprint.xml | 11 +
wab/pom.xml | 6 +-
74 files changed, 1560 insertions(+), 869 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/27a7288e/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --cc extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 69fa336,fd36e50..8cd4948
--- a/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@@ -22,20 -22,14 +22,8 @@@
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
- http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
- http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
- <cxf:bus id="cxsServiceBus">
- <cxf:features>
- <cxf:logging/>
- </cxf:features>
- </cxf:bus>
+ http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
- <cm:property-placeholder persistent-id="org.apache.unomi.router" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="import.oneshot.uploadDir" value="/tmp/oneshot_import_configs/"/>
- </cm:default-properties>
- </cm:property-placeholder>
-
- <cm:property-placeholder persistent-id="org.apache.unomi.cluster"
- update-strategy="reload" placeholder-prefix="${cluster.">
- <cm:default-properties>
- <cm:property name="cluster.contextserver.port" value="8181"/>
- </cm:default-properties>
- </cm:property-placeholder>
<bean id="cors-filter" class="org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter"/>
<bean id="jacksonMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>
[2/5] incubator-unomi git commit: UNOMI-102 : Refactor import code to
avoid code duplication with export features
Posted by am...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportToUnomiRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportToUnomiRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportToUnomiRouteBuilder.java
index 94c1cef..d75977b 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportToUnomiRouteBuilder.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportToUnomiRouteBuilder.java
@@ -20,7 +20,7 @@ import org.apache.camel.LoggingLevel;
import org.apache.camel.component.jackson.JacksonDataFormat;
import org.apache.camel.component.kafka.KafkaEndpoint;
import org.apache.camel.model.RouteDefinition;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.core.processor.RouteCompletionProcessor;
import org.apache.unomi.router.core.processor.UnomiStorageProcessor;
import org.apache.unomi.router.core.strategy.ArrayListAggregationStrategy;
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/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 86bcf47..aa39b15 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,9 @@
<cm:property-placeholder persistent-id="org.apache.unomi.router" update-strategy="reload">
<cm:default-properties>
- <cm:property name="import.config.type" value="nobroker"/>
+ <cm:property name="config.type" value="nobroker"/>
+ <cm:property name="config.allowedEndpoints" value="file,ftp"/>
+ <cm:property name="config.internalPort" value="8233"/>
<cm:property name="kafka.host" value="localhost"/>
<cm:property name="kafka.port" value="9092"/>
<cm:property name="kafka.import.topic" value="camel-deposit"/>
@@ -37,6 +39,17 @@
</cm:default-properties>
</cm:property-placeholder>
+ <bean id="configSharingServiceRB" class="org.apache.unomi.router.core.config.ConfigSharingServiceImpl" destroy-method="preDestroy">
+ <property name="oneshotImportUploadDir" value="${import.oneshot.uploadDir}"/>
+ <property name="bundleContext" ref="blueprintBundleContext"/>
+ </bean>
+
+ <service id="configSharingServiceRBE" ref="configSharingServiceRB" auto-export="interfaces">
+ <service-properties>
+ <entry key="bundleDiscriminator" value="ROUTER"/>
+ </service-properties>
+ </service>
+
<bean id="unomiStorageProcessor" class="org.apache.unomi.router.core.processor.UnomiStorageProcessor">
<property name="profileImportService" ref="profileImportService"/>
</bean>
@@ -59,6 +72,11 @@
<property name="library" value="Jackson"/>
</bean>
+ <bean id="jacksonDataFormatExportConfig" class="org.apache.camel.model.dataformat.JsonDataFormat">
+ <property name="unmarshalType" value="org.apache.unomi.router.api.ExportConfiguration"/>
+ <property name="library" value="Jackson"/>
+ </bean>
+
<bean id="jacksonDataFormatImportLineError" class="org.apache.camel.model.dataformat.JsonDataFormat">
<property name="unmarshalType" value="org.apache.unomi.router.api.ImportLineError"/>
<property name="library" value="Jackson"/>
@@ -67,7 +85,7 @@
<bean class="org.apache.camel.component.servlet.osgi.OsgiServletRegisterer"
init-method="register"
destroy-method="unregister">
- <property name="alias" value="/importConfigAdmin"/>
+ <property name="alias" value="/configUpdate"/>
<property name="httpService" ref="httpService"/>
<property name="servlet" ref="camelServlet"/>
</bean>
@@ -75,9 +93,10 @@
<bean id="camelServlet" class="org.apache.camel.component.servlet.CamelHttpTransportServlet"/>
- <bean id="camelContext" class="org.apache.unomi.router.core.context.ProfileImportCamelContext"
+ <bean id="camelContext" class="org.apache.unomi.router.core.context.RouterCamelContext"
init-method="initCamelContext" destroy-method="preDestroy">
- <property name="configType" value="${import.config.type}"/>
+ <property name="configType" value="${config.type}"/>
+ <property name="allowedEndpoints" value="${config.allowedEndpoints}"/>
<property name="kafkaProps">
<map>
<entry key="kafkaHost" value="${kafka.host}"/>
@@ -93,20 +112,24 @@
<property name="routeCompletionProcessor" ref="routeCompletionProcessor"/>
<property name="importConfigByFileNameProcessor" ref="importConfigByFileNameProcessor"/>
<property name="importConfigurationService" ref="importConfigurationService"/>
+ <property name="exportConfigurationService" ref="exportConfigurationService"/>
+ <property name="persistenceService" ref="persistenceService"/>
<property name="jacksonDataFormat" ref="jacksonDataFormat"/>
<property name="bundleContext" ref="blueprintBundleContext"/>
</bean>
<camel:camelContext id="httpEndpoint" xmlns="http://camel.apache.org/schema/blueprint">
- <camel:routeBuilder ref="profileImportConfigUpdateRouteBuilder" />
+ <camel:routeBuilder ref="configUpdateRouteBuilder" />
</camel:camelContext>
- <bean id="profileImportConfigUpdateRouteBuilder" class="org.apache.unomi.router.core.route.ProfileImportConfigUpdateRouteBuilder">
- <property name="profileImportCamelContext" ref="camelContext"/>
+ <bean id="configUpdateRouteBuilder" class="org.apache.unomi.router.core.route.ConfigUpdateRouteBuilder">
+ <property name="routerCamelContext" ref="camelContext"/>
</bean>
<reference id="httpService" interface="org.osgi.service.http.HttpService"/>
<reference id="profileImportService" interface="org.apache.unomi.router.api.services.ProfileImportService"/>
- <reference id="importConfigurationService" interface="org.apache.unomi.router.api.services.ImportConfigurationService"/>
+ <reference id="persistenceService" interface="org.apache.unomi.persistence.spi.PersistenceService"/>
+ <reference id="importConfigurationService" interface="org.apache.unomi.router.api.services.ImportExportConfigurationService" filter="(configDiscriminator=IMPORT)"/>
+ <reference id="exportConfigurationService" interface="org.apache.unomi.router.api.services.ImportExportConfigurationService" filter="(configDiscriminator=EXPORT)"/>
</blueprint>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/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 e301b58..2aa385f 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
@@ -32,4 +32,10 @@ import.config.type=nobroker
import.oneshot.uploadDir=${karaf.data}/tmp/unomi_oneshot_import_configs/
#Import executions history size
-import.executionsHistory.size=5
\ No newline at end of file
+import.executionsHistory.size=5
+
+#Allowed source endpoints
+config.allowedEndpoints=file,ftp
+
+#Internal Camel REST services port (Not public - DO NOT OPEN TO PUBLIC)
+config.internalPort=8233
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-karaf-feature/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-karaf-feature/pom.xml b/extensions/router/router-karaf-feature/pom.xml
index 213f607..0bb1b11 100644
--- a/extensions/router/router-karaf-feature/pom.xml
+++ b/extensions/router/router-karaf-feature/pom.xml
@@ -147,7 +147,7 @@
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<configuration>
- <startLevel>90</startLevel>
+ <startLevel>77</startLevel>
</configuration>
</plugin>
</plugins>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
new file mode 100644
index 0000000..195cd68
--- /dev/null
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/AbstractConfigurationServiceEndpoint.java
@@ -0,0 +1,92 @@
+/*
+ * 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 org.apache.unomi.router.rest;
+
+import org.apache.unomi.api.services.ConfigSharingService;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+
+import javax.jws.WebMethod;
+import javax.ws.rs.*;
+import javax.ws.rs.core.MediaType;
+import java.util.List;
+
+/**
+ * Created by amidani on 26/06/2017.
+ */
+public abstract class AbstractConfigurationServiceEndpoint<T> {
+
+ protected ImportExportConfigurationService<T> configurationService;
+ protected ConfigSharingService routerConfigSharingService;
+ protected ConfigSharingService clusterConfigSharingService;
+
+ @WebMethod(exclude = true)
+ public void setRouterConfigSharingService(ConfigSharingService routerConfigSharingService) {
+ this.routerConfigSharingService = routerConfigSharingService;
+ }
+
+ @WebMethod(exclude = true)
+ public void setClusterConfigSharingService(ConfigSharingService clusterConfigSharingService) {
+ this.clusterConfigSharingService = clusterConfigSharingService;
+ }
+
+ /**
+ * Retrieves all the configurations.
+ *
+ * @return all the configurations.
+ */
+ @GET
+ @Path("/")
+ @Produces(MediaType.APPLICATION_JSON)
+ @Consumes(MediaType.APPLICATION_JSON)
+ public List<T> getConfigurations() {
+ return this.configurationService.getAll();
+ }
+
+ @POST
+ @Path("/")
+ @Produces(MediaType.APPLICATION_JSON)
+ @Consumes(MediaType.APPLICATION_JSON)
+ public abstract T saveConfiguration(T configuration);
+
+ /**
+ * Retrieves a configuration by id.
+ *
+ * @return the configuration that matches the given id.
+ */
+ @GET
+ @Path("/{configId}")
+ @Produces(MediaType.APPLICATION_JSON)
+ @Consumes(MediaType.APPLICATION_JSON)
+ public T getConfiguration(@PathParam("configId") String configId) {
+ return this.configurationService.load(configId);
+ }
+
+ /**
+ * Delete a configuration by id.
+ *
+ * @return the deleted configuration.
+ */
+ @DELETE
+ @Path("/{configId}")
+ @Produces(MediaType.APPLICATION_JSON)
+ @Consumes(MediaType.APPLICATION_JSON)
+ public void deleteImportConfiguration(@PathParam("configId") String configId) {
+ this.configurationService.delete(configId);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
new file mode 100644
index 0000000..d5130ba
--- /dev/null
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ExportConfigurationServiceEndPoint.java
@@ -0,0 +1,86 @@
+/*
+ * 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 org.apache.unomi.router.rest;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.ws.rs.core.MediaType;
+import java.io.IOException;
+
+/**
+ * A JAX-RS endpoint to manage {@link ExportConfiguration}s.
+ */
+@WebService
+@CrossOriginResourceSharing(
+ allowAllOrigins = true,
+ allowCredentials = true
+)
+public class ExportConfigurationServiceEndPoint extends AbstractConfigurationServiceEndpoint<ExportConfiguration> {
+
+ private static final Logger logger = LoggerFactory.getLogger(ExportConfigurationServiceEndPoint.class.getName());
+
+ public ExportConfigurationServiceEndPoint() {
+ logger.info("Initializing export configuration service endpoint...");
+ }
+
+ @WebMethod(exclude = true)
+ public void setExportConfigurationService(ImportExportConfigurationService<ExportConfiguration> exportConfigurationService) {
+ configurationService = exportConfigurationService;
+ }
+
+ /**
+ * Save the given export configuration.
+ *
+ * @return the export configuration saved.
+ */
+ public ExportConfiguration saveConfiguration(ExportConfiguration exportConfiguration) {
+ ExportConfiguration exportConfigSaved = configurationService.save(exportConfiguration);
+ if (RouterConstants.IMPORT_EXPORT_CONFIG_TYPE_RECURRENT.equals(exportConfigSaved.getConfigType())) {
+ CloseableHttpClient httpClient = HttpClients.createDefault();
+ try {
+ HttpPut httpPut = new HttpPut("http://localhost:" + clusterConfigSharingService.getInternalServerPort() + "/configUpdate/exportConfigAdmin");
+ StringEntity input = new StringEntity(new ObjectMapper().writeValueAsString(exportConfigSaved));
+ input.setContentType(MediaType.APPLICATION_JSON);
+ httpPut.setEntity(input);
+
+ HttpResponse response = httpClient.execute(httpPut);
+
+ if (response.getStatusLine().getStatusCode() != 200) {
+ throw new RuntimeException("Failed : HTTP error code : "
+ + response.getStatusLine().getStatusCode());
+ }
+ } catch (IOException e) {
+ logger.warn("Unable to update Camel route [{}]", exportConfiguration.getItemId());
+ }
+ }
+
+ return exportConfigSaved;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
index 42670b2..e05167f 100644
--- a/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
+++ b/extensions/router/router-rest/src/main/java/org/apache/unomi/router/rest/ImportConfigurationServiceEndPoint.java
@@ -17,8 +17,8 @@
package org.apache.unomi.router.rest;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.apache.cxf.jaxrs.ext.multipart.Multipart;
import org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPut;
@@ -26,113 +26,56 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
+import org.apache.unomi.router.api.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.jws.WebMethod;
import javax.jws.WebService;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
-import java.util.List;
/**
- * A JAX-RS endpoint to manage {@link org.apache.unomi.router.api.ImportConfiguration}s.
+ * A JAX-RS endpoint to manage {@link ImportConfiguration}s.
*/
@WebService
@CrossOriginResourceSharing(
allowAllOrigins = true,
allowCredentials = true
)
-public class ImportConfigurationServiceEndPoint {
+public class ImportConfigurationServiceEndPoint extends AbstractConfigurationServiceEndpoint<ImportConfiguration> {
private static final Logger logger = LoggerFactory.getLogger(ImportConfigurationServiceEndPoint.class.getName());
- private final String CONFIG_TYPE_RECURRENT = "recurrent";
- private ImportConfigurationService importConfigurationService;
- private String uploadDir;
- private String serverPort;
-
- public ImportConfigurationServiceEndPoint () {
+ public ImportConfigurationServiceEndPoint() {
logger.info("Initializing import configuration service endpoint...");
}
@WebMethod(exclude = true)
- public void setImportConfigurationService(ImportConfigurationService importConfigurationService) {
- this.importConfigurationService = importConfigurationService;
- }
-
- @WebMethod(exclude = true)
- public void setUploadDir(String uploadDir) {
- this.uploadDir = uploadDir;
- }
-
- @WebMethod(exclude = true)
- public void setServerPort(String serverPort) {
- this.serverPort = serverPort;
- }
-
- /**
- * Retrieves all the import configurations.
- *
- * @return all the import configurations.
- */
- @GET
- @Path("/")
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public List<ImportConfiguration> getImportConfigurations() {
- return importConfigurationService.getImportConfigurations();
- }
-
- /**
- * Retrieves an import configuration by id.
- *
- * @return the import configuration that matches the given id.
- */
- @GET
- @Path("/{configId}")
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public ImportConfiguration getImportConfiguration(@PathParam("configId") String configId) {
- return importConfigurationService.load(configId);
- }
-
- /**
- * Delete an import configuration by id.
- *
- * @return the deleted import configuration.
- */
- @DELETE
- @Path("/{configId}")
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public void deleteImportConfiguration(@PathParam("configId") String configId) {
- importConfigurationService.delete(configId);
+ public void setImportConfigurationService(ImportExportConfigurationService<ImportConfiguration> importConfigurationService) {
+ configurationService = importConfigurationService;
}
-
-
/**
* Save the given import configuration.
*
* @return the import configuration saved.
*/
- @POST
- @Path("/")
- @Produces(MediaType.APPLICATION_JSON)
- @Consumes(MediaType.APPLICATION_JSON)
- public ImportConfiguration saveImportConfiguration(ImportConfiguration importConfiguration) {
- ImportConfiguration importConfigSaved = importConfigurationService.save(importConfiguration);
- if(CONFIG_TYPE_RECURRENT.equals(importConfigSaved.getConfigType())) {
+ public ImportConfiguration saveConfiguration(ImportConfiguration importConfiguration) {
+ ImportConfiguration importConfigSaved = configurationService.save(importConfiguration);
+ if (RouterConstants.IMPORT_EXPORT_CONFIG_TYPE_RECURRENT.equals(importConfigSaved.getConfigType())) {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
- HttpPut httpPut = new HttpPut("http://localhost:"+serverPort+"/importConfigAdmin/");
+ HttpPut httpPut = new HttpPut("http://localhost:" + clusterConfigSharingService.getInternalServerPort() + "/configUpdate/importConfigAdmin");
StringEntity input = new StringEntity(new ObjectMapper().writeValueAsString(importConfigSaved));
input.setContentType(MediaType.APPLICATION_JSON);
httpPut.setEntity(input);
@@ -153,6 +96,7 @@ public class ImportConfigurationServiceEndPoint {
/**
* Save/Update the given import configuration.
* Prepare the file to be processed with Camel routes
+ *
* @return OK / NOK Http Code.
*/
@POST
@@ -161,7 +105,7 @@ public class ImportConfigurationServiceEndPoint {
@Produces(MediaType.APPLICATION_JSON)
public Response processOneshotImportConfigurationCSV(@Multipart(value = "importConfigId") String importConfigId, @Multipart(value = "file") Attachment file) {
try {
- java.nio.file.Path path = Paths.get(uploadDir+importConfigId+".csv");
+ java.nio.file.Path path = Paths.get(routerConfigSharingService.getOneshotImportUploadDir() + importConfigId + ".csv");
Files.deleteIfExists(path);
InputStream in = file.getObject(InputStream.class);
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 8728a7f..fd36e50 100644
--- a/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/router/router-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -24,18 +24,6 @@
http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
- <cm:property-placeholder persistent-id="org.apache.unomi.router" update-strategy="reload">
- <cm:default-properties>
- <cm:property name="import.oneshot.uploadDir" value="/tmp/oneshot_import_configs/"/>
- </cm:default-properties>
- </cm:property-placeholder>
-
- <cm:property-placeholder persistent-id="org.apache.unomi.cluster"
- update-strategy="reload" placeholder-prefix="${cluster.">
- <cm:default-properties>
- <cm:property name="cluster.contextserver.port" value="8181"/>
- </cm:default-properties>
- </cm:property-placeholder>
<cxf:bus id="cxsServiceBus">
<cxf:features>
@@ -69,12 +57,40 @@
</jaxrs:serviceBeans>
</jaxrs:server>
- <reference id="importConfigurationService" interface="org.apache.unomi.router.api.services.ImportConfigurationService"/>
+ <jaxrs:server address="/exportConfiguration" id="restExportConfigurationService">
+ <jaxrs:providers>
+ <ref component-id="json-provider"/>
+ <ref component-id="cors-filter"/>
+ <ref component-id="jaas-filter"/>
+ </jaxrs:providers>
+
+ <jaxrs:serviceBeans>
+ <ref component-id="exportConfigurationServiceEndPoint"/>
+ </jaxrs:serviceBeans>
+ </jaxrs:server>
+
+ <reference id="importConfigurationService" interface="org.apache.unomi.router.api.services.ImportExportConfigurationService"
+ filter="(configDiscriminator=IMPORT)"/>
+
+ <reference id="exportConfigurationService" interface="org.apache.unomi.router.api.services.ImportExportConfigurationService"
+ filter="(configDiscriminator=EXPORT)"/>
+
+ <reference id="configSharingServiceRouter" interface="org.apache.unomi.api.services.ConfigSharingService"
+ filter="(bundleDiscriminator=ROUTER)"/>
+
+ <reference id="configSharingServiceCluster" interface="org.apache.unomi.api.services.ConfigSharingService"
+ filter="(bundleDiscriminator=SERVICES)"/>
<bean id="importConfigurationServiceEndPoint" class="org.apache.unomi.router.rest.ImportConfigurationServiceEndPoint">
<property name="importConfigurationService" ref="importConfigurationService"/>
- <property name="uploadDir" value="${import.oneshot.uploadDir}"/>
- <property name="serverPort" value="${cluster.contextserver.port}"/>
+ <property name="routerConfigSharingService" ref="configSharingServiceRouter"/>
+ <property name="clusterConfigSharingService" ref="configSharingServiceCluster"/>
+ </bean>
+
+ <bean id="exportConfigurationServiceEndPoint" class="org.apache.unomi.router.rest.ExportConfigurationServiceEndPoint">
+ <property name="exportConfigurationService" ref="exportConfigurationService"/>
+ <property name="routerConfigSharingService" ref="configSharingServiceRouter"/>
+ <property name="clusterConfigSharingService" ref="configSharingServiceCluster"/>
</bean>
</blueprint>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
new file mode 100644
index 0000000..3b87e85
--- /dev/null
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/AbstractConfigurationServiceImpl.java
@@ -0,0 +1,73 @@
+/*
+ * 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 org.apache.unomi.router.services;
+
+import org.apache.unomi.persistence.spi.PersistenceService;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by amidani on 26/06/2017.
+ */
+public class AbstractConfigurationServiceImpl implements SynchronousBundleListener {
+
+ private static final Logger logger = LoggerFactory.getLogger(AbstractConfigurationServiceImpl.class.getName());
+
+ protected BundleContext bundleContext;
+ protected PersistenceService persistenceService;
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public void setPersistenceService(PersistenceService persistenceService) {
+ this.persistenceService = persistenceService;
+ }
+
+ public void postConstruct() {
+ logger.debug("postConstruct {" + bundleContext.getBundle() + "}");
+
+ processBundleStartup(bundleContext);
+ for (Bundle bundle : bundleContext.getBundles()) {
+ if (bundle.getBundleContext() != null) {
+ processBundleStartup(bundle.getBundleContext());
+ }
+ }
+ bundleContext.addBundleListener(this);
+ logger.info("Configuration service initialized.");
+ }
+
+ public void preDestroy() {
+ bundleContext.removeBundleListener(this);
+ logger.info("Configuration service shutdown.");
+ }
+
+ @Override
+ public void bundleChanged(BundleEvent bundleEvent) {
+
+ }
+
+ private void processBundleStartup(BundleContext bundleContext) {
+ if (bundleContext == null) {
+ return;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
new file mode 100644
index 0000000..762a65f
--- /dev/null
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ExportConfigurationServiceImpl.java
@@ -0,0 +1,61 @@
+/*
+ * 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 org.apache.unomi.router.services;
+
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * Created by amidani on 28/04/2017.
+ */
+public class ExportConfigurationServiceImpl extends AbstractConfigurationServiceImpl implements ImportExportConfigurationService<ExportConfiguration> {
+
+ private static final Logger logger = LoggerFactory.getLogger(ExportConfigurationServiceImpl.class.getName());
+
+ public ExportConfigurationServiceImpl() {
+ logger.info("Initializing export configuration service...");
+ }
+
+ @Override
+ public List<ExportConfiguration> getAll() {
+ return persistenceService.getAllItems(ExportConfiguration.class);
+ }
+
+ @Override
+ public ExportConfiguration load(String configId) {
+ return persistenceService.load(configId, ExportConfiguration.class);
+ }
+
+ @Override
+ public ExportConfiguration save(ExportConfiguration exportConfiguration) {
+ if (exportConfiguration.getItemId() == null) {
+ exportConfiguration.setItemId(UUID.randomUUID().toString());
+ }
+ persistenceService.save(exportConfiguration);
+ return persistenceService.load(exportConfiguration.getItemId(), ExportConfiguration.class);
+ }
+
+ @Override
+ public void delete(String configId) {
+ persistenceService.remove(configId, ExportConfiguration.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
index 5283cce..5275919 100644
--- a/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
+++ b/extensions/router/router-service/src/main/java/org/apache/unomi/router/services/ImportConfigurationServiceImpl.java
@@ -14,16 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.unomi.router.services;
import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
-import org.apache.unomi.persistence.spi.PersistenceService;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.SynchronousBundleListener;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,55 +27,16 @@ import java.util.UUID;
/**
* Created by amidani on 28/04/2017.
*/
-public class ImportConfigurationServiceImpl implements ImportConfigurationService,SynchronousBundleListener {
+public class ImportConfigurationServiceImpl extends AbstractConfigurationServiceImpl implements ImportExportConfigurationService<ImportConfiguration> {
private static final Logger logger = LoggerFactory.getLogger(ImportConfigurationServiceImpl.class.getName());
- private BundleContext bundleContext;
- private PersistenceService persistenceService;
-
public ImportConfigurationServiceImpl() {
logger.info("Initializing import configuration service...");
}
- public void setBundleContext(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- public void setPersistenceService(PersistenceService persistenceService) {
- this.persistenceService = persistenceService;
- }
-
- public void postConstruct() {
- logger.debug("postConstruct {" + bundleContext.getBundle() + "}");
-
- processBundleStartup(bundleContext);
- for (Bundle bundle : bundleContext.getBundles()) {
- if (bundle.getBundleContext() != null) {
- processBundleStartup(bundle.getBundleContext());
- }
- }
- bundleContext.addBundleListener(this);
- logger.info("Import configuration service initialized.");
- }
-
- public void preDestroy() {
- bundleContext.removeBundleListener(this);
- logger.info("Import configuration service shutdown.");
- }
-
- private void processBundleStartup(BundleContext bundleContext) {
- if (bundleContext == null) {
- return;
- }
- }
-
- private void processBundleStop(BundleContext bundleContext) {
- }
-
-
@Override
- public List<ImportConfiguration> getImportConfigurations() {
+ public List<ImportConfiguration> getAll() {
return persistenceService.getAllItems(ImportConfiguration.class);
}
@@ -103,9 +58,4 @@ public class ImportConfigurationServiceImpl implements ImportConfigurationServic
public void delete(String configId) {
persistenceService.remove(configId, ImportConfiguration.class);
}
-
- @Override
- public void bundleChanged(BundleEvent bundleEvent) {
-
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-service/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-service/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/extensions/router/router-service/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 61200f2..ac66f41 100644
--- a/extensions/router/router-service/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/extensions/router/router-service/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -27,7 +27,22 @@
<property name="persistenceService" ref="persistenceService"/>
<property name="bundleContext" ref="blueprintBundleContext"/>
</bean>
- <service id="importConfigurationService" ref="importConfigurationServiceImpl" auto-export="interfaces"/>
+ <service id="importConfigurationService" ref="importConfigurationServiceImpl" auto-export="interfaces">
+ <service-properties>
+ <entry key="configDiscriminator" value="IMPORT"/>
+ </service-properties>
+ </service>
+
+ <bean id="exportConfigurationServiceImpl" class="org.apache.unomi.router.services.ExportConfigurationServiceImpl"
+ init-method="postConstruct" destroy-method="preDestroy">
+ <property name="persistenceService" ref="persistenceService"/>
+ <property name="bundleContext" ref="blueprintBundleContext"/>
+ </bean>
+ <service id="exportConfigurationService" ref="exportConfigurationServiceImpl" auto-export="interfaces">
+ <service-properties>
+ <entry key="configDiscriminator" value="EXPORT"/>
+ </service-properties>
+ </service>
<bean id="profileImportServiceImpl" class="org.apache.unomi.router.services.ProfileImportServiceImpl"
init-method="postConstruct" destroy-method="preDestroy">
[4/5] incubator-unomi git commit: UNOMI-106 : Expose a service to
share cfg properties with other bundles
Posted by am...@apache.org.
UNOMI-106 : Expose a service to share cfg properties with other bundles
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/cb83301f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/cb83301f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/cb83301f
Branch: refs/heads/master
Commit: cb83301ffdaa6fb0fef9969fbaf4582c0d1df2b4
Parents: c62f91d4
Author: Abdelkader Midani <am...@apache.org>
Authored: Wed Jun 28 02:31:06 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Wed Jun 28 02:31:06 2017 +0200
----------------------------------------------------------------------
.../services/ConfigSharingServiceImpl.java | 80 ++++++++++++++++++++
.../resources/OSGI-INF/blueprint/blueprint.xml | 11 +++
2 files changed, 91 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb83301f/services/src/main/java/org/apache/unomi/services/services/ConfigSharingServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/ConfigSharingServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/ConfigSharingServiceImpl.java
new file mode 100644
index 0000000..2b7da8a
--- /dev/null
+++ b/services/src/main/java/org/apache/unomi/services/services/ConfigSharingServiceImpl.java
@@ -0,0 +1,80 @@
+/*
+ * 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 org.apache.unomi.services.services;
+
+import org.apache.unomi.api.services.ConfigSharingService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by amidani on 27/06/2017.
+ */
+public class ConfigSharingServiceImpl implements ConfigSharingService, SynchronousBundleListener {
+
+ private static final Logger logger = LoggerFactory.getLogger(ConfigSharingServiceImpl.class);
+
+ private String internalServerPort;
+
+ private BundleContext bundleContext;
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ @Override
+ public String getInternalServerPort() {
+ return this.internalServerPort;
+ }
+
+ @Override
+ public void setInternalServerPort(String internalServerPort) {
+ this.internalServerPort = internalServerPort;
+ }
+
+ /**
+ * Methods below not used in services bundle implementation of the ConfigSharingService
+ **/
+
+ @Override
+ public String getOneshotImportUploadDir() {
+ return null;
+ }
+
+ @Override
+ public void setOneshotImportUploadDir(String oneshotImportUploadDir) {
+ }
+
+ public void preDestroy() throws Exception {
+ bundleContext.removeBundleListener(this);
+ logger.info("Config sharing service for Service is shutdown.");
+ }
+
+ private void processBundleStartup(BundleContext bundleContext) {
+ if (bundleContext == null) {
+ return;
+ }
+ }
+
+ @Override
+ public void bundleChanged(BundleEvent bundleEvent) {
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/cb83301f/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index fa2d3dd..b6c4f6c 100644
--- a/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/services/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -235,4 +235,15 @@
</bean>
</service>
+ <bean id="configSharingServiceCB" class="org.apache.unomi.services.services.ConfigSharingServiceImpl" destroy-method="preDestroy">
+ <property name="internalServerPort" value="${cluster.contextserver.port}"/>
+ <property name="bundleContext" ref="blueprintBundleContext"/>
+ </bean>
+
+ <service id="configSharingServiceCBE" ref="configSharingServiceCB" auto-export="interfaces">
+ <service-properties>
+ <entry key="bundleDiscriminator" value="SERVICES"/>
+ </service-properties>
+ </service>
+
</blueprint>
[3/5] incubator-unomi git commit: UNOMI-102 : Refactor import code to
avoid code duplication with export features
Posted by am...@apache.org.
UNOMI-102 : Refactor import code to avoid code duplication with export features
Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/c62f91d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/c62f91d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/c62f91d4
Branch: refs/heads/master
Commit: c62f91d4bec9ef723f9af4e50c7506cb88ec02d9
Parents: fe8fbef
Author: Abdelkader Midani <am...@apache.org>
Authored: Wed Jun 28 02:28:17 2017 +0200
Committer: Abdelkader Midani <am...@apache.org>
Committed: Wed Jun 28 02:28:17 2017 +0200
----------------------------------------------------------------------
.../api/services/ConfigSharingService.java | 32 +++
.../unomi/router/api/ExportConfiguration.java | 45 ++++
.../unomi/router/api/ImportConfiguration.java | 182 +-------------
.../router/api/ImportExportConfiguration.java | 203 ++++++++++++++++
.../unomi/router/api/RouterConstants.java | 44 ++++
.../services/ImportConfigurationService.java | 60 -----
.../ImportExportConfigurationService.java | 61 +++++
extensions/router/router-core/pom.xml | 7 +
.../unomi/router/core/RouterConstants.java | 41 ----
.../core/config/ConfigSharingServiceImpl.java | 77 ++++++
.../core/context/ProfileImportCamelContext.java | 187 --------------
.../router/core/context/RouterCamelContext.java | 243 +++++++++++++++++++
.../core/processor/ConfigUpdateProcessor.java | 12 +-
.../ImportConfigByFileNameProcessor.java | 8 +-
.../core/processor/LineSplitFailureHandler.java | 2 +-
.../core/processor/LineSplitProcessor.java | 2 +-
.../processor/RouteCompletionProcessor.java | 8 +-
.../core/route/ConfigUpdateRouteBuilder.java | 73 ++++++
.../route/ProfileExportCollectRouteBuilder.java | 81 +++++++
.../ProfileImportAbstractRouteBuilder.java | 2 +-
.../ProfileImportConfigUpdateRouteBuilder.java | 62 -----
.../ProfileImportFromSourceRouteBuilder.java | 104 ++++----
.../route/ProfileImportOneShotRouteBuilder.java | 2 +-
.../route/ProfileImportToUnomiRouteBuilder.java | 2 +-
.../resources/OSGI-INF/blueprint/blueprint.xml | 39 ++-
.../main/resources/org.apache.unomi.router.cfg | 8 +-
extensions/router/router-karaf-feature/pom.xml | 2 +-
.../AbstractConfigurationServiceEndpoint.java | 92 +++++++
.../ExportConfigurationServiceEndPoint.java | 86 +++++++
.../ImportConfigurationServiceEndPoint.java | 92 ++-----
.../resources/OSGI-INF/blueprint/blueprint.xml | 46 ++--
.../AbstractConfigurationServiceImpl.java | 73 ++++++
.../ExportConfigurationServiceImpl.java | 61 +++++
.../ImportConfigurationServiceImpl.java | 56 +----
.../resources/OSGI-INF/blueprint/blueprint.xml | 17 +-
35 files changed, 1363 insertions(+), 749 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/api/src/main/java/org/apache/unomi/api/services/ConfigSharingService.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/unomi/api/services/ConfigSharingService.java b/api/src/main/java/org/apache/unomi/api/services/ConfigSharingService.java
new file mode 100644
index 0000000..1bfb050
--- /dev/null
+++ b/api/src/main/java/org/apache/unomi/api/services/ConfigSharingService.java
@@ -0,0 +1,32 @@
+/*
+ * 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 org.apache.unomi.api.services;
+
+/**
+ * A service to share cfg properties with other bundles.
+ */
+public interface ConfigSharingService {
+
+ String getOneshotImportUploadDir();
+
+ void setOneshotImportUploadDir(String oneshotImportUploadDir);
+
+ String getInternalServerPort();
+
+ void setInternalServerPort(String internalServerPort);
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ExportConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ExportConfiguration.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ExportConfiguration.java
new file mode 100644
index 0000000..5380691
--- /dev/null
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ExportConfiguration.java
@@ -0,0 +1,45 @@
+/*
+ * 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 org.apache.unomi.router.api;
+
+import org.apache.unomi.api.Item;
+import org.apache.unomi.api.conditions.Condition;
+
+/**
+ * Created by amidani on 19/06/2017.
+ */
+public class ExportConfiguration extends ImportExportConfiguration {
+
+ /**
+ * The ExportConfiguration ITEM_TYPE
+ *
+ * @see Item for a discussion of ITEM_TYPE
+ */
+ public static final String ITEM_TYPE = "exportConfig";
+
+ private String[] segments;
+
+ public String[] getSegments() {
+ return segments;
+ }
+
+ public void setSegments(String[] segments) {
+ this.segments = segments;
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportConfiguration.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportConfiguration.java
index ee0184a..b961cfb 100644
--- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportConfiguration.java
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportConfiguration.java
@@ -25,7 +25,7 @@ import java.util.*;
/**
* Created by amidani on 28/04/2017.
*/
-public class ImportConfiguration extends Item {
+public class ImportConfiguration extends ImportExportConfiguration {
/**
* The ImportConfiguration ITEM_TYPE
@@ -33,102 +33,10 @@ public class ImportConfiguration extends Item {
* @see Item for a discussion of ITEM_TYPE
*/
public static final String ITEM_TYPE = "importConfig";
- private String name;
- private String description;
- private String configType;
- private Map<String, Object> properties = new HashMap<>();
private String mergingProperty;
private boolean overwriteExistingProfiles = false;
private List<String> propertiesToOverwrite;
- private String columnSeparator = ",";
- private String lineSeparator = "\n";
- private boolean active = false;
- private String status;
-
- private List<Map<String, Object>> executions = new ArrayList();
-
- /**
- * Sets the property identified by the specified name to the specified value. If a property with that name already exists, replaces its value, otherwise adds the new
- * property with the specified name and value.
- *
- * @param name the name of the property to set
- * @param value the value of the property
- */
- public void setProperty(String name, Object value) {
- properties.put(name, value);
- }
-
- /**
- * Retrieves the name of the import configuration
- * @return the name of the import configuration
- */
- public String getName() { return this.name; }
-
- /**
- * Sets the name of the import configuration
- * @param name the name of the import configuration
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Retrieves the description of the import configuration
- * @return the description of the import configuration
- */
- public String getDescription() { return this.description; }
-
- /**
- * Sets the description of the import configuration
- * @param description the description of the import configuration
- */
- public void setDescription(String description) {
- this.description = description;
- }
-
-
- /**
- * Retrieves the config type of the import configuration
- * @return the config type of the import configuration
- */
- public String getConfigType() { return this.configType; }
-
- /**
- * Sets the config type of the import configuration
- * @param configType the config type of the import configuration
- */
- public void setConfigType(String configType) {
- this.configType = configType;
- }
-
- /**
- * Retrieves the property identified by the specified name.
- *
- * @param name the name of the property to retrieve
- * @return the value of the specified property or {@code null} if no such property exists
- */
- public Object getProperty(String name) {
- return properties.get(name);
- }
-
- /**
- * Retrieves a Map of all property name - value pairs for this import configuration.
- *
- * @return a Map of all property name - value pairs for this import configuration
- */
- public Map<String, Object> getProperties() {
- return properties;
- }
-
- /**
- * Sets the property name - value pairs for this import configuration.
- *
- * @param properties a Map containing the property name - value pairs for this import configuration
- */
- public void setProperties(Map<String, Object> properties) {
- this.properties = properties;
- }
public String getMergingProperty() {
return mergingProperty;
@@ -142,43 +50,6 @@ public class ImportConfiguration extends Item {
this.mergingProperty = mergingProperty;
}
-
- /**
- * Retrieves the import configuration active flag.
- *
- * @return true if the import configuration is active false if not
- */
- public boolean isActive() {
- return this.active;
- }
-
- /**
- * Sets the active flag true/false.
- *
- * @param active a boolean to set to active or inactive the import configuration
- */
- public void setActive(boolean active) {
- this.active = active;
- }
-
- /**
- * Retrieves the import configuration status for last execution.
- *
- * @return status of the last execution
- */
- public String getStatus() {
- return this.status;
- }
-
- /**
- * Sets status of the last execution.
- *
- * @param status of the last execution
- */
- public void setStatus(String status) {
- this.status = status;
- }
-
/**
* Retrieves the import configuration overwriteExistingProfiles flag.
*
@@ -205,55 +76,4 @@ public class ImportConfiguration extends Item {
this.propertiesToOverwrite = propertiesToOverwrite;
}
- /**
- * Retrieves the column separator.
- */
- public String getColumnSeparator() {
- return this.columnSeparator;
- }
-
- /**
- * Sets the column separator.
- * @param columnSeparator property used to specify a line separator. Defaults to ','
- */
- public void setColumnSeparator(String columnSeparator) {
- if(this.columnSeparator !=null) {
- this.columnSeparator = columnSeparator;
- }
- }
-
- /**
- * Retrieves the line separator.
- */
- public String getLineSeparator() {
- return this.lineSeparator;
- }
-
- /**
- * Sets the line separator.
- * @param lineSeparator property used to specify a line separator. Defaults to '\n'
- */
- public void setLineSeparator(String lineSeparator) {
- if(lineSeparator != null) {
- this.lineSeparator = lineSeparator;
- }
- }
-
- /**
- * Retrieves the executions
- */
- public List<Map<String, Object>> getExecutions() {
- return this.executions;
- }
-
-
- /**
- * Sets the executions
- * @param executions
- */
- public void setExecutions(List<Map<String, Object>> executions) {
- this.executions = executions;
- }
-
-
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java
new file mode 100644
index 0000000..82e2f0d
--- /dev/null
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/ImportExportConfiguration.java
@@ -0,0 +1,203 @@
+/*
+ * 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 org.apache.unomi.router.api;
+
+ import org.apache.unomi.api.Item;
+
+ import java.util.ArrayList;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+
+/**
+ * Created by amidani on 21/06/2017.
+ */
+public class ImportExportConfiguration extends Item {
+
+ private String name;
+ private String description;
+ private String configType;
+ private Map<String, Object> properties = new HashMap<>();
+ private String columnSeparator = ",";
+ private String lineSeparator = "\n";
+ private boolean active;
+ private String status;
+
+ private List<Map<String, Object>> executions = new ArrayList();
+
+ /**
+ * Sets the property identified by the specified name to the specified value. If a property with that name already exists, replaces its value, otherwise adds the new
+ * property with the specified name and value.
+ *
+ * @param name the name of the property to set
+ * @param value the value of the property
+ */
+ public void setProperty(String name, Object value) {
+ properties.put(name, value);
+ }
+
+ /**
+ * Retrieves the name of the import configuration
+ * @return the name of the import configuration
+ */
+ public String getName() { return this.name; }
+
+ /**
+ * Sets the name of the import configuration
+ * @param name the name of the import configuration
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * Retrieves the description of the import configuration
+ * @return the description of the import configuration
+ */
+ public String getDescription() { return this.description; }
+
+ /**
+ * Sets the description of the import configuration
+ * @param description the description of the import configuration
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+
+ /**
+ * Retrieves the config type of the import configuration
+ * @return the config type of the import configuration
+ */
+ public String getConfigType() { return this.configType; }
+
+ /**
+ * Sets the config type of the import configuration
+ * @param configType the config type of the import configuration
+ */
+ public void setConfigType(String configType) {
+ this.configType = configType;
+ }
+
+ /**
+ * Retrieves the property identified by the specified name.
+ *
+ * @param name the name of the property to retrieve
+ * @return the value of the specified property or {@code null} if no such property exists
+ */
+ public Object getProperty(String name) {
+ return properties.get(name);
+ }
+
+ /**
+ * Retrieves a Map of all property name - value pairs for this import configuration.
+ *
+ * @return a Map of all property name - value pairs for this import configuration
+ */
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ /**
+ * Retrieves the import configuration active flag.
+ *
+ * @return true if the import configuration is active false if not
+ */
+ public boolean isActive() {
+ return this.active;
+ }
+
+ /**
+ * Sets the active flag true/false.
+ *
+ * @param active a boolean to set to active or inactive the import configuration
+ */
+ public void setActive(boolean active) {
+ this.active = active;
+ }
+
+ /**
+ * Retrieves the import configuration status for last execution.
+ *
+ * @return status of the last execution
+ */
+ public String getStatus() {
+ return this.status;
+ }
+
+ /**
+ * Sets status of the last execution.
+ *
+ * @param status of the last execution
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * Retrieves the column separator.
+ */
+ public String getColumnSeparator() {
+ return this.columnSeparator;
+ }
+
+ /**
+ * Sets the column separator.
+ * @param columnSeparator property used to specify a line separator. Defaults to ','
+ */
+ public void setColumnSeparator(String columnSeparator) {
+ if(this.columnSeparator !=null) {
+ this.columnSeparator = columnSeparator;
+ }
+ }
+
+ /**
+ * Retrieves the line separator.
+ */
+ public String getLineSeparator() {
+ return this.lineSeparator;
+ }
+
+ /**
+ * Sets the line separator.
+ * @param lineSeparator property used to specify a line separator. Defaults to '\n'
+ */
+ public void setLineSeparator(String lineSeparator) {
+ if(lineSeparator != null) {
+ this.lineSeparator = lineSeparator;
+ }
+ }
+
+ /**
+ * Retrieves the executions
+ */
+ public List<Map<String, Object>> getExecutions() {
+ return this.executions;
+ }
+
+
+ /**
+ * Sets the executions
+ * @param executions
+ */
+ public void setExecutions(List<Map<String, Object>> executions) {
+ this.executions = executions;
+ }
+
+
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/RouterConstants.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/RouterConstants.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/RouterConstants.java
new file mode 100644
index 0000000..45de3d6
--- /dev/null
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/RouterConstants.java
@@ -0,0 +1,44 @@
+/*
+ * 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 org.apache.unomi.router.api;
+
+/**
+ * Created by amidani on 13/06/2017.
+ */
+public interface RouterConstants {
+
+ String CONFIG_TYPE_NOBROKER = "nobroker";
+ String CONFIG_TYPE_KAFKA = "kafka";
+
+ String CONFIG_STATUS_RUNNING = "RUNNING";
+ String CONFIG_STATUS_COMPLETE_ERRORS = "ERRORS";
+ String CONFIG_STATUS_COMPLETE_SUCCESS = "SUCCESS";
+ String CONFIG_STATUS_COMPLETE_WITH_ERRORS = "WITH_ERRORS";
+
+ String IMPORT_EXPORT_CONFIG_TYPE_RECURRENT = "recurrent";
+ String IMPORT_EXPORT_CONFIG_TYPE_ONESHOT = "oneshot";
+
+ String DIRECT_DEPOSIT_BUFFER = "direct:depositBuffer";
+
+ String DIRECTION_FROM = "from";
+ String DIRECTION_TO = "to";
+
+ String HEADER_CONFIG_TYPE = "configType";
+
+ String HEADER_FAILED_MESSAGE = "failedMessage";
+ String HEADER_IMPORT_CONFIG_ONESHOT = "importConfigOneShot";
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportConfigurationService.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportConfigurationService.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportConfigurationService.java
deleted file mode 100644
index 92991fe..0000000
--- a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportConfigurationService.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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 org.apache.unomi.router.api.services;
-
-import org.apache.unomi.router.api.ImportConfiguration;
-
-import java.util.List;
-
-/**
- * A service to access and operate on {@link ImportConfiguration}s.
- */
-public interface ImportConfigurationService {
-
- /**
- * Retrieves all the import configurations.
- *
- * @return the list of import configurations
- */
- public List<ImportConfiguration> getImportConfigurations();
-
- /**
- * Retrieves the import configuration identified by the specified identifier.
- *
- * @param configId the identifier of the profile to retrieve
- * @return the import configuration identified by the specified identifier or
- * {@code null} if no such import configuration exists
- */
- public ImportConfiguration load(String configId);
-
- /**
- * Saves the specified import configuration in the context server.
- *
- * @param importConfiguration the import configuration to be saved
- * @return the newly saved import configuration
- */
- public ImportConfiguration save(ImportConfiguration importConfiguration);
-
- /**
- * Deletes the import configuration identified by the specified identifier.
- *
- * @param configId the identifier of the import configuration to delete
- */
- public void delete(String configId);
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
new file mode 100644
index 0000000..7868b9c
--- /dev/null
+++ b/extensions/router/router-api/src/main/java/org/apache/unomi/router/api/services/ImportExportConfigurationService.java
@@ -0,0 +1,61 @@
+/*
+ * 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 org.apache.unomi.router.api.services;
+
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.ImportConfiguration;
+
+import java.util.List;
+
+/**
+ * A service to access and operate on {@link ImportConfiguration}s / {@link ExportConfiguration}s.
+ */
+public interface ImportExportConfigurationService<T> {
+
+ /**
+ * Retrieves all the import/export configurations.
+ *
+ * @return the list of import/export configurations
+ */
+ public List<T> getAll();
+
+ /**
+ * Retrieves the import/export configuration identified by the specified identifier.
+ *
+ * @param configId the identifier of the profile to retrieve
+ * @return the import/export configuration identified by the specified identifier or
+ * {@code null} if no such import/export configuration exists
+ */
+ public T load(String configId);
+
+ /**
+ * Saves the specified import/export configuration in the context server.
+ *
+ * @param configuration the import/export configuration to be saved
+ * @return the newly saved import/export configuration
+ */
+ public T save(T configuration);
+
+ /**
+ * Deletes the import/export configuration identified by the specified identifier.
+ *
+ * @param configId the identifier of the import/export configuration to delete
+ */
+ public void delete(String configId);
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/pom.xml b/extensions/router/router-core/pom.xml
index 95cc6b2..7e4a60a 100644
--- a/extensions/router/router-core/pom.xml
+++ b/extensions/router/router-core/pom.xml
@@ -47,6 +47,12 @@
</dependency>
<dependency>
<groupId>org.apache.unomi</groupId>
+ <artifactId>unomi-persistence-spi</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.unomi</groupId>
<artifactId>unomi-services</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
@@ -138,6 +144,7 @@
org.apache.unomi.api,
org.apache.unomi.router.api,
org.apache.unomi.api.services,
+ org.apache.unomi.persistence.spi,
org.apache.unomi.router.api.services,
org.apache.kafka.clients.producer;resolution:=optional,
org.apache.kafka.clients.consumer;resolution:=optional,
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/RouterConstants.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/RouterConstants.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/RouterConstants.java
deleted file mode 100644
index 04e3709..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/RouterConstants.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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 org.apache.unomi.router.core;
-
-/**
- * Created by amidani on 13/06/2017.
- */
-public interface RouterConstants {
-
- String CONFIG_TYPE_NOBROKER = "nobroker";
- String CONFIG_TYPE_KAFKA = "kafka";
-
- String CONFIG_STATUS_RUNNING = "RUNNING";
- String CONFIG_STATUS_COMPLETE_ERRORS = "ERRORS";
- String CONFIG_STATUS_COMPLETE_SUCCESS = "SUCCESS";
- String CONFIG_STATUS_COMPLETE_WITH_ERRORS = "WITH_ERRORS";
-
- String DIRECT_DEPOSIT_BUFFER = "direct:depositBuffer";
-
- String DIRECTION_FROM = "from";
- String DIRECTION_TO = "to";
-
- String HEADER_CONFIG_TYPE = "configType";
-
- String HEADER_FAILED_MESSAGE = "failedMessage";
- String HEADER_IMPORT_CONFIG_ONESHOT = "importConfigOneShot";
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/config/ConfigSharingServiceImpl.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/config/ConfigSharingServiceImpl.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/config/ConfigSharingServiceImpl.java
new file mode 100644
index 0000000..6aa357e
--- /dev/null
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/config/ConfigSharingServiceImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 org.apache.unomi.router.core.config;
+
+import org.apache.unomi.api.services.ConfigSharingService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by amidani on 27/06/2017.
+ */
+public class ConfigSharingServiceImpl implements ConfigSharingService, SynchronousBundleListener {
+
+ private static final Logger logger = LoggerFactory.getLogger(ConfigSharingServiceImpl.class);
+
+ private String oneshotImportUploadDir;
+ private BundleContext bundleContext;
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ @Override
+ public String getOneshotImportUploadDir() {
+ return oneshotImportUploadDir;
+ }
+
+ @Override
+ public void setOneshotImportUploadDir(String oneshotImportUploadDir) {
+ this.oneshotImportUploadDir = oneshotImportUploadDir;
+ }
+
+ /** Methods below not used in router bundle implementation of the ConfigSharingService **/
+
+ @Override
+ public String getInternalServerPort() {
+ return null;
+ }
+
+ @Override
+ public void setInternalServerPort(String internalServerPort) { }
+
+
+ public void preDestroy() throws Exception {
+ bundleContext.removeBundleListener(this);
+ logger.info("Config sharing service for Router is shutdown.");
+ }
+
+ private void processBundleStartup(BundleContext bundleContext) {
+ if (bundleContext == null) {
+ return;
+ }
+ }
+
+ @Override
+ public void bundleChanged(BundleEvent bundleEvent) {
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/ProfileImportCamelContext.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/ProfileImportCamelContext.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/ProfileImportCamelContext.java
deleted file mode 100644
index 7942f02..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/ProfileImportCamelContext.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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 org.apache.unomi.router.core.context;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.Route;
-import org.apache.camel.component.jackson.JacksonDataFormat;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
-import org.apache.unomi.router.core.processor.ImportConfigByFileNameProcessor;
-import org.apache.unomi.router.core.processor.RouteCompletionProcessor;
-import org.apache.unomi.router.core.processor.UnomiStorageProcessor;
-import org.apache.unomi.router.core.route.ProfileImportFromSourceRouteBuilder;
-import org.apache.unomi.router.core.route.ProfileImportOneShotRouteBuilder;
-import org.apache.unomi.router.core.route.ProfileImportToUnomiRouteBuilder;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleEvent;
-import org.osgi.framework.SynchronousBundleListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Arrays;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Created by amidani on 04/05/2017.
- */
-public class ProfileImportCamelContext implements SynchronousBundleListener {
-
- private final String IMPORT_CONFIG_TYPE_RECURRENT = "recurrent";
- private Logger logger = LoggerFactory.getLogger(ProfileImportCamelContext.class.getName());
- private CamelContext camelContext;
- private UnomiStorageProcessor unomiStorageProcessor;
- private RouteCompletionProcessor routeCompletionProcessor;
- private ImportConfigByFileNameProcessor importConfigByFileNameProcessor;
- private ImportConfigurationService importConfigurationService;
- private JacksonDataFormat jacksonDataFormat;
- private String uploadDir;
- private Map<String, String> kafkaProps;
- private String configType;
- private BundleContext bundleContext;
-
- public void setBundleContext(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
- }
-
- public void initCamelContext() throws Exception {
- logger.info("Initialize Camel Context...");
- camelContext = new DefaultCamelContext();
-
- ProfileImportFromSourceRouteBuilder builderReader = new ProfileImportFromSourceRouteBuilder(kafkaProps, configType);
- builderReader.setImportConfigurationService(importConfigurationService);
- builderReader.setJacksonDataFormat(jacksonDataFormat);
- builderReader.setContext(camelContext);
- camelContext.addRoutes(builderReader);
-
- //One shot import route
- ProfileImportOneShotRouteBuilder builderOneShot = new ProfileImportOneShotRouteBuilder(kafkaProps, configType);
- builderOneShot.setImportConfigByFileNameProcessor(importConfigByFileNameProcessor);
- builderOneShot.setJacksonDataFormat(jacksonDataFormat);
- builderOneShot.setUploadDir(uploadDir);
- builderOneShot.setContext(camelContext);
- camelContext.addRoutes(builderOneShot);
-
-
- ProfileImportToUnomiRouteBuilder builderProcessor = new ProfileImportToUnomiRouteBuilder(kafkaProps, configType);
- builderProcessor.setUnomiStorageProcessor(unomiStorageProcessor);
- builderProcessor.setRouteCompletionProcessor(routeCompletionProcessor);
- builderProcessor.setJacksonDataFormat(jacksonDataFormat);
- builderProcessor.setContext(camelContext);
- camelContext.addRoutes(builderProcessor);
-
- camelContext.start();
-
- logger.debug("postConstruct {" + bundleContext.getBundle() + "}");
-
- processBundleStartup(bundleContext);
- for (Bundle bundle : bundleContext.getBundles()) {
- if (bundle.getBundleContext() != null) {
- processBundleStartup(bundle.getBundleContext());
- }
- }
- bundleContext.addBundleListener(this);
- logger.info("Camel Context {} initialized successfully.");
-
- }
-
- private boolean stopRoute(String routeId) throws Exception {
- return camelContext.stopRoute(routeId, 10L, TimeUnit.SECONDS, true);
- }
-
- public void updateProfileImportReaderRoute(ImportConfiguration importConfiguration) throws Exception {
- //Active routes
- Route route = camelContext.getRoute(importConfiguration.getItemId());
- if (route != null && stopRoute(importConfiguration.getItemId())) {
- camelContext.removeRoute(importConfiguration.getItemId());
- }
-
- //Inactive routes
- RouteDefinition routeDefinition = camelContext.getRouteDefinition(importConfiguration.getItemId());
- if (routeDefinition != null) {
- camelContext.removeRouteDefinition(routeDefinition);
- }
- //Handle transforming an import config oneshot <--> recurrent
- if (IMPORT_CONFIG_TYPE_RECURRENT.equals(importConfiguration.getConfigType())) {
- ProfileImportFromSourceRouteBuilder builder = new ProfileImportFromSourceRouteBuilder(kafkaProps, configType);
- builder.setImportConfigurationList(Arrays.asList(importConfiguration));
- builder.setImportConfigurationService(importConfigurationService);
- builder.setJacksonDataFormat(jacksonDataFormat);
- builder.setContext(camelContext);
- camelContext.addRoutes(builder);
- }
- }
-
- public CamelContext getCamelContext() {
- return camelContext;
- }
-
- public void setUnomiStorageProcessor(UnomiStorageProcessor unomiStorageProcessor) {
- this.unomiStorageProcessor = unomiStorageProcessor;
- }
-
- public void setRouteCompletionProcessor(RouteCompletionProcessor routeCompletionProcessor) {
- this.routeCompletionProcessor = routeCompletionProcessor;
- }
-
- public void setImportConfigByFileNameProcessor(ImportConfigByFileNameProcessor importConfigByFileNameProcessor) {
- this.importConfigByFileNameProcessor = importConfigByFileNameProcessor;
- }
-
- public void setImportConfigurationService(ImportConfigurationService importConfigurationService) {
- this.importConfigurationService = importConfigurationService;
- }
-
- public void setJacksonDataFormat(JacksonDataFormat jacksonDataFormat) {
- this.jacksonDataFormat = jacksonDataFormat;
- }
-
- public void setUploadDir(String uploadDir) {
- this.uploadDir = uploadDir;
- }
-
- public void setKafkaProps(Map<String, String> kafkaProps) {
- this.kafkaProps = kafkaProps;
- }
-
- public void setConfigType(String configType) {
- this.configType = configType;
- }
-
- public void preDestroy() throws Exception {
- bundleContext.removeBundleListener(this);
- //This is to shutdown Camel context
- //(will stop all routes/components/endpoints etc and clear internal state/cache)
- this.camelContext.stop();
- logger.info("Camel context for profile import is shutdown.");
- }
-
- private void processBundleStartup(BundleContext bundleContext) {
- if (bundleContext == null) {
- return;
- }
- }
-
- @Override
- public void bundleChanged(BundleEvent bundleEvent) {
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
new file mode 100644
index 0000000..5a26a15
--- /dev/null
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/context/RouterCamelContext.java
@@ -0,0 +1,243 @@
+/*
+ * 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 org.apache.unomi.router.core.context;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Route;
+import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.model.RouteDefinition;
+import org.apache.unomi.persistence.spi.PersistenceService;
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.ImportConfiguration;
+import org.apache.unomi.router.api.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.apache.unomi.router.core.processor.ImportConfigByFileNameProcessor;
+import org.apache.unomi.router.core.processor.RouteCompletionProcessor;
+import org.apache.unomi.router.core.processor.UnomiStorageProcessor;
+import org.apache.unomi.router.core.route.ProfileExportCollectRouteBuilder;
+import org.apache.unomi.router.core.route.ProfileImportFromSourceRouteBuilder;
+import org.apache.unomi.router.core.route.ProfileImportOneShotRouteBuilder;
+import org.apache.unomi.router.core.route.ProfileImportToUnomiRouteBuilder;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.SynchronousBundleListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Created by amidani on 04/05/2017.
+ */
+public class RouterCamelContext implements SynchronousBundleListener {
+
+ private Logger logger = LoggerFactory.getLogger(RouterCamelContext.class.getName());
+ private CamelContext camelContext;
+ private UnomiStorageProcessor unomiStorageProcessor;
+ private RouteCompletionProcessor routeCompletionProcessor;
+ private ImportConfigByFileNameProcessor importConfigByFileNameProcessor;
+ private ImportExportConfigurationService<ImportConfiguration> importConfigurationService;
+ private ImportExportConfigurationService<ExportConfiguration> exportConfigurationService;
+ private PersistenceService persistenceService;
+ private JacksonDataFormat jacksonDataFormat;
+ private String uploadDir;
+ private Map<String, String> kafkaProps;
+ private String configType;
+ private String allowedEndpoints;
+ private BundleContext bundleContext;
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public void initCamelContext() throws Exception {
+ logger.info("Initialize Camel Context...");
+ camelContext = new DefaultCamelContext();
+
+ //--IMPORT ROUTES
+
+ //Source
+ ProfileImportFromSourceRouteBuilder builderReader = new ProfileImportFromSourceRouteBuilder(kafkaProps, configType);
+ builderReader.setImportConfigurationService(importConfigurationService);
+ builderReader.setJacksonDataFormat(jacksonDataFormat);
+ builderReader.setAllowedEndpoints(allowedEndpoints);
+ builderReader.setContext(camelContext);
+ camelContext.addRoutes(builderReader);
+
+ //One shot import route
+ ProfileImportOneShotRouteBuilder builderOneShot = new ProfileImportOneShotRouteBuilder(kafkaProps, configType);
+ builderOneShot.setImportConfigByFileNameProcessor(importConfigByFileNameProcessor);
+ builderOneShot.setJacksonDataFormat(jacksonDataFormat);
+ builderOneShot.setUploadDir(uploadDir);
+ builderOneShot.setContext(camelContext);
+ camelContext.addRoutes(builderOneShot);
+
+ //Unomi sink route
+ ProfileImportToUnomiRouteBuilder builderProcessor = new ProfileImportToUnomiRouteBuilder(kafkaProps, configType);
+ builderProcessor.setUnomiStorageProcessor(unomiStorageProcessor);
+ builderProcessor.setRouteCompletionProcessor(routeCompletionProcessor);
+ builderProcessor.setJacksonDataFormat(jacksonDataFormat);
+ builderProcessor.setContext(camelContext);
+ camelContext.addRoutes(builderProcessor);
+
+ //--EXPORT ROUTES
+ ProfileExportCollectRouteBuilder profileExportCollectRouteBuilder = new ProfileExportCollectRouteBuilder();
+ profileExportCollectRouteBuilder.setExportConfigurationService(exportConfigurationService);
+ profileExportCollectRouteBuilder.setPersistenceService(persistenceService);
+ profileExportCollectRouteBuilder.setAllowedEndpoints(allowedEndpoints);
+ profileExportCollectRouteBuilder.setContext(camelContext);
+ camelContext.addRoutes(profileExportCollectRouteBuilder);
+
+
+ camelContext.start();
+
+ logger.debug("postConstruct {" + bundleContext.getBundle() + "}");
+
+ processBundleStartup(bundleContext);
+ for (Bundle bundle : bundleContext.getBundles()) {
+ if (bundle.getBundleContext() != null) {
+ processBundleStartup(bundle.getBundleContext());
+ }
+ }
+ bundleContext.addBundleListener(this);
+ logger.info("Camel Context {} initialized successfully.");
+
+ }
+
+ private boolean stopRoute(String routeId) throws Exception {
+ return camelContext.stopRoute(routeId, 10L, TimeUnit.SECONDS, true);
+ }
+
+ private void killExistingRoute(String routeId) throws Exception {
+ //Active routes
+ Route route = camelContext.getRoute(routeId);
+ if (route != null && stopRoute(routeId)) {
+ camelContext.removeRoute(routeId);
+ }
+ //Inactive routes
+ RouteDefinition routeDefinition = camelContext.getRouteDefinition(routeId);
+ if (routeDefinition != null) {
+ camelContext.removeRouteDefinition(routeDefinition);
+ }
+ }
+
+ public void updateProfileReaderRoute(Object configuration) throws Exception {
+ if (configuration instanceof ImportConfiguration) {
+ updateProfileImportReaderRoute((ImportConfiguration) configuration);
+ } else {
+ updateProfileExportReaderRoute((ExportConfiguration) configuration);
+ }
+ }
+
+ private void updateProfileImportReaderRoute(ImportConfiguration importConfiguration) throws Exception {
+
+ //Handle transforming an import config oneshot <--> recurrent
+ if (RouterConstants.IMPORT_EXPORT_CONFIG_TYPE_RECURRENT.equals(importConfiguration.getConfigType())) {
+ ProfileImportFromSourceRouteBuilder builder = new ProfileImportFromSourceRouteBuilder(kafkaProps, configType);
+ builder.setImportConfigurationList(Arrays.asList(importConfiguration));
+ builder.setImportConfigurationService(importConfigurationService);
+ builder.setAllowedEndpoints(allowedEndpoints);
+ builder.setJacksonDataFormat(jacksonDataFormat);
+ builder.setContext(camelContext);
+ camelContext.addRoutes(builder);
+ }
+ }
+
+ private void updateProfileExportReaderRoute(ExportConfiguration exportConfiguration) throws Exception {
+ killExistingRoute(exportConfiguration.getItemId());
+ //Handle transforming an import config oneshot <--> recurrent
+ if (RouterConstants.IMPORT_EXPORT_CONFIG_TYPE_RECURRENT.equals(exportConfiguration.getConfigType())) {
+ ProfileExportCollectRouteBuilder profileExportCollectRouteBuilder = new ProfileExportCollectRouteBuilder();
+ profileExportCollectRouteBuilder.setExportConfigurationService(exportConfigurationService);
+ profileExportCollectRouteBuilder.setPersistenceService(persistenceService);
+ profileExportCollectRouteBuilder.setAllowedEndpoints(allowedEndpoints);
+ profileExportCollectRouteBuilder.setContext(camelContext);
+ camelContext.addRoutes(profileExportCollectRouteBuilder);
+ }
+ }
+
+ public CamelContext getCamelContext() {
+ return camelContext;
+ }
+
+ public void setUnomiStorageProcessor(UnomiStorageProcessor unomiStorageProcessor) {
+ this.unomiStorageProcessor = unomiStorageProcessor;
+ }
+
+ public void setRouteCompletionProcessor(RouteCompletionProcessor routeCompletionProcessor) {
+ this.routeCompletionProcessor = routeCompletionProcessor;
+ }
+
+ public void setImportConfigByFileNameProcessor(ImportConfigByFileNameProcessor importConfigByFileNameProcessor) {
+ this.importConfigByFileNameProcessor = importConfigByFileNameProcessor;
+ }
+
+ public void setImportConfigurationService(ImportExportConfigurationService<ImportConfiguration> importConfigurationService) {
+ this.importConfigurationService = importConfigurationService;
+ }
+
+ public void setExportConfigurationService(ImportExportConfigurationService<ExportConfiguration> exportConfigurationService) {
+ this.exportConfigurationService = exportConfigurationService;
+ }
+
+ public void setPersistenceService(PersistenceService persistenceService) {
+ this.persistenceService = persistenceService;
+ }
+
+ public void setJacksonDataFormat(JacksonDataFormat jacksonDataFormat) {
+ this.jacksonDataFormat = jacksonDataFormat;
+ }
+
+ public void setUploadDir(String uploadDir) {
+ this.uploadDir = uploadDir;
+ }
+
+ public void setKafkaProps(Map<String, String> kafkaProps) {
+ this.kafkaProps = kafkaProps;
+ }
+
+ public void setConfigType(String configType) {
+ this.configType = configType;
+ }
+
+ public void setAllowedEndpoints(String allowedEndpoints) {
+ this.allowedEndpoints = allowedEndpoints;
+ }
+
+ public void preDestroy() throws Exception {
+ bundleContext.removeBundleListener(this);
+ //This is to shutdown Camel context
+ //(will stop all routes/components/endpoints etc and clear internal state/cache)
+ this.camelContext.stop();
+ logger.info("Camel context for profile import is shutdown.");
+ }
+
+ private void processBundleStartup(BundleContext bundleContext) {
+ if (bundleContext == null) {
+ return;
+ }
+ }
+
+ @Override
+ public void bundleChanged(BundleEvent bundleEvent) {
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
index d8e4b9e..8e6ab36 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ConfigUpdateProcessor.java
@@ -20,25 +20,25 @@ import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.core.context.ProfileImportCamelContext;
+import org.apache.unomi.router.core.context.RouterCamelContext;
/**
* Created by amidani on 10/05/2017.
*/
public class ConfigUpdateProcessor implements Processor {
- private ProfileImportCamelContext profileImportCamelContext;
+ private RouterCamelContext routerCamelContext;
@Override
public void process(Exchange exchange) throws Exception {
if (exchange.getIn() != null) {
Message message = exchange.getIn();
- ImportConfiguration importConfiguration = message.getBody(ImportConfiguration.class);
- profileImportCamelContext.updateProfileImportReaderRoute(importConfiguration);
+ Object configuration = message.getBody();
+ routerCamelContext.updateProfileReaderRoute(configuration);
}
}
- public void setProfileImportCamelContext(ProfileImportCamelContext profileImportCamelContext) {
- this.profileImportCamelContext = profileImportCamelContext;
+ public void setRouterCamelContext(RouterCamelContext routerCamelContext) {
+ this.routerCamelContext = routerCamelContext;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportConfigByFileNameProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportConfigByFileNameProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportConfigByFileNameProcessor.java
index a910a1d..b4f7bd1 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportConfigByFileNameProcessor.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/ImportConfigByFileNameProcessor.java
@@ -20,15 +20,15 @@ import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.file.GenericFile;
import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.apache.unomi.router.api.RouterConstants;
/**
* Created by amidani on 22/05/2017.
*/
public class ImportConfigByFileNameProcessor implements Processor {
- private ImportConfigurationService importConfigurationService;
+ private ImportExportConfigurationService<ImportConfiguration> importConfigurationService;
@Override
public void process(Exchange exchange) throws Exception {
@@ -39,7 +39,7 @@ public class ImportConfigByFileNameProcessor implements Processor {
exchange.getIn().setHeader(RouterConstants.HEADER_IMPORT_CONFIG_ONESHOT, importConfiguration);
}
- public void setImportConfigurationService(ImportConfigurationService importConfigurationService) {
+ public void setImportConfigurationService(ImportExportConfigurationService<ImportConfiguration> importConfigurationService) {
this.importConfigurationService = importConfigurationService;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
index bfb92fb..96afaac 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitFailureHandler.java
@@ -19,7 +19,7 @@ package org.apache.unomi.router.core.processor;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.unomi.router.api.ImportLineError;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
index afff204..e047b63 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/LineSplitProcessor.java
@@ -22,7 +22,7 @@ import org.apache.camel.component.kafka.KafkaConstants;
import org.apache.commons.lang3.StringUtils;
import org.apache.unomi.router.api.ImportConfiguration;
import org.apache.unomi.router.api.ProfileToImport;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
import java.util.HashMap;
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/RouteCompletionProcessor.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/RouteCompletionProcessor.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/RouteCompletionProcessor.java
index 36ec319..b522426 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/RouteCompletionProcessor.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/processor/RouteCompletionProcessor.java
@@ -21,8 +21,8 @@ import org.apache.camel.Processor;
import org.apache.unomi.router.api.ImportConfiguration;
import org.apache.unomi.router.api.ImportLineError;
import org.apache.unomi.router.api.ProfileToImport;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.apache.unomi.router.api.RouterConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,7 +34,7 @@ import java.util.*;
public class RouteCompletionProcessor implements Processor {
private static final Logger logger = LoggerFactory.getLogger(RouteCompletionProcessor.class.getName());
- private ImportConfigurationService importConfigurationService;
+ private ImportExportConfigurationService<ImportConfiguration> importConfigurationService;
private int executionsHistorySize;
@Override
@@ -95,7 +95,7 @@ public class RouteCompletionProcessor implements Processor {
logger.info("Processing route {} completed.", exchange.getFromRouteId());
}
- public void setImportConfigurationService(ImportConfigurationService importConfigurationService) {
+ public void setImportConfigurationService(ImportExportConfigurationService<ImportConfiguration> importConfigurationService) {
this.importConfigurationService = importConfigurationService;
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
new file mode 100644
index 0000000..dd70033
--- /dev/null
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ConfigUpdateRouteBuilder.java
@@ -0,0 +1,73 @@
+/*
+ * 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 org.apache.unomi.router.core.route;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.model.rest.RestBindingMode;
+import org.apache.unomi.api.services.ConfigSharingService;
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.ImportConfiguration;
+import org.apache.unomi.router.core.context.RouterCamelContext;
+import org.apache.unomi.router.core.processor.ConfigUpdateProcessor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Created by amidani on 10/05/2017.
+ */
+public class ConfigUpdateRouteBuilder extends RouteBuilder {
+
+ private static final Logger logger = LoggerFactory.getLogger(ConfigUpdateRouteBuilder.class.getName());
+ private RouterCamelContext routerCamelContext;
+
+ @Override
+ public void configure() throws Exception {
+ logger.info("Preparing REST Configuration for servlet with context path [/configUpdate]");
+ restConfiguration().component("servlet")
+ .contextPath("/configUpdate")
+ .enableCORS(false)
+ .bindingMode(RestBindingMode.json)
+ .dataFormatProperty("prettyPrint", "true");
+
+ rest().put("/importConfigAdmin").consumes("application/json").type(ImportConfiguration.class)
+ .to("direct:importConfigRestDeposit");
+
+ ConfigUpdateProcessor profileConfigUpdateProcessor = new ConfigUpdateProcessor();
+ profileConfigUpdateProcessor.setRouterCamelContext(routerCamelContext);
+ from("direct:importConfigRestDeposit")
+ .process(profileConfigUpdateProcessor)
+ .transform().constant("Success.")
+ .onException(Exception.class)
+ .transform().constant("Failure!");
+
+ rest().put("/exportConfigAdmin").consumes("application/json").type(ExportConfiguration.class)
+ .to("direct:exportConfigRestDeposit");
+
+ from("direct:exportConfigRestDeposit")
+ .process(profileConfigUpdateProcessor)
+ .transform().constant("Success.")
+ .onException(Exception.class)
+ .transform().constant("Failure!");
+
+
+ }
+
+ public void setRouterCamelContext(RouterCamelContext routerCamelContext) {
+ this.routerCamelContext = routerCamelContext;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportCollectRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportCollectRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportCollectRouteBuilder.java
new file mode 100644
index 0000000..5c3015e
--- /dev/null
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileExportCollectRouteBuilder.java
@@ -0,0 +1,81 @@
+/*
+ * 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 org.apache.unomi.router.core.route;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.unomi.api.Profile;
+import org.apache.unomi.persistence.spi.PersistenceService;
+import org.apache.unomi.router.api.ExportConfiguration;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+/**
+ * Created by amidani on 27/06/2017.
+ */
+public class ProfileExportCollectRouteBuilder extends RouteBuilder {
+
+ private static final Logger logger = LoggerFactory.getLogger(ProfileExportCollectRouteBuilder.class);
+
+ private List<ExportConfiguration> exportConfigurationList;
+ private ImportExportConfigurationService<ExportConfiguration> exportConfigurationService;
+ private PersistenceService persistenceService;
+
+ private String allowedEndpoints;
+
+ @Override
+ public void configure() throws Exception {
+ logger.info("Configure Recurrent Route 'Export :: Collect Data'");
+
+ if (exportConfigurationList == null) {
+ exportConfigurationList = exportConfigurationService.getAll();
+ }
+
+ //Loop on multiple export configuration
+ for (final ExportConfiguration exportConfiguration : exportConfigurationList) {
+ String endpoint = (String) exportConfiguration.getProperties().get("destination");
+
+ if (StringUtils.isNotBlank(endpoint) && allowedEndpoints.contains(endpoint.substring(0, endpoint.indexOf(':')))) {
+ List<Profile> profilesCollected = persistenceService.query("segments", (String) exportConfiguration.getProperties().get("segments"),
+ null, Profile.class);
+ logger.info("Collected +++{}+++ profiles.", profilesCollected.size());
+ } else {
+ logger.error("Endpoint scheme {} is not allowed, route {} will be skipped.", endpoint.substring(0, endpoint.indexOf(':')), exportConfiguration.getItemId());
+ }
+ }
+ }
+
+ public void setExportConfigurationList(List<ExportConfiguration> exportConfigurationList) {
+ this.exportConfigurationList = exportConfigurationList;
+ }
+
+ public void setExportConfigurationService(ImportExportConfigurationService<ExportConfiguration> exportConfigurationService) {
+ this.exportConfigurationService = exportConfigurationService;
+ }
+
+ public void setPersistenceService(PersistenceService persistenceService) {
+ this.persistenceService = persistenceService;
+ }
+
+ public void setAllowedEndpoints(String allowedEndpoints) {
+ this.allowedEndpoints = allowedEndpoints;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportAbstractRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportAbstractRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportAbstractRouteBuilder.java
index f4f7a43..bacc38e 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportAbstractRouteBuilder.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportAbstractRouteBuilder.java
@@ -22,7 +22,7 @@ import org.apache.camel.component.kafka.KafkaComponent;
import org.apache.camel.component.kafka.KafkaConfiguration;
import org.apache.camel.component.kafka.KafkaEndpoint;
import org.apache.commons.lang3.StringUtils;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.RouterConstants;
import java.util.Map;
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportConfigUpdateRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportConfigUpdateRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportConfigUpdateRouteBuilder.java
deleted file mode 100644
index 40575d5..0000000
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportConfigUpdateRouteBuilder.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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 org.apache.unomi.router.core.route;
-
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.rest.RestBindingMode;
-import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.core.context.ProfileImportCamelContext;
-import org.apache.unomi.router.core.processor.ConfigUpdateProcessor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Created by amidani on 10/05/2017.
- */
-public class ProfileImportConfigUpdateRouteBuilder extends RouteBuilder {
-
- private static final Logger logger = LoggerFactory.getLogger(ProfileImportConfigUpdateRouteBuilder.class.getName());
-
- private ProfileImportCamelContext profileImportCamelContext;
-
- @Override
- public void configure() throws Exception {
- logger.info("Preparing REST Configuration for servlet with context path [/importConfigAdmin]");
- restConfiguration().component("servlet")
- .contextPath("/importConfigAdmin")
- .enableCORS(false)
- .bindingMode(RestBindingMode.json)
- .dataFormatProperty("prettyPrint", "true");
-
- rest().put("/").consumes("application/json").type(ImportConfiguration.class)
- .to("direct:importConfigRestDeposit");
- ConfigUpdateProcessor profileImportConfigUpdateProcessor = new ConfigUpdateProcessor();
- profileImportConfigUpdateProcessor.setProfileImportCamelContext(profileImportCamelContext);
- from("direct:importConfigRestDeposit")
- .process(profileImportConfigUpdateProcessor)
- .transform().constant("Success.")
- .onException(Exception.class)
- .transform().constant("Failure!");
-
-
- }
-
- public void setProfileImportCamelContext(ProfileImportCamelContext profileImportCamelContext) {
- this.profileImportCamelContext = profileImportCamelContext;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java
index 0af561f..7f54884 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportFromSourceRouteBuilder.java
@@ -23,8 +23,8 @@ import org.apache.camel.component.kafka.KafkaEndpoint;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.commons.lang3.StringUtils;
import org.apache.unomi.router.api.ImportConfiguration;
-import org.apache.unomi.router.api.services.ImportConfigurationService;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.services.ImportExportConfigurationService;
+import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
import org.apache.unomi.router.core.processor.LineSplitFailureHandler;
import org.apache.unomi.router.core.processor.LineSplitProcessor;
@@ -44,7 +44,9 @@ public class ProfileImportFromSourceRouteBuilder extends ProfileImportAbstractRo
private static final Logger logger = LoggerFactory.getLogger(ProfileImportFromSourceRouteBuilder.class.getName());
private List<ImportConfiguration> importConfigurationList;
- private ImportConfigurationService importConfigurationService;
+ private ImportExportConfigurationService<ImportConfiguration> importConfigurationService;
+
+ private String allowedEndpoints;
public ProfileImportFromSourceRouteBuilder(Map<String, String> kafkaProps, String configType) {
super(kafkaProps, configType);
@@ -56,13 +58,24 @@ public class ProfileImportFromSourceRouteBuilder extends ProfileImportAbstractRo
logger.info("Configure Recurrent Route 'From Source'");
if (importConfigurationList == null) {
- importConfigurationList = importConfigurationService.getImportConfigurations();
+ importConfigurationList = importConfigurationService.getAll();
+ }
+
+ ProcessorDefinition prDefErr = onException(BadProfileDataFormatException.class)
+ .log(LoggingLevel.ERROR, "Error processing record ${exchangeProperty.CamelSplitIndex}++ !")
+ .handled(true)
+ .process(new LineSplitFailureHandler());
+
+ if (RouterConstants.CONFIG_TYPE_KAFKA.equals(configType)) {
+ prDefErr.to((KafkaEndpoint) getEndpointURI(RouterConstants.DIRECTION_FROM));
+ } else {
+ prDefErr.to((String) getEndpointURI(RouterConstants.DIRECTION_FROM));
}
//Loop on multiple import configuration
for (final ImportConfiguration importConfiguration : importConfigurationList) {
- if (importConfiguration.getProperties().size() > 0 &&
- StringUtils.isNotEmpty((String) importConfiguration.getProperties().get("source"))) {
+ if (RouterConstants.IMPORT_EXPORT_CONFIG_TYPE_RECURRENT.equals(importConfiguration.getConfigType()) &&
+ importConfiguration.getProperties().size() > 0) {
//Prepare Split Processor
LineSplitProcessor lineSplitProcessor = new LineSplitProcessor();
lineSplitProcessor.setFieldsMapping((Map<String, Integer>) importConfiguration.getProperties().get("mapping"));
@@ -71,46 +84,41 @@ public class ProfileImportFromSourceRouteBuilder extends ProfileImportAbstractRo
lineSplitProcessor.setMergingProperty(importConfiguration.getMergingProperty());
lineSplitProcessor.setColumnSeparator(importConfiguration.getColumnSeparator());
- ProcessorDefinition prDefErr = onException(BadProfileDataFormatException.class)
- .log(LoggingLevel.ERROR, "Error processing record ${exchangeProperty.CamelSplitIndex}++ !")
- .handled(true)
- .process(new LineSplitFailureHandler());
-
- if (RouterConstants.CONFIG_TYPE_KAFKA.equals(configType)) {
- prDefErr.to((KafkaEndpoint) getEndpointURI(RouterConstants.DIRECTION_FROM));
+ String endpoint = (String) importConfiguration.getProperties().get("source");
+
+ if (StringUtils.isNotBlank(endpoint) && allowedEndpoints.contains(endpoint.substring(0, endpoint.indexOf(':')))) {
+ ProcessorDefinition prDef = from(endpoint)
+ .routeId(importConfiguration.getItemId())// This allow identification of the route for manual start/stop
+ .autoStartup(importConfiguration.isActive())// Auto-start if the import configuration is set active
+ .onCompletion()
+ // this route is only invoked when the original route is complete as a kind
+ // of completion callback
+ .log(LoggingLevel.DEBUG, "ROUTE [" + importConfiguration.getItemId() + "] is now complete [" + new Date().toString() + "]")
+ // must use end to denote the end of the onCompletion route
+ .end()
+ .process(new Processor() {
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_RUNNING);
+ importConfigurationService.save(importConfiguration);
+ }
+ })
+ .split(bodyAs(String.class).tokenize(importConfiguration.getLineSeparator()))
+ .log(LoggingLevel.DEBUG, "Splitted into ${exchangeProperty.CamelSplitSize} records")
+ .setHeader(RouterConstants.HEADER_CONFIG_TYPE, constant(configType))
+ .process(lineSplitProcessor)
+ .log(LoggingLevel.DEBUG, "Split IDX ${exchangeProperty.CamelSplitIndex} record")
+ .to("log:org.apache.unomi.router?level=DEBUG")
+ .marshal(jacksonDataFormat)
+ .convertBodyTo(String.class);
+
+ if (RouterConstants.CONFIG_TYPE_KAFKA.equals(configType)) {
+ prDef.to((KafkaEndpoint) getEndpointURI(RouterConstants.DIRECTION_FROM));
+ } else {
+ prDef.to((String) getEndpointURI(RouterConstants.DIRECTION_FROM));
+ }
} else {
- prDefErr.to((String) getEndpointURI(RouterConstants.DIRECTION_FROM));
- }
-
- ProcessorDefinition prDef = from((String) importConfiguration.getProperties().get("source"))
- .routeId(importConfiguration.getItemId())// This allow identification of the route for manual start/stop
- .autoStartup(importConfiguration.isActive())// Auto-start if the import configuration is set active
- .onCompletion()
- // this route is only invoked when the original route is complete as a kind
- // of completion callback
- .log(LoggingLevel.DEBUG, "ROUTE [" + importConfiguration.getItemId() + "] is now complete [" + new Date().toString() + "]")
- // must use end to denote the end of the onCompletion route
- .end()
- .process(new Processor() {
- @Override
- public void process(Exchange exchange) throws Exception {
- importConfiguration.setStatus(RouterConstants.CONFIG_STATUS_RUNNING);
- importConfigurationService.save(importConfiguration);
- }
- })
- .split(bodyAs(String.class).tokenize(importConfiguration.getLineSeparator()))
- .log(LoggingLevel.DEBUG, "Splitted into ${exchangeProperty.CamelSplitSize} records")
- .setHeader(RouterConstants.HEADER_CONFIG_TYPE, constant(configType))
- .process(lineSplitProcessor)
- .log(LoggingLevel.DEBUG, "Split IDX ${exchangeProperty.CamelSplitIndex} record")
- .to("log:org.apache.unomi.router?level=DEBUG")
- .marshal(jacksonDataFormat)
- .convertBodyTo(String.class);
-
- if (RouterConstants.CONFIG_TYPE_KAFKA.equals(configType)) {
- prDef.to((KafkaEndpoint) getEndpointURI(RouterConstants.DIRECTION_FROM));
- } else {
- prDef.to((String) getEndpointURI(RouterConstants.DIRECTION_FROM));
+ logger.error("Endpoint scheme {} is not allowed, route {} will be skipped.", endpoint.substring(0, endpoint.indexOf(':')), importConfiguration.getItemId());
}
}
}
@@ -120,8 +128,12 @@ public class ProfileImportFromSourceRouteBuilder extends ProfileImportAbstractRo
this.importConfigurationList = importConfigurationList;
}
- public void setImportConfigurationService(ImportConfigurationService importConfigurationService) {
+ public void setImportConfigurationService(ImportExportConfigurationService<ImportConfiguration> importConfigurationService) {
this.importConfigurationService = importConfigurationService;
}
+ public void setAllowedEndpoints(String allowedEndpoints) {
+ this.allowedEndpoints = allowedEndpoints;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/c62f91d4/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportOneShotRouteBuilder.java
----------------------------------------------------------------------
diff --git a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportOneShotRouteBuilder.java b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportOneShotRouteBuilder.java
index c86e5e0..a94b5ed 100644
--- a/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportOneShotRouteBuilder.java
+++ b/extensions/router/router-core/src/main/java/org/apache/unomi/router/core/route/ProfileImportOneShotRouteBuilder.java
@@ -20,7 +20,7 @@ import org.apache.camel.LoggingLevel;
import org.apache.camel.component.jackson.JacksonDataFormat;
import org.apache.camel.component.kafka.KafkaEndpoint;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.unomi.router.core.RouterConstants;
+import org.apache.unomi.router.api.RouterConstants;
import org.apache.unomi.router.core.exception.BadProfileDataFormatException;
import org.apache.unomi.router.core.processor.ImportConfigByFileNameProcessor;
import org.apache.unomi.router.core.processor.LineSplitFailureHandler;