Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
apollo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
apollo
Commits
fba39307
Commit
fba39307
authored
Feb 22, 2020
by
Jason Song
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
a little refactoring for pr #2867
parent
f9b2aa6b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
77 additions
and
106 deletions
+77
-106
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/environment/PortalMetaDomainConsts.java
...ork/apollo/portal/environment/PortalMetaDomainConsts.java
+1
-1
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/environment/PortalMetaServerProvider.java
...k/apollo/portal/environment/PortalMetaServerProvider.java
+20
-42
apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/environment/PortalMetaDomainConstsTest.java
...apollo/portal/environment/PortalMetaDomainConstsTest.java
+10
-13
apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/environment/PortalMetaServerProviderTest.java
...ollo/portal/environment/PortalMetaServerProviderTest.java
+46
-50
No files found.
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/environment/PortalMetaDomainConsts.java
View file @
fba39307
...
@@ -34,7 +34,7 @@ public class PortalMetaDomainConsts {
...
@@ -34,7 +34,7 @@ public class PortalMetaDomainConsts {
private
static
final
Map
<
Env
,
String
>
metaServerAddressCache
=
Maps
.
newConcurrentMap
();
private
static
final
Map
<
Env
,
String
>
metaServerAddressCache
=
Maps
.
newConcurrentMap
();
// initialize meta server provider without cache
// initialize meta server provider without cache
private
static
final
PortalMetaServerProvider
metaServerProvider
=
new
PortalMetaServerProvider
();
private
static
final
PortalMetaServerProvider
metaServerProvider
=
PortalMetaServerProvider
.
getInstance
();
private
static
final
long
REFRESH_INTERVAL_IN_SECOND
=
60
;
// 1 min
private
static
final
long
REFRESH_INTERVAL_IN_SECOND
=
60
;
// 1 min
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalMetaDomainConsts
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
PortalMetaDomainConsts
.
class
);
...
...
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/environment/PortalMetaServerProvider.java
View file @
fba39307
...
@@ -30,17 +30,27 @@ public class PortalMetaServerProvider {
...
@@ -30,17 +30,27 @@ public class PortalMetaServerProvider {
*/
*/
private
static
final
String
APOLLO_ENV_PROPERTIES_FILE_PATH
=
"apollo-env.properties"
;
private
static
final
String
APOLLO_ENV_PROPERTIES_FILE_PATH
=
"apollo-env.properties"
;
// thread safe
private
static
final
PortalMetaServerProvider
instance
=
new
PortalMetaServerProvider
();
private
static
volatile
Map
<
Env
,
String
>
domains
=
initializeDomains
();
p
ublic
PortalMetaServerProvider
()
{
p
rivate
Map
<
Env
,
String
>
domains
;
private
PortalMetaServerProvider
()
{
domains
=
initializeDomains
();
}
public
static
PortalMetaServerProvider
getInstance
()
{
return
instance
;
}
String
getMetaServerAddress
(
Env
targetEnv
)
{
String
metaServerAddress
=
domains
.
get
(
targetEnv
);
return
metaServerAddress
==
null
?
null
:
metaServerAddress
.
trim
();
}
}
/**
/**
* load all environment's meta address dynamically when this class loaded by JVM
* load all environment's meta address dynamically when this class loaded by JVM
*/
*/
private
static
Map
<
Env
,
String
>
initializeDomains
()
{
private
Map
<
Env
,
String
>
initializeDomains
()
{
// find key-value from System Property which key ends with "_meta" (case insensitive)
// find key-value from System Property which key ends with "_meta" (case insensitive)
Map
<
String
,
String
>
metaServerAddressesFromSystemProperty
=
KeyValueUtils
.
filterWithKeyIgnoreCaseEndsWith
(
System
.
getProperties
(),
"_meta"
);
Map
<
String
,
String
>
metaServerAddressesFromSystemProperty
=
KeyValueUtils
.
filterWithKeyIgnoreCaseEndsWith
(
System
.
getProperties
(),
"_meta"
);
// remove key's suffix "_meta" (case insensitive)
// remove key's suffix "_meta" (case insensitive)
...
@@ -77,55 +87,23 @@ public class PortalMetaServerProvider {
...
@@ -77,55 +87,23 @@ public class PortalMetaServerProvider {
}
}
// log all
// log all
logger
.
info
(
"
All environment's meta server addres
s: {}"
,
map
);
logger
.
info
(
"
Loaded meta server addresse
s: {}"
,
map
);
return
map
;
return
map
;
}
}
/**
* reload all
* environments and meta server addresses
*/
public
static
void
reloadAll
()
{
domains
=
initializeDomains
();
}
public
static
String
getMetaServerAddress
(
Env
targetEnv
)
{
String
metaServerAddress
=
domains
.
get
(
targetEnv
);
return
metaServerAddress
==
null
?
null
:
metaServerAddress
.
trim
();
}
/**
/**
* add a environment's meta server address
* add a environment's meta server address
* for the feature: add self-define environment in the web ui
* for the feature: add self-define environment in the web ui
* @param env
* @param metaServerAddress
*/
*/
public
static
void
add
MetaServerAddress
(
Env
env
,
String
metaServerAddress
)
{
void
mock
MetaServerAddress
(
Env
env
,
String
metaServerAddress
)
{
domains
.
put
(
env
,
metaServerAddress
);
domains
.
put
(
env
,
metaServerAddress
);
}
}
/**
/**
*
delete the meta server address of the environmen
t
*
only for tes
t
*
@param env
*
reload all environments and meta server addresses
*/
*/
public
static
void
deleteMetaServerAddress
(
Env
env
)
{
void
reset
()
{
domains
.
remove
(
env
);
domains
=
initializeDomains
();
}
/**
* update the meta server address of the environment
* @param env
* @param metaServerAddress
*/
public
static
void
updateMetaServerAddress
(
Env
env
,
String
metaServerAddress
)
{
domains
.
put
(
env
,
metaServerAddress
);
}
/**
* clear all environments and meta server addresses saved
*/
public
static
void
clear
()
{
domains
.
clear
();
}
}
}
}
apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/environment/PortalMetaDomainConstsTest.java
View file @
fba39307
...
@@ -14,14 +14,14 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
...
@@ -14,14 +14,14 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
@After
@After
public
void
tearDown
()
throws
Exception
{
public
void
tearDown
()
throws
Exception
{
super
.
tearDown
();
super
.
tearDown
();
MockMetaServerProvider
.
clear
();
clear
();
}
}
@Test
@Test
public
void
testGetMetaDomain
()
{
public
void
testGetMetaDomain
()
{
// local
// local
String
localMetaServerAddress
=
"http://localhost:8080"
;
String
localMetaServerAddress
=
"http://localhost:8080"
;
PortalMetaServerProvider
.
update
MetaServerAddress
(
Env
.
LOCAL
,
localMetaServerAddress
);
mock
MetaServerAddress
(
Env
.
LOCAL
,
localMetaServerAddress
);
assertEquals
(
localMetaServerAddress
,
PortalMetaDomainConsts
.
getDomain
(
Env
.
LOCAL
));
assertEquals
(
localMetaServerAddress
,
PortalMetaDomainConsts
.
getDomain
(
Env
.
LOCAL
));
// add this environment without meta server address
// add this environment without meta server address
...
@@ -38,8 +38,8 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
...
@@ -38,8 +38,8 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
String
validServer
=
" http://localhost:"
+
PORT
+
" "
;
String
validServer
=
" http://localhost:"
+
PORT
+
" "
;
String
invalidServer
=
"http://localhost:"
+
findFreePort
();
String
invalidServer
=
"http://localhost:"
+
findFreePort
();
MockMetaServerProvider
.
mock
(
Env
.
FAT
,
validServer
+
","
+
invalidServer
);
mockMetaServerAddress
(
Env
.
FAT
,
validServer
+
","
+
invalidServer
);
MockMetaServerProvider
.
mock
(
Env
.
UAT
,
invalidServer
+
","
+
validServer
);
mockMetaServerAddress
(
Env
.
UAT
,
invalidServer
+
","
+
validServer
);
assertEquals
(
validServer
.
trim
(),
PortalMetaDomainConsts
.
getDomain
(
Env
.
FAT
));
assertEquals
(
validServer
.
trim
(),
PortalMetaDomainConsts
.
getDomain
(
Env
.
FAT
));
assertEquals
(
validServer
.
trim
(),
PortalMetaDomainConsts
.
getDomain
(
Env
.
UAT
));
assertEquals
(
validServer
.
trim
(),
PortalMetaDomainConsts
.
getDomain
(
Env
.
UAT
));
...
@@ -50,21 +50,18 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
...
@@ -50,21 +50,18 @@ public class PortalMetaDomainConstsTest extends BaseIntegrationTest {
String
invalidServer
=
"http://localhost:"
+
findFreePort
()
+
" "
;
String
invalidServer
=
"http://localhost:"
+
findFreePort
()
+
" "
;
String
anotherInvalidServer
=
"http://localhost:"
+
findFreePort
()
+
" "
;
String
anotherInvalidServer
=
"http://localhost:"
+
findFreePort
()
+
" "
;
MockMetaServerProvider
.
mock
(
Env
.
LPT
,
invalidServer
+
","
+
anotherInvalidServer
);
mockMetaServerAddress
(
Env
.
LPT
,
invalidServer
+
","
+
anotherInvalidServer
);
String
metaServer
=
PortalMetaDomainConsts
.
getDomain
(
Env
.
LPT
);
String
metaServer
=
PortalMetaDomainConsts
.
getDomain
(
Env
.
LPT
);
assertTrue
(
metaServer
.
equals
(
invalidServer
.
trim
())
||
metaServer
.
equals
(
anotherInvalidServer
.
trim
()));
assertTrue
(
metaServer
.
equals
(
invalidServer
.
trim
())
||
metaServer
.
equals
(
anotherInvalidServer
.
trim
()));
}
}
public
static
class
MockMetaServerProvider
{
private
void
mockMetaServerAddress
(
Env
env
,
String
metaServerAddress
)
{
PortalMetaServerProvider
.
getInstance
().
mockMetaServerAddress
(
env
,
metaServerAddress
);
private
static
void
mock
(
Env
env
,
String
metaServerAddress
)
{
PortalMetaServerProvider
.
addMetaServerAddress
(
env
,
metaServerAddress
);
}
}
private
static
void
clear
()
{
private
void
clear
()
{
PortalMetaServerProvider
.
clear
();
PortalMetaServerProvider
.
getInstance
().
reset
();
}
}
}
}
}
\ No newline at end of file
apollo-portal/src/test/java/com/ctrip/framework/apollo/portal/environment/PortalMetaServerProviderTest.java
View file @
fba39307
...
@@ -8,25 +8,25 @@ import static org.junit.Assert.assertEquals;
...
@@ -8,25 +8,25 @@ import static org.junit.Assert.assertEquals;
public
class
PortalMetaServerProviderTest
{
public
class
PortalMetaServerProviderTest
{
/**
private
PortalMetaServerProvider
portalMetaServerProvider
;
* may be the environments and meta server addresses
* have been clear, so we need to reload when start the every unit test
*/
@Before
@Before
public
void
reload
()
{
public
void
setUp
()
throws
Exception
{
PortalMetaServerProvider
.
reloadAll
();
portalMetaServerProvider
=
PortalMetaServerProvider
.
getInstance
();
}
}
@After
@After
public
void
tearDown
()
throws
Exception
{
public
void
tearDown
()
throws
Exception
{
System
.
clearProperty
(
"dev_meta"
);
System
.
clearProperty
(
"dev_meta"
);
System
.
clearProperty
(
"fat_meta"
);
PortalMetaServerProvider
.
getInstance
().
reset
();
}
}
@Test
@Test
public
void
testFromPropertyFile
()
{
public
void
testFromPropertyFile
()
{
assertEquals
(
"http://localhost:8080"
,
P
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
LOCAL
));
assertEquals
(
"http://localhost:8080"
,
p
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
LOCAL
));
assertEquals
(
"${dev_meta}"
,
P
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
DEV
));
assertEquals
(
"${dev_meta}"
,
p
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
DEV
));
assertEquals
(
"${pro_meta}"
,
P
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
PRO
));
assertEquals
(
"${pro_meta}"
,
p
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
PRO
));
}
}
/**
/**
...
@@ -39,21 +39,17 @@ public class PortalMetaServerProviderTest {
...
@@ -39,21 +39,17 @@ public class PortalMetaServerProviderTest {
System
.
setProperty
(
"dev_meta"
,
someDevMetaAddress
);
System
.
setProperty
(
"dev_meta"
,
someDevMetaAddress
);
System
.
setProperty
(
"fat_meta"
,
someFatMetaAddress
);
System
.
setProperty
(
"fat_meta"
,
someFatMetaAddress
);
// reload above added
// reload above added
PortalMetaServerProvider
.
reloadAll
();
portalMetaServerProvider
.
reset
();
assertEquals
(
someDevMetaAddress
,
P
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
DEV
));
assertEquals
(
someDevMetaAddress
,
p
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
DEV
));
assertEquals
(
someFatMetaAddress
,
P
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
FAT
));
assertEquals
(
someFatMetaAddress
,
p
ortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
FAT
));
String
randomAddress
=
"randomAddress"
;
String
randomAddress
=
"randomAddress"
;
String
randomEnvironment
=
"randomEnvironment"
;
String
randomEnvironment
=
"randomEnvironment"
;
System
.
setProperty
(
randomEnvironment
+
"_meta"
,
randomAddress
);
System
.
setProperty
(
randomEnvironment
+
"_meta"
,
randomAddress
);
// reload above added
// reload above added
PortalMetaServerProvider
.
reloadAll
();
portalMetaServerProvider
.
reset
();
assertEquals
(
assertEquals
(
randomAddress
,
randomAddress
,
portalMetaServerProvider
.
getMetaServerAddress
(
Env
.
valueOf
(
randomEnvironment
)));
PortalMetaServerProvider
.
getMetaServerAddress
(
Env
.
valueOf
(
randomEnvironment
)
)
);
// clear the property
// clear the property
System
.
clearProperty
(
randomEnvironment
+
"_meta"
);
System
.
clearProperty
(
randomEnvironment
+
"_meta"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment