You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2016/12/05 09:43:46 UTC
[3/4] incubator-unomi git commit: UNOMI 70 - Upgrade to ElasticSearch
5.0 - Upgrade to ElasticSearch 5.0.1 - Upgrade CXF to 3.0.2 - Upgrade to
Karaf 3.0.8 - Replace Unomi clustering from ES clustering to Karaf Cellar
clustering
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/event.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/event.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/event.json
index 6089499..939120d 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/event.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/event.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,34 +14,325 @@
],
"properties": {
"eventType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"profileId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
+ },
+ "properties": {
+ "properties": {
+ "src_terms[0]": {
+ "properties": {
+ "term": {
+ "type": "keyword"
+ }
+ }
+ }
+ }
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"sessionId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"timeStamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
+ },
+ "source": {
+ "properties": {
+ "eventType": {
+ "type": "keyword"
+ },
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ },
+ "profileId": {
+ "type": "keyword"
+ },
+ "properties": {
+ "properties": {
+ "pageInfo": {
+ "properties": {
+ "destinationURL": {
+ "type": "keyword"
+ },
+ "language": {
+ "type": "keyword"
+ },
+ "pageName": {
+ "type": "keyword"
+ },
+ "pagePath": {
+ "type": "keyword"
+ },
+ "referringURL": {
+ "type": "keyword"
+ },
+ "variant": {
+ "type": "keyword"
+ }
+ }
+ }
+ }
+ },
+ "scope": {
+ "type": "keyword"
+ },
+ "sessionId": {
+ "type": "keyword"
+ },
+ "source": {
+ "properties": {
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ },
+ "scope": {
+ "type": "keyword"
+ }
+ }
+ },
+ "target": {
+ "properties": {
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ },
+ "properties": {
+ "properties": {
+ "pageInfo": {
+ "properties": {
+ "destinationURL": {
+ "type": "keyword"
+ },
+ "language": {
+ "type": "keyword"
+ },
+ "pageName": {
+ "type": "keyword"
+ },
+ "pagePath": {
+ "type": "keyword"
+ },
+ "referringURL": {
+ "type": "keyword"
+ },
+ "variant": {
+ "type": "keyword"
+ }
+ }
+ }
+ }
+ },
+ "scope": {
+ "type": "keyword"
+ }
+ }
+ },
+ "timeStamp": {
+ "type": "date"
+ }
+ }
+ },
+ "target": {
+ "properties": {
+ "campaignId": {
+ "type": "keyword"
+ },
+ "duration": {
+ "type": "long"
+ },
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ },
+ "metadata": {
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "hidden": {
+ "type": "boolean"
+ },
+ "id": {
+ "type": "keyword"
+ },
+ "missingPlugins": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "keyword"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "scope": {
+ "type": "keyword"
+ },
+ "tags": {
+ "type": "text",
+ "analyzer": "folding",
+ "fields": {
+ "keyword": {
+ "type": "keyword",
+ "ignore_above": 256
+ }
+ }
+ }
+ }
+ },
+ "profile": {
+ "properties": {
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ },
+ "properties": {
+ "properties": {
+ "firstVisit": {
+ "type": "date"
+ }
+ }
+ }
+ }
+ },
+ "profileId": {
+ "type": "keyword"
+ },
+ "properties": {
+ "properties": {
+ "birthDate": {
+ "type": "date"
+ },
+ "email": {
+ "type": "keyword"
+ },
+ "faceBookId": {
+ "type": "keyword"
+ },
+ "firstName": {
+ "type": "keyword"
+ },
+ "gender": {
+ "type": "keyword"
+ },
+ "goalId": {
+ "type": "keyword"
+ },
+ "lastName": {
+ "type": "keyword"
+ },
+ "leadAssignedTo": {
+ "type": "keyword"
+ },
+ "nationality": {
+ "type": "keyword"
+ },
+ "origin": {
+ "type": "keyword"
+ },
+ "pageInfo": {
+ "properties": {
+ "destinationURL": {
+ "type": "keyword"
+ },
+ "language": {
+ "type": "keyword"
+ },
+ "pageName": {
+ "type": "keyword"
+ },
+ "pagePath": {
+ "type": "keyword"
+ },
+ "referringURL": {
+ "type": "keyword"
+ },
+ "variant": {
+ "type": "keyword"
+ }
+ }
+ },
+ "path": {
+ "type": "keyword"
+ },
+ "phoneNumber": {
+ "type": "keyword"
+ },
+ "randomNumber": {
+ "type": "long"
+ },
+ "twitterId": {
+ "type": "keyword"
+ },
+ "variantId": {
+ "type": "keyword"
+ },
+ "workspace": {
+ "type": "keyword"
+ }
+ }
+ },
+ "scope": {
+ "type": "keyword"
+ },
+ "size": {
+ "type": "long"
+ },
+ "startEvent": {
+ "properties": {
+ "parameterValues": {
+ "properties": {
+ "pagePath": {
+ "type": "keyword"
+ }
+ }
+ },
+ "type": {
+ "type": "keyword"
+ }
+ }
+ },
+ "targetEvent": {
+ "properties": {
+ "parameterValues": {
+ "properties": {
+ "pagePath": {
+ "type": "keyword"
+ }
+ }
+ },
+ "type": {
+ "type": "keyword"
+ }
+ }
+ },
+ "timeStamp": {
+ "type": "date"
+ }
+ }
}
}
}
}
+
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/goal.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/goal.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/goal.json
index 0fb7bcf..7290220 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/goal.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/goal.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,22 +14,19 @@
],
"properties": {
"campaignId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"metadata": {
"properties": {
"description": {
- "type": "string",
- "analyzer": "folding"
+ "type": "text",
+ "analyzer" : "folding"
},
"enabled": {
"type": "boolean"
@@ -38,25 +35,22 @@
"type": "boolean"
},
"id": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"missingPlugins": {
"type": "boolean"
},
"name": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"readOnly": {
"type": "boolean"
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"tags": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/persona.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/persona.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/persona.json
index d04715f..db9828b 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/persona.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/persona.json
@@ -4,13 +4,29 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
}
- ]
+ ],
+ "properties" : {
+ "properties" : {
+ "properties": {
+ "description": {
+ "type": "text",
+ "analyzer": "folding"
+ },
+ "firstName": {
+ "type": "keyword"
+ },
+ "lastName": {
+ "type": "keyword"
+ }
+ }
+ }
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/personaSession.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/personaSession.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/personaSession.json
index 6ba12aa..c54a860 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/personaSession.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/personaSession.json
@@ -4,27 +4,96 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
}
],
"properties": {
+ "duration" : {
+ "type" : "long"
+ },
+ "itemId" : {
+ "type" : "keyword"
+ },
+ "itemType" : {
+ "type" : "keyword"
+ },
"timeStamp": {
"type": "date"
},
"lastEventDate": {
"type": "date"
},
- "properties": {
- "properties": {
- "location": {
- "type": "geo_point"
+ "profile" : {
+ "properties" : {
+ "itemId" : {
+ "type" : "keyword"
+ },
+ "itemType" : {
+ "type" : "keyword"
+ },
+ "properties" : {
+ "properties" : {
+ "description" : {
+ "type" : "text",
+ "analyzer" : "folding"
+ },
+ "firstName" : {
+ "type" : "keyword"
+ },
+ "lastName" : {
+ "type" : "keyword"
+ }
+ }
+ }
+ }
+ },
+ "profileId" : {
+ "type" : "keyword"
+ },
+ "properties" : {
+ "properties" : {
+ "deviceCategory" : {
+ "type" : "keyword"
+ },
+ "location" : {
+ "type" : "geo_point"
+ },
+ "operatingSystemFamily" : {
+ "type" : "keyword"
+ },
+ "operatingSystemName" : {
+ "type" : "keyword"
+ },
+ "remoteAddr" : {
+ "type" : "keyword"
+ },
+ "remoteHost" : {
+ "type" : "keyword"
+ },
+ "sessionCity" : {
+ "type" : "keyword"
+ },
+ "sessionCountryCode" : {
+ "type" : "keyword"
+ },
+ "sessionCountryName" : {
+ "type" : "keyword"
+ },
+ "userAgentName" : {
+ "type" : "keyword"
+ },
+ "userAgentVersion" : {
+ "type" : "keyword"
}
}
+ },
+ "size" : {
+ "type" : "long"
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/profile.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/profile.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/profile.json
index 4a20426..9aba5d0 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/profile.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/profile.json
@@ -1,37 +1,53 @@
{
"profile": {
- "_all": {
- "enabled": true
- },
"dynamic_templates": [
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
- "analyzer": "folding",
- "include_in_all": true
+ "type": "text",
+ "analyzer": "folding"
}
}
}
],
"properties": {
"itemId": {
- "type": "string",
- "analyzer": "folding",
- "include_in_all": true
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding",
- "include_in_all": true
+ "type": "keyword"
},
"properties": {
"properties": {
+ "j:nodename": {
+ "type": "keyword"
+ },
+ "preferredLanguage": {
+ "type": "keyword"
+ },
"firstVisit": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
+ },
+ "lastVisit": {
+ "type": "date",
+ "format": "strict_date_optional_time||epoch_millis"
+ },
+ "previousVisit": {
+ "type": "date",
+ "format": "strict_date_optional_time||epoch_millis"
+ },
+ "nbOfVisits": {
+ "type": "long"
+ }
+ }
+ },
+ "systemProperties" : {
+ "properties" : {
+ "mergeIdentifier" : {
+ "type" : "keyword"
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/propertyType.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/propertyType.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/propertyType.json
index 88a958e..c03111c 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/propertyType.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/propertyType.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,40 +14,32 @@
],
"properties": {
"automaticMappingsFrom": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"dateRanges": {
"properties": {
"from": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"key": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"to": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
}
}
},
"defaultValue": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"mergeStrategy": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"metadata": {
"properties": {
@@ -58,15 +50,13 @@
"type": "boolean"
},
"id": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"missingPlugins": {
"type": "boolean"
},
"name": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"readOnly": {
"type": "boolean"
@@ -82,8 +72,7 @@
"type": "double"
},
"key": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"to": {
"type": "double"
@@ -97,16 +86,14 @@
"type": "double"
},
"tags": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
},
"target": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"type": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/rule.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/rule.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/rule.json
index 67263cf..842181a 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/rule.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/rule.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,17 +14,15 @@
],
"properties": {
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"metadata": {
"properties": {
"description": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
},
"enabled": {
@@ -34,22 +32,19 @@
"type": "boolean"
},
"id": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"missingPlugins": {
"type": "boolean"
},
"name": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"readOnly": {
"type": "boolean"
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
}
}
},
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/scoring.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/scoring.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/scoring.json
index b62d0a6..70b2f8d 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/scoring.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/scoring.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,17 +14,15 @@
],
"properties": {
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"metadata": {
"properties": {
"description": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
},
"enabled": {
@@ -34,26 +32,23 @@
"type": "boolean"
},
"id": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"missingPlugins": {
"type": "boolean"
},
"name": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"readOnly": {
"type": "boolean"
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"tags": {
- "type": "string",
- "analyzer": "folding"
+ "type": "text",
+ "analyzer" : "folding"
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/segment.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/segment.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/segment.json
index c4527a5..2d25939 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/segment.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/segment.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -14,17 +14,15 @@
],
"properties": {
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"metadata": {
"properties": {
"description": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
},
"enabled": {
@@ -34,22 +32,19 @@
"type": "boolean"
},
"id": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"missingPlugins": {
"type": "boolean"
},
"name": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"readOnly": {
"type": "boolean"
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/session.json
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/session.json b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/session.json
index 2047b4e..b0f6215 100644
--- a/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/session.json
+++ b/persistence-elasticsearch/core/src/main/resources/META-INF/cxs/mappings/session.json
@@ -4,9 +4,9 @@
{
"all": {
"match": "*",
- "match_mapping_type": "string",
+ "match_mapping_type": "text",
"mapping": {
- "type": "string",
+ "type": "text",
"analyzer": "folding"
}
}
@@ -17,38 +17,47 @@
"type": "long"
},
"itemId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"itemType": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"lastEventDate": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
},
"profileId": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
+ },
+ "profile": {
+ "properties": {
+ "itemId": {
+ "type": "keyword"
+ },
+ "itemType": {
+ "type": "keyword"
+ }
+ }
},
"properties": {
"properties": {
"location": {
"type": "geo_point"
+ },
+ "pageReferringURL": {
+ "type": "keyword"
+ },
+ "referringURL": {
+ "type": "keyword"
}
}
},
"scope": {
- "type": "string",
- "analyzer": "folding"
+ "type": "keyword"
},
"size": {
"type": "long"
},
- "systemProperties": {
- "type": "object"
- },
"timeStamp": {
"type": "date",
"format": "strict_date_optional_time||epoch_millis"
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 75039d8..23963ac 100644
--- a/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/persistence-elasticsearch/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -35,10 +35,6 @@
<cm:property name="elasticSearchConfig" value="file:${karaf.etc}/elasticsearch.yml"/>
<cm:property name="monthlyIndex.numberOfShards" value="3"/>
<cm:property name="monthlyIndex.numberOfReplicas" value="0"/>
- <cm:property name="numberOfShards" value="5"/>
- <cm:property name="numberOfReplicas" value="0"/>
- <cm:property name="discovery.zen.ping.multicast.enabled" value="false"/>
- <cm:property name="node.data" value="true"/>
<cm:property name="defaultQueryLimit" value="10"/>
<cm:property name="bulkProcessor.name" value="unomi-bulk" />
@@ -47,6 +43,11 @@
<cm:property name="bulkProcessor.bulkSize" value="5MB" />
<cm:property name="bulkProcessor.flushInterval" value="5s" />
<cm:property name="bulkProcessor.backoffPolicy" value="exponential" />
+
+ <cm:property name="cluster.group" value="default" />
+ <cm:property name="cluster.jmxUsername" value="karaf" />
+ <cm:property name="cluster.jmxPassword" value="karaf" />
+ <cm:property name="cluster.jmxPort" value="1099" />
</cm:default-properties>
</cm:property-placeholder>
@@ -60,6 +61,11 @@
</cm:default-properties>
</cm:property-placeholder>
+ <reference id="karafCellarClusterManager" interface="org.apache.karaf.cellar.core.ClusterManager" />
+ <reference id="karafCellarEventProducer" interface="org.apache.karaf.cellar.core.event.EventProducer" />
+ <reference id="karafCellarGroupManager" interface="org.apache.karaf.cellar.core.GroupManager" />
+ <reference id="osgiConfigurationAdmin" interface="org.osgi.service.cm.ConfigurationAdmin"/>
+
<service id="elasticSearchPersistenceService" ref="elasticSearchPersistenceServiceImpl">
<interfaces>
<value>org.apache.unomi.persistence.spi.PersistenceService</value>
@@ -88,10 +94,6 @@
<property name="indexName" value="${es.index.name}"/>
<property name="monthlyIndexNumberOfShards" value="${es.monthlyIndex.numberOfShards}"/>
<property name="monthlyIndexNumberOfReplicas" value="${es.monthlyIndex.numberOfReplicas}"/>
- <property name="numberOfShards" value="${es.numberOfShards}"/>
- <property name="numberOfReplicas" value="${es.numberOfReplicas}"/>
- <property name="nodeData" value="${es.node.data}"/>
- <property name="discoveryEnabled" value="${es.discovery.zen.ping.multicast.enabled}"/>
<property name="address" value="${web.contextserver.address}"/>
<property name="port" value="${web.contextserver.port}"/>
<property name="secureAddress" value="${web.contextserver.secureAddress}"/>
@@ -119,6 +121,14 @@
<property name="bulkProcessorBulkSize" value="${es.bulkProcessor.bulkSize}" />
<property name="bulkProcessorFlushInterval" value="${es.bulkProcessor.flushInterval}" />
<property name="bulkProcessorBackoffPolicy" value="${es.bulkProcessor.backoffPolicy}" />
+ <property name="karafCellarClusterManager" ref="karafCellarClusterManager" />
+ <property name="karafCellarEventProducer" ref="karafCellarEventProducer" />
+ <property name="karafCellarGroupManager" ref="karafCellarGroupManager" />
+ <property name="karafCellarGroupName" value="${es.cluster.group}" />
+ <property name="osgiConfigurationAdmin" ref="osgiConfigurationAdmin" />
+ <property name="karafJMXUsername" value="${es.cluster.jmxUsername}" />
+ <property name="karafJMXPassword" value="${es.cluster.jmxPassword}" />
+ <property name="karafJMXPort" value="${es.cluster.jmxPort}" />
</bean>
</blueprint>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/log4j2.xml b/persistence-elasticsearch/core/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..ccafeef
--- /dev/null
+++ b/persistence-elasticsearch/core/src/main/resources/log4j2.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<Configuration status="WARN">
+ <Appenders>
+ <Console name="Console" target="SYSTEM_OUT">
+ <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
+ </Console>
+ </Appenders>
+ <Loggers>
+ <Root level="info">
+ <AppenderRef ref="Console"/>
+ </Root>
+ </Loggers>
+</Configuration>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/core/src/main/resources/org.apache.unomi.persistence.elasticsearch.cfg
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/core/src/main/resources/org.apache.unomi.persistence.elasticsearch.cfg b/persistence-elasticsearch/core/src/main/resources/org.apache.unomi.persistence.elasticsearch.cfg
index 2b193f6..ddcbed5 100644
--- a/persistence-elasticsearch/core/src/main/resources/org.apache.unomi.persistence.elasticsearch.cfg
+++ b/persistence-elasticsearch/core/src/main/resources/org.apache.unomi.persistence.elasticsearch.cfg
@@ -35,4 +35,9 @@ bulkProcessor.concurrentRequests=1
bulkProcessor.bulkActions=1000
bulkProcessor.bulkSize=5MB
bulkProcessor.flushInterval=5s
-bulkProcessor.backoffPolicy=exponential
\ No newline at end of file
+bulkProcessor.backoffPolicy=exponential
+
+cluster.group=default
+cluster.jmxUsername=karaf
+cluster.jmxPassword=karaf
+cluster.jmxPort=1099
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPlugin.java
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPlugin.java b/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPlugin.java
index 79fc7d3..b293527 100644
--- a/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPlugin.java
+++ b/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPlugin.java
@@ -22,9 +22,9 @@ import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.plugins.Plugin;
+import java.util.ArrayList;
import java.util.Collection;
-
-import static com.google.common.collect.Lists.newArrayList;
+import java.util.Collections;
public class SecurityPlugin extends Plugin {
@@ -32,30 +32,22 @@ public class SecurityPlugin extends Plugin {
super();
}
- public String name() {
- return "contextserver-security";
- }
-
- public String description() {
- return "A plugin that provides some basic security to the Context Server elasticsearch HTTP and Transport connectors";
- }
-
@Override
- public Collection<Module> nodeModules() {
- Collection<Module> modules = newArrayList();
- // if (settings.getAsBoolean("security.enabled", true)) {
- modules.add(new SecurityPluginModule());
- // }
- return modules;
+ public Collection<Module> createGuiceModules() {
+ return Collections.<Module>singletonList(new SecurityPluginModule());
}
- @SuppressWarnings("rawtypes")
@Override
- public Collection<Class<? extends LifecycleComponent>> nodeServices() {
- Collection<Class<? extends LifecycleComponent>> services = newArrayList();
- // if (settings.getAsBoolean("security.enabled", true)) {
+ @SuppressWarnings("rawtypes") // Plugin use a rawtype
+ public Collection<Class<? extends LifecycleComponent>> getGuiceServiceClasses() {
+ Collection<Class<? extends LifecycleComponent>> services = new ArrayList<>();
services.add(SecurityPluginService.class);
- // }
return services;
}
+
+ @Override
+ public Settings additionalSettings() {
+ return Settings.EMPTY;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPluginService.java
----------------------------------------------------------------------
diff --git a/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPluginService.java b/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPluginService.java
index 6bd73eb..7c99439 100644
--- a/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPluginService.java
+++ b/persistence-elasticsearch/plugins/security/src/main/java/org/apache/unomi/elasticsearch/plugin/security/SecurityPluginService.java
@@ -18,6 +18,7 @@
package org.apache.unomi.elasticsearch.plugin.security;
import org.elasticsearch.ElasticsearchException;
+import org.elasticsearch.client.node.NodeClient;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.common.component.AbstractLifecycleComponent;
import org.elasticsearch.common.inject.Inject;
@@ -37,7 +38,7 @@ import java.util.List;
/**
* ElasticSearch plugin that simply rejects connection from non-authorized IP ranges
*/
-public class SecurityPluginService extends AbstractLifecycleComponent<SecurityPluginService> {
+public class SecurityPluginService extends AbstractLifecycleComponent {
private static final Logger logger = LoggerFactory.getLogger(SecurityPluginService.class.getName());
@@ -102,7 +103,7 @@ public class SecurityPluginService extends AbstractLifecycleComponent<SecurityPl
protected void doStart() throws ElasticsearchException {
restFilter = new RestFilter() {
@Override
- public void process(RestRequest request, RestChannel channel, RestFilterChain filterChain) throws Exception {
+ public void process(RestRequest request, RestChannel channel, NodeClient client, RestFilterChain filterChain) throws Exception {
logger.info("Processing REST request=" + request + " channel=" + channel);
if (request.getRemoteAddress() instanceof InetSocketAddress) {
InetSocketAddress inetSocketAddress = (InetSocketAddress) request.getRemoteAddress();
@@ -113,7 +114,7 @@ public class SecurityPluginService extends AbstractLifecycleComponent<SecurityPl
} else {
logger.warn("Unexpected SocketAddress that is not an InetSocketAddress (but an instance of " + request.getRemoteAddress().getClass().getName() + "), IP range filtering is DISABLED !");
}
- filterChain.continueProcessing(request, channel);
+ filterChain.continueProcessing(request, channel, client);
}
};
restController.registerFilter(restFilter);
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java
----------------------------------------------------------------------
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java
index 90b0efc..d81be03 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PersistenceService.java
@@ -178,14 +178,6 @@ public interface PersistenceService {
void createMapping(String type, String source);
/**
- * TODO
- *
- * @param item
- * @return
- */
- List<String> getMatchingSavedQueries(Item item);
-
- /**
* Checks whether the specified item satisfies the provided condition.
*
* TODO: rename to isMatching?
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
index f5330ed..94e8519 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/BooleanConditionESQueryBuilder.java
@@ -23,6 +23,8 @@ import org.apache.unomi.persistence.elasticsearch.conditions.ConditionESQueryBui
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map;
@@ -32,6 +34,8 @@ import java.util.Map;
*/
public class BooleanConditionESQueryBuilder implements ConditionESQueryBuilder {
+ private static final Logger logger = LoggerFactory.getLogger(BooleanConditionESQueryBuilder.class.getName());
+
@Override
public QueryBuilder buildQuery(Condition condition, Map<String, Object> context,
ConditionESQueryBuilderDispatcher dispatcher) {
@@ -48,9 +52,19 @@ public class BooleanConditionESQueryBuilder implements ConditionESQueryBuilder {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
for (int i = 0; i < conditionCount; i++) {
if (isAndOperator) {
- boolQueryBuilder.must(dispatcher.buildFilter(conditions.get(i)));
+ QueryBuilder andFilter = dispatcher.buildFilter(conditions.get(i));
+ if (andFilter != null) {
+ boolQueryBuilder.must(andFilter);
+ } else {
+ logger.warn("Null filter for boolean AND sub condition " + conditions.get(i));
+ }
} else {
- boolQueryBuilder.should(dispatcher.buildFilter(conditions.get(i)));
+ QueryBuilder orFilter = dispatcher.buildFilter(conditions.get(i));
+ if (orFilter != null) {
+ boolQueryBuilder.should(orFilter);
+ } else {
+ logger.warn("Null filter for boolean OR sub condition " + conditions.get(i));
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
index 083cfe4..001bd3d 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
@@ -37,8 +37,7 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi
if(circleLatitude != null && circleLongitude != null && distance != null) {
return QueryBuilders.geoDistanceQuery("location")
- .lat(circleLatitude)
- .lon(circleLongitude)
+ .point(circleLatitude, circleLongitude)
.distance(distance);
}
} else if("rectangle".equals(type)) {
@@ -49,8 +48,7 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi
if(rectLatitudeNE != null && rectLongitudeNE != null && rectLatitudeSW != null && rectLongitudeSW != null) {
return QueryBuilders.geoBoundingBoxQuery("location")
- .topLeft(rectLatitudeNE, rectLongitudeNE)
- .bottomRight(rectLatitudeSW, rectLongitudeSW);
+ .setCorners(rectLatitudeNE, rectLongitudeNE,rectLatitudeSW, rectLongitudeSW);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
----------------------------------------------------------------------
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
index 4db6e1a..67404a8 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluator.java
@@ -34,7 +34,7 @@ import org.apache.unomi.persistence.elasticsearch.conditions.ConditionEvaluatorD
import org.apache.unomi.persistence.spi.PropertyHelper;
import org.elasticsearch.ElasticsearchParseException;
import org.elasticsearch.common.joda.DateMathParser;
-import org.elasticsearch.index.mapper.core.DateFieldMapper;
+import org.elasticsearch.index.mapper.DateFieldMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -280,7 +280,7 @@ public class PropertyConditionEvaluator implements ConditionEvaluator {
if (value instanceof Date) {
return ((Date) value);
} else {
- DateMathParser parser = new DateMathParser(DateFieldMapper.Defaults.DATE_TIME_FORMATTER);
+ DateMathParser parser = new DateMathParser(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER);
try {
return new Date(parser.parse(value.toString(), new Callable<Long>() {
@Override
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fd75b01..1d8b334 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,12 +63,13 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cxf.version>2.7.11</cxf.version>
+ <cxf.version>3.0.2</cxf.version>
<version.jackson.core>2.6.6</version.jackson.core> <!-- version used by CXF -->
<version.jackson.jaxb>2.6.6</version.jackson.jaxb> <!-- version used by CXF -->
- <version.karaf>3.0.2</version.karaf>
+ <version.karaf>3.0.8</version.karaf>
+ <version.karaf.cellar>3.0.3</version.karaf.cellar>
<version.pax.exam>4.9.1</version.pax.exam>
- <elasticsearch.version>2.4.1</elasticsearch.version>
+ <elasticsearch.version>5.0.1</elasticsearch.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
@@ -521,11 +522,6 @@
<!-- Apache CXF dependencies -->
<dependency>
<groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-core</artifactId>
- <version>${cxf.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
@@ -648,6 +644,25 @@
<type>xml</type>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.karaf.cellar</groupId>
+ <artifactId>apache-karaf-cellar</artifactId>
+ <classifier>features</classifier>
+ <version>${version.karaf.cellar}</version>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.cellar</groupId>
+ <artifactId>org.apache.karaf.cellar.core</artifactId>
+ <version>${version.karaf.cellar}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.cellar</groupId>
+ <artifactId>org.apache.karaf.cellar.config</artifactId>
+ <version>${version.karaf.cellar}</version>
+ </dependency>
+
<!-- End of Apache Karaf dependencies -->
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/rest/pom.xml
----------------------------------------------------------------------
diff --git a/rest/pom.xml b/rest/pom.xml
index f795ff1..4d471a6 100644
--- a/rest/pom.xml
+++ b/rest/pom.xml
@@ -64,11 +64,6 @@
<dependency>
<groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<scope>provided</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/96a018ec/services/pom.xml
----------------------------------------------------------------------
diff --git a/services/pom.xml b/services/pom.xml
index c90ebba..7a58cd7 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -64,16 +64,6 @@
<dependency>
<groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-core</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
- <artifactId>cxf-rt-frontend-jaxws</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<scope>provided</scope>
</dependency>