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
7682ab81
Commit
7682ab81
authored
2 years ago
by
Anil Kumar Gupta
Browse files
Options
Download
Patches
Plain Diff
Issue #KN-439 feat: Fixed the replacement issue.
parent
b8fc6468
release-5.3.0
csp-migration
knowlg-oneclick
patch-1
patch-2
patch-3
release-5.2.0
release-5.2.0_RC2
release-5.2.0_RC1
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
ontology-engine/graph-core_2.11/src/main/scala/org/sunbird/graph/util/CSPMetaUtil.scala
+46
-13
...1/src/main/scala/org/sunbird/graph/util/CSPMetaUtil.scala
with
46 additions
and
13 deletions
+46
-13
ontology-engine/graph-core_2.11/src/main/scala/org/sunbird/graph/util/CSPMetaUtil.scala
+
46
−
13
View file @
7682ab81
package
org.sunbird.graph.util
import
org.apache.commons.collections4.MapUtils
import
org.apache.commons.lang3.StringUtils
import
org.slf4j.LoggerFactory
import
org.sunbird.common.Platform
import
org.sunbird.common.
{
JsonUtils
,
Platform
}
import
org.sunbird.common.dto.Property
import
org.sunbird.graph.dac.model.Node
...
...
@@ -10,11 +11,9 @@ import scala.collection.JavaConverters._
object
CSPMetaUtil
{
private
[
this
]
val
logger
=
LoggerFactory
.
getLogger
(
classOf
[
CSPMetaUtil
])
private
val
defaultMetadataList
=
java
.
util
.
Arrays
.
asList
(
"appIcon"
,
"posterImage"
,
"artifactUrl"
,
"downloadUrl"
,
"variants"
,
"previewUrl"
,
"pdfUrl"
)
private
val
defaultWriteBasePath
=
java
.
util
.
Arrays
.
asList
(
"https://sunbirddev.blob.core.windows.net"
,
"https://obj.dev.sunbird.org"
)
def
updateAbsolutePath
(
data
:
java.util.Map
[
String
,
AnyRef
])
:
java.util.Map
[
String
,
AnyRef
]
=
{
val
cspMeta
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
defaultMetadataList
).
asScala
.
toList
val
cspMeta
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
new
java
.
util
.
ArrayList
[
String
]()
).
asScala
.
toList
val
absolutePath
=
Platform
.
getString
(
"cloudstorage.read_base_path"
,
""
)
+
java
.
io
.
File
.
separator
+
Platform
.
getString
(
"cloud_storage_container"
,
""
)
if
(
MapUtils
.
isNotEmpty
(
data
))
{
val
updatedMeta
:
java.util.Map
[
String
,
AnyRef
]
=
new
java
.
util
.
HashMap
[
String
,
AnyRef
]
...
...
@@ -40,7 +39,7 @@ object CSPMetaUtil {
}
def
updateAbsolutePath
(
property
:
Property
)
:
Property
=
{
val
cspMeta
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
defaultMetadataList
)
val
cspMeta
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
new
java
.
util
.
ArrayList
[
String
]()
)
val
absolutePath
=
Platform
.
getString
(
"cloudstorage.read_base_path"
,
""
)
+
java
.
io
.
File
.
separator
+
Platform
.
getString
(
"cloud_storage_container"
,
""
)
if
(
cspMeta
.
contains
(
property
.
getPropertyName
))
{
val
value
=
property
.
getPropertyValue
...
...
@@ -54,19 +53,53 @@ object CSPMetaUtil {
}
def
updateRelativePath
(
data
:
java.util.Map
[
String
,
AnyRef
])
:
java.util.Map
[
String
,
AnyRef
]
=
{
val
cspMeta
:
java.util.List
[
String
]
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
defaultMetadataList
)
val
validCSPSource
:
java.util.List
[
String
]
=
Platform
.
getStringList
(
"cloudstorage.write_base_path"
,
defaultWriteBasePath
)
val
basePath
:
List
[
String
]
=
validCSPSource
.
asScala
.
toList
.
map
(
source
=>
source
+
java
.
io
.
File
.
separator
+
Platform
.
getString
(
"cloud_storage_container"
,
""
))
if
(
MapUtils
.
isNotEmpty
(
data
))
{
logger
.
info
(
"CSPMetaUtil ::: updateRelativePath util.Map[String, AnyRef] ::: data before url replace :: "
+
data
)
val
cspMeta
:
java.util.List
[
String
]
=
Platform
.
getStringList
(
"cloudstorage.metadata.list"
,
new
java
.
util
.
ArrayList
[
String
]())
val
validCSPSource
:
List
[
String
]
=
Platform
.
getStringList
(
"cloudstorage.write_base_path"
,
new
java
.
util
.
ArrayList
[
String
]()).
asScala
.
toList
val
basePaths
:
Array
[
String
]
=
validCSPSource
.
map
(
source
=>
source
+
java
.
io
.
File
.
separator
+
Platform
.
getString
(
"cloud_storage_container"
,
""
)).
toArray
val
repArray
=
getReplacementData
(
basePaths
,
"CLOUD_STORAGE_BASE_PATH"
)
val
result
=
if
(
MapUtils
.
isNotEmpty
(
data
))
{
val
updatedMeta
:
java.util.Map
[
String
,
AnyRef
]
=
new
java
.
util
.
HashMap
[
String
,
AnyRef
]
data
.
asScala
.
map
(
x
=>
if
(
cspMeta
.
contains
(
x
.
_1
))
{
val
filteredPath
=
basePath
.
filter
(
path
=>
x
.
_2
.
asInstanceOf
[
String
].
contains
(
path
))
updatedMeta
.
put
(
x
.
_1
,
if
(
filteredPath
.
nonEmpty
)
x
.
_2
.
asInstanceOf
[
String
].
replaceAll
(
filteredPath
.
head
,
"CLOUD_STORAGE_BASE_PATH"
)
else
x
.
_2
)
}
else
updatedMeta
.
put
(
x
.
_1
,
x
.
_2
)
if
(
cspMeta
.
contains
(
x
.
_1
))
updatedMeta
.
put
(
x
.
_1
,
getBasePath
(
x
.
_1
,
x
.
_2
,
basePaths
,
repArray
))
else
updatedMeta
.
put
(
x
.
_1
,
x
.
_2
)
).
asJava
updatedMeta
}
else
data
logger
.
info
(
"CSPMetaUtil ::: updateRelativePath util.Map[String, AnyRef] ::: data after url replace :: "
+
result
)
result
}
private
def
getBasePath
(
key
:
String
,
value
:
AnyRef
,
oldPath
:
Array
[
String
],
newPath
:
Array
[
String
])
:
AnyRef
=
{
logger
.
info
(
s
"CSPMetaUtil ::: getBasePath ::: Updating Path for Key : $key & Value : $value"
)
val
res
=
if
(
null
!=
value
)
{
value
match
{
case
x
:
String
=>
if
(
StringUtils
.
isNotBlank
(
x
))
StringUtils
.
replaceEach
(
x
,
oldPath
,
newPath
)
else
x
case
y
:
Map
[
String
,
AnyRef
]
=>
{
val
dStr
=
JsonUtils
.
serialize
(
y
)
val
result
=
StringUtils
.
replaceEach
(
dStr
,
oldPath
,
newPath
)
val
output
:
Map
[
String
,
AnyRef
]
=
JsonUtils
.
deserialize
(
result
,
classOf
[
Map
[
String
,
AnyRef
]])
output
}
case
z
:
java.util.Map
[
String
,
AnyRef
]
=>
{
val
dStr
=
JsonUtils
.
serialize
(
z
)
val
result
=
StringUtils
.
replaceEach
(
dStr
,
oldPath
,
newPath
)
val
output
:
java.util.Map
[
String
,
AnyRef
]
=
JsonUtils
.
deserialize
(
result
,
classOf
[
java.util.Map
[
String
,
AnyRef
]])
output
}
}
}
else
value
logger
.
info
(
s
"CSPMetaUtil ::: getBasePath ::: Updated Path for Key : $key & Updated Value is : $res"
)
res
}
private
def
getReplacementData
(
oldPath
:
Array
[
String
],
repStr
:
String
)
:
Array
[
String
]
=
{
val
repArray
=
new
Array
[
String
](
oldPath
.
length
)
for
(
i
<-
oldPath
.
indices
)
{
repArray
(
i
)
=
repStr
}
repArray
}
}
...
...
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