Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
knowledge-platform
Commits
e0d7921d
Unverified
Commit
e0d7921d
authored
4 years ago
by
Mahesh Kumar Gangula
Committed by
GitHub
4 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #283 from amitpriyadarshi/release-3.0.0
Merge branch 'release-2.10.0' into release-3.0.0
parents
7f1c2b74
102cb666
schema-updates
3.9.0-prod-fix
4.1.0_fixes
AmiableAnil-patch-1
Gcloud_copy
Gcloud_fix
Remove_unwantedCode_Gcloud_fix
actors-test
bulk-upload-comptenecy-mapping
bulk-upload-excelsheet
bulk-upload-test_excel
bulk_upload
code-cleanup
csp-migration
dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9
dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13
ft-spike
knowlg-friday
knowlg-oneclick
local-setup-fix
local-setup-kube
m-4.2.0
master
master-data
new_objecttype
org-target-enhancement
patch-1
patch-2
patch-3
poc_bulk_upload
qs-schema
rahul_bulk_upload_postgres
release-3.0.0
release-3.0.1
release-3.1.0
release-3.2.0
release-3.3.0
release-3.4.0
release-3.5.0
release-3.6.0
release-3.6.0.1
release-3.7.0
release-3.8.0
release-3.9.0
release-4.0.0
release-4.1.0
release-4.10.0
release-4.10.1
release-4.2.0
release-4.3.0
release-4.4.0
release-4.5.0
release-4.6.0
release-4.7.0
release-4.7.0-debug
release-4.8.0
release-4.8.0-debug
release-4.9.0
release-4.9.1
release-5.0.0
release-5.0.1
release-5.1.0
release-5.1.0-content
release-5.2.0
release-5.3.0
revert-718-visiblity-private-api
revert-719-assessment-private-read-api
revert-720-visiblity-public-search-api
revert-721-visiblity-private-search-api
review-4.1.0
s-debug
schema-update-4.0
release-5.2.0_RC2
release-5.2.0_RC1
release-5.1.0_RC1
release-5.0.0_RC2
release-5.0.0_RC1
release-4.10.0_RC2
release-4.10.0_RC1
release-4.9.1_RC1
release-4.9.0_RC8
release-4.9.0_RC7
release-4.9.0_RC6
release-4.9.0_RC5
release-4.9.0_RC4
release-4.9.0_RC3
release-4.9.0_RC2
release-4.9.0_RC1
release-4.8.0_RC5
release-4.8.0_RC4
release-4.8.0_RC3
release-4.8.0_RC2
release-4.8.0_RC1
release-4.7.0_RC6
release-4.7.0_RC5
release-4.7.0_RC4
release-4.7.0_RC3
release-4.7.0_RC2
release-4.7.0_RC1
release-4.6.0_RC2
release-4.6.0_RC1
release-4.5.0_RC2
release-4.5.0_RC1
release-4.4.0_RC6
release-4.4.0_RC5
release-4.4.0_RC4
release-4.4.0_RC3
release-4.4.0_RC2
release-4.4.0_RC1
release-4.3.0_RC10
release-4.3.0_RC9
release-4.3.0_RC8
release-4.3.0_RC7
release-4.3.0_RC6
release-4.3.0_RC5
release-4.3.0_RC4
release-4.3.0_RC3
release-4.3.0_RC2
release-4.3.0_RC1
release-4.2.0_RC13
release-4.2.0_RC12
release-4.2.0_RC11
release-4.2.0_RC10
release-4.2.0_RC9
release-4.2.0_RC8
release-4.2.0_RC7
release-4.2.0_RC6
release-4.2.0_RC5
release-4.2.0_RC4
release-4.2.0_RC3
release-4.2.0_RC2
release-4.2.0_RC1
release-4.1.0_RC13
release-4.1.0_RC12
release-4.1.0_RC11
release-4.1.0_RC10
release-4.1.0_RC9
release-4.1.0_RC8
release-4.1.0_RC7
release-4.1.0_RC6
release-4.1.0_RC5
release-4.1.0_RC4
release-4.1.0_RC3
release-4.1.0_RC2
release-4.1.0_RC1
release-4.0.0_RC9
release-4.0.0_RC8
release-4.0.0_RC7
release-4.0.0_RC6
release-4.0.0_RC5
release-4.0.0_RC4
release-4.0.0_RC3
release-4.0.0_RC2
release-4.0.0_RC1
release-3.9.0_RC12
release-3.9.0_RC11
release-3.9.0_RC10
release-3.9.0_RC9
release-3.9.0_RC8
release-3.9.0_RC7
release-3.9.0_RC6
release-3.9.0_RC5
release-3.9.0_RC4
release-3.9.0_RC3
release-3.9.0_RC2
release-3.9.0_RC1
release-3.8.0_RC9
release-3.8.0_RC8
release-3.8.0_RC7
release-3.8.0_RC6
release-3.8.0_RC5
release-3.8.0_RC4
release-3.8.0_RC3
release-3.8.0_RC2
release-3.8.0_RC1
release-3.7.0_RC1
release-3.6.0_RC5
release-3.6.0_RC4
release-3.6.0_RC3
release-3.6.0_RC2
release-3.6.0_RC1
release-3.5.0
release-3.5.0_RC2
release-3.5.0_RC1
release-3.4.0
release-3.4.0_RC2
release-3.4.0_RC1
release-3.3.0_RC10
release-3.3.0_RC9
release-3.3.0_RC8
release-3.3.0_RC7
release-3.3.0_RC6
release-3.3.0_RC5
release-3.3.0_RC4
release-3.3.0_RC3
release-3.3.0_RC2
release-3.3.0_RC1
release-3.2.0_RC9
release-3.2.0_RC8
release-3.2.0_RC7
release-3.2.0_RC6
release-3.2.0_RC5
release-3.2.0_RC4
release-3.2.0_RC3
release-3.2.0_RC2
release-3.2.0_RC1
release-3.1.0
release-3.1.0_RC8
release-3.1.0_RC7
release-3.1.0_RC6
release-3.1.0_RC5
release-3.1.0_RC4
release-3.1.0_RC3
release-3.1.0_RC2
release-3.1.0_RC1
release-3.0.1_RC3
release-3.0.1_RC2
release-3.0.1_RC1
release-3.0.0
release-3.0.0_RC11
release-3.0.0_RC10
release-3.0.0_RC9
release-3.0.0_RC8
release-3.0.0_RC7
release-3.0.0_RC6
release-3.0.0_RC5
release-3.0.0_RC4
release-3.0.0_RC3
release-3.0.0_RC2
release-3.0.0_RC1
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
ontology-engine/graph-dac-api/src/main/java/org/sunbird/graph/dac/model/Relation.java
+12
-1
...i/src/main/java/org/sunbird/graph/dac/model/Relation.java
search-api/search-actors/src/main/java/org/sunbird/actors/SearchActor.java
+46
-33
...-actors/src/main/java/org/sunbird/actors/SearchActor.java
search-api/search-actors/src/main/java/org/sunbird/actors/SearchBaseActor.java
+18
-8
...ors/src/main/java/org/sunbird/actors/SearchBaseActor.java
search-api/search-core/src/main/java/org/sunbird/search/client/ElasticSearchUtil.java
+10
-2
...ain/java/org/sunbird/search/client/ElasticSearchUtil.java
search-api/search-core/src/main/java/org/sunbird/search/util/DefinitionUtil.java
+1
-1
...src/main/java/org/sunbird/search/util/DefinitionUtil.java
with
87 additions
and
45 deletions
+87
-45
ontology-engine/graph-dac-api/src/main/java/org/sunbird/graph/dac/model/Relation.java
+
12
−
1
View file @
e0d7921d
package
org.sunbird.graph.dac.model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.neo4j.driver.v1.Value
;
import
org.neo4j.graphdb.Node
;
...
...
@@ -230,8 +231,18 @@ public class Relation implements Serializable {
this
.
endNodeId
=
endNodeId
;
}
// TODO: In 3.0 if metadata is empty set it with new HashMap and return (to handle NPE.
// public Map<String, Object> getMetadata() {
// if (MapUtils.isEmpty(metadata))
// metadata = new HashMap<String, Object>();
// return metadata;
// }
public
Map
<
String
,
Object
>
getMetadata
()
{
return
metadata
;
if
(!
MapUtils
.
isEmpty
(
metadata
))
return
metadata
;
else
return
new
HashMap
<
String
,
Object
>();
}
public
void
setMetadata
(
Map
<
String
,
Object
>
metadata
)
{
...
...
This diff is collapsed.
Click to expand it.
search-api/search-actors/src/main/java/org/sunbird/actors/SearchActor.java
+
46
−
33
View file @
e0d7921d
...
...
@@ -2,6 +2,7 @@ package org.sunbird.actors;
import
akka.dispatch.Futures
;
import
akka.dispatch.Mapper
;
import
akka.dispatch.Recover
;
import
akka.util.Timeout
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.MapUtils
;
...
...
@@ -36,43 +37,54 @@ public class SearchActor extends SearchBaseActor {
public
Future
<
Response
>
onReceive
(
Request
request
)
throws
Throwable
{
String
operation
=
request
.
getOperation
();
SearchProcessor
processor
=
new
SearchProcessor
();
if
(
StringUtils
.
equalsIgnoreCase
(
"INDEX_SEARCH"
,
operation
))
{
SearchDTO
searchDTO
=
getSearchDTO
(
request
);
Future
<
Map
<
String
,
Object
>>
searchResult
=
processor
.
processSearch
(
searchDTO
,
true
);
return
searchResult
.
map
(
new
Mapper
<
Map
<
String
,
Object
>,
Response
>()
{
@Override
public
Response
apply
(
Map
<
String
,
Object
>
lstResult
)
{
String
mode
=
(
String
)
request
.
getRequest
().
get
(
SearchConstants
.
mode
);
if
(
StringUtils
.
isNotBlank
(
mode
)
&&
StringUtils
.
equalsIgnoreCase
(
"collection"
,
mode
))
{
return
OK
(
getCollectionsResult
(
lstResult
,
processor
,
request
));
}
else
{
return
OK
(
lstResult
);
try
{
if
(
StringUtils
.
equalsIgnoreCase
(
"INDEX_SEARCH"
,
operation
))
{
SearchDTO
searchDTO
=
getSearchDTO
(
request
);
Future
<
Map
<
String
,
Object
>>
searchResult
=
processor
.
processSearch
(
searchDTO
,
true
);
return
searchResult
.
map
(
new
Mapper
<
Map
<
String
,
Object
>,
Response
>()
{
@Override
public
Response
apply
(
Map
<
String
,
Object
>
lstResult
)
{
String
mode
=
(
String
)
request
.
getRequest
().
get
(
SearchConstants
.
mode
);
if
(
StringUtils
.
isNotBlank
(
mode
)
&&
StringUtils
.
equalsIgnoreCase
(
"collection"
,
mode
))
{
return
OK
(
getCollectionsResult
(
lstResult
,
processor
,
request
));
}
else
{
return
OK
(
lstResult
);
}
}
},
getContext
().
dispatcher
()).
recoverWith
(
new
Recover
<
Future
<
Response
>>()
{
@Override
public
Future
<
Response
>
recover
(
Throwable
failure
)
throws
Throwable
{
TelemetryManager
.
error
(
"Unable to process the request:: Request: "
+
JsonUtils
.
serialize
(
request
),
failure
);
return
ERROR
(
request
.
getOperation
(),
failure
);
}
},
getContext
().
dispatcher
());
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"COUNT"
,
operation
))
{
Map
<
String
,
Object
>
countResult
=
processor
.
processCount
(
getSearchDTO
(
request
));
if
(
null
!=
countResult
.
get
(
"count"
))
{
Integer
count
=
(
Integer
)
countResult
.
get
(
"count"
);
return
Futures
.
successful
(
OK
(
"count"
,
count
));
}
else
{
return
Futures
.
successful
(
ERROR
(
""
,
"count is empty or null"
,
ResponseCode
.
SERVER_ERROR
,
""
,
null
));
}
},
getContext
().
dispatcher
());
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"COUNT"
,
operation
))
{
Map
<
String
,
Object
>
countResult
=
processor
.
processCount
(
getSearchDTO
(
request
));
if
(
null
!=
countResult
.
get
(
"count"
))
{
Integer
count
=
(
Integer
)
countResult
.
get
(
"count"
);
return
Futures
.
successful
(
OK
(
"count"
,
count
));
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"METRICS"
,
operation
))
{
Future
<
Map
<
String
,
Object
>>
searchResult
=
processor
.
processSearch
(
getSearchDTO
(
request
),
false
);
return
searchResult
.
map
(
new
Mapper
<
Map
<
String
,
Object
>,
Response
>()
{
@Override
public
Response
apply
(
Map
<
String
,
Object
>
lstResult
)
{
return
OK
(
getCompositeSearchResponse
(
lstResult
));
}
},
getContext
().
dispatcher
());
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"GROUP_SEARCH_RESULT_BY_OBJECTTYPE"
,
operation
))
{
Map
<
String
,
Object
>
searchResponse
=
(
Map
<
String
,
Object
>)
request
.
get
(
"searchResult"
);
return
Futures
.
successful
(
OK
(
getCompositeSearchResponse
(
searchResponse
)));
}
else
{
return
Futures
.
successful
(
ERROR
(
""
,
"count is empty or null"
,
ResponseCode
.
SERVER_ERROR
,
""
,
null
));
TelemetryManager
.
log
(
"Unsupported operation: "
+
operation
);
throw
new
ClientException
(
SearchConstants
.
ERR_INVALID_OPERATION
,
"Unsupported operation: "
+
operation
);
}
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"METRICS"
,
operation
))
{
Future
<
Map
<
String
,
Object
>>
searchResult
=
processor
.
processSearch
(
getSearchDTO
(
request
),
false
);
return
searchResult
.
map
(
new
Mapper
<
Map
<
String
,
Object
>,
Response
>()
{
@Override
public
Response
apply
(
Map
<
String
,
Object
>
lstResult
)
{
return
OK
(
getCompositeSearchResponse
(
lstResult
));
}
},
getContext
().
dispatcher
());
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
"GROUP_SEARCH_RESULT_BY_OBJECTTYPE"
,
operation
))
{
Map
<
String
,
Object
>
searchResponse
=
(
Map
<
String
,
Object
>)
request
.
get
(
"searchResult"
);
return
Futures
.
successful
(
OK
(
getCompositeSearchResponse
(
searchResponse
)));
}
else
{
TelemetryManager
.
log
(
"Unsupported operation: "
+
operation
);
throw
new
ClientException
(
SearchConstants
.
ERR_INVALID_OPERATION
,
"Unsupported operation: "
+
operation
);
}
catch
(
Exception
e
)
{
TelemetryManager
.
info
(
"Error while processing the request: REQUEST::"
+
JsonUtils
.
serialize
(
request
));
return
ERROR
(
operation
,
e
);
}
}
...
...
@@ -443,6 +455,7 @@ public class SearchActor extends SearchBaseActor {
break
;
}
default
:
{
TelemetryManager
.
error
(
"Invalid filters, Unsupported operation:: "
+
filterEntry
.
getKey
()
+
":: filters::"
+
filters
);
throw
new
Exception
(
"Unsupported operation"
);
}
}
...
...
This diff is collapsed.
Click to expand it.
search-api/search-actors/src/main/java/org/sunbird/actors/SearchBaseActor.java
+
18
−
8
View file @
e0d7921d
...
...
@@ -3,8 +3,9 @@ package org.sunbird.actors;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
import
akka.dispatch.Futures
;
import
akka.dispatch.Recover
;
import
akka.pattern.Patterns
;
import
org.
elasticsearch.action.search.SearchPhaseExecutionException
;
import
org.
sunbird.common.JsonUtils
;
import
org.sunbird.common.dto.Request
;
import
org.sunbird.common.dto.Response
;
import
org.sunbird.common.dto.ResponseParams
;
...
...
@@ -36,7 +37,13 @@ public abstract class SearchBaseActor extends AbstractActor {
private
Future
<
Response
>
internalOnReceive
(
Request
request
)
{
try
{
return
onReceive
(
request
);
return
onReceive
(
request
).
recoverWith
(
new
Recover
<
Future
<
Response
>>()
{
@Override
public
Future
<
Response
>
recover
(
Throwable
failure
)
throws
Throwable
{
TelemetryManager
.
error
(
"Unable to process the request:: Request: "
+
JsonUtils
.
serialize
(
request
),
failure
);
return
ERROR
(
request
.
getOperation
(),
failure
);
}
},
getContext
().
dispatcher
());
}
catch
(
Throwable
e
)
{
return
ERROR
(
request
.
getOperation
(),
e
);
}
...
...
@@ -67,10 +74,10 @@ public abstract class SearchBaseActor extends AbstractActor {
params
.
setErr
(
mwException
.
getErrCode
());
response
.
put
(
"messages"
,
mwException
.
getMessage
());
}
else
{
e
.
printStackTrace
(
);
TelemetryManager
.
error
(
"Error while processing"
,
e
);
params
.
setErr
(
"ERR_SYSTEM_EXCEPTION"
);
}
System
.
out
.
println
(
"Exception occurred - class :"
+
e
.
getClass
().
getName
()
+
" with message :"
+
e
.
getMessage
()
);
TelemetryManager
.
error
(
"Exception occurred - class :"
+
e
.
getClass
().
getName
()
+
" with message :"
,
e
);
params
.
setErrmsg
(
setErrMessage
(
e
));
response
.
setParams
(
params
);
setResponseCode
(
response
,
e
);
...
...
@@ -152,9 +159,12 @@ public abstract class SearchBaseActor extends AbstractActor {
protected
String
setErrMessage
(
Throwable
e
){
if
(
e
instanceof
MiddlewareException
)
return
e
.
getMessage
();
else
if
(
e
instanceof
SearchPhaseExecutionException
)
return
e
.
getCause
().
getMessage
();
else
return
"Something went wrong in server while processing the request"
;
else
{
if
(
e
.
getSuppressed
().
length
>
0
)
{
return
e
.
getSuppressed
()[
0
].
getMessage
();
}
else
{
return
e
.
getMessage
();
}
}
}
}
This diff is collapsed.
Click to expand it.
search-api/search-core/src/main/java/org/sunbird/search/client/ElasticSearchUtil.java
+
10
−
2
View file @
e0d7921d
...
...
@@ -9,7 +9,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.http.HttpHost
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.util.EntityUtils
;
import
org.elasticsearch.client.RestClientBuilder
;
import
org.sunbird.search.util.SearchConstants
;
import
org.sunbird.telemetry.logger.TelemetryManager
;
import
org.elasticsearch.action.ActionListener
;
...
...
@@ -102,8 +104,14 @@ public class ElasticSearchUtil {
for
(
String
host
:
hostPort
.
keySet
())
{
httpHosts
.
add
(
new
HttpHost
(
host
,
hostPort
.
get
(
host
)));
}
RestHighLevelClient
client
=
new
RestHighLevelClient
(
RestClient
.
builder
(
httpHosts
.
toArray
(
new
HttpHost
[
httpHosts
.
size
()])));
RestClientBuilder
builder
=
RestClient
.
builder
(
httpHosts
.
toArray
(
new
HttpHost
[
httpHosts
.
size
()]))
.
setRequestConfigCallback
(
new
RestClientBuilder
.
RequestConfigCallback
()
{
@Override
public
RequestConfig
.
Builder
customizeRequestConfig
(
RequestConfig
.
Builder
requestConfigBuilder
)
{
return
requestConfigBuilder
.
setConnectionRequestTimeout
(-
1
);
}
});
RestHighLevelClient
client
=
new
RestHighLevelClient
(
builder
);
if
(
null
!=
client
)
esClient
.
put
(
indexName
,
client
);
}
...
...
This diff is collapsed.
Click to expand it.
search-api/search-core/src/main/java/org/sunbird/search/util/DefinitionUtil.java
+
1
−
1
View file @
e0d7921d
...
...
@@ -24,7 +24,7 @@ public class DefinitionUtil {
String
version
=
objectTypeSchemaMap
.
get
(
objectType
.
toLowerCase
()).
getOrDefault
(
"version"
,
"1.0"
);
ISchemaValidator
schemaValidator
=
SchemaValidatorFactory
.
getInstance
(
schemaName
,
version
);
if
(
schemaValidator
.
getConfig
().
hasPath
(
"searchProps"
)){
metadata
.
putAll
(
schemaValidator
.
getConfig
().
getObject
(
"searchProps"
));
metadata
.
putAll
(
schemaValidator
.
getConfig
().
getObject
(
"searchProps"
)
.
unwrapped
()
);
}
return
metadata
;
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets