Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
apollo
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
openSource
apollo
Commits
b86e7543
Commit
b86e7543
authored
Jan 22, 2017
by
张乐
Committed by
GitHub
Jan 22, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #525 from nobodyiam/apollo-client-performance
optimize ConfigService.getConfig performance
parents
309fb999
998bcf75
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
63 additions
and
38 deletions
+63
-38
pom.xml
apollo-adminservice/pom.xml
+1
-1
pom.xml
apollo-assembly/pom.xml
+1
-1
pom.xml
apollo-biz/pom.xml
+1
-1
pom.xml
apollo-buildtools/pom.xml
+1
-1
README.md
apollo-client/README.md
+1
-1
pom.xml
apollo-client/pom.xml
+1
-1
ConfigService.java
...c/main/java/com/ctrip/framework/apollo/ConfigService.java
+51
-26
pom.xml
apollo-common/pom.xml
+1
-1
pom.xml
apollo-configservice/pom.xml
+1
-1
pom.xml
apollo-core/pom.xml
+1
-1
pom.xml
apollo-demo/pom.xml
+1
-1
pom.xml
apollo-portal/pom.xml
+1
-1
pom.xml
pom.xml
+1
-1
No files found.
apollo-adminservice/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-assembly/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-biz/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<artifactId>
apollo
</artifactId>
<groupId>
com.ctrip.framework.apollo
</groupId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
apollo-biz
</artifactId>
...
...
apollo-buildtools/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-client/README.md
View file @
b86e7543
...
...
@@ -88,7 +88,7 @@ If you need this functionality, you could specify the cluster as follows:
<dependency>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo-client
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
</dependency>
## III. Client Usage
...
...
apollo-client/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-client/src/main/java/com/ctrip/framework/apollo/ConfigService.java
View file @
b86e7543
...
...
@@ -14,19 +14,59 @@ import org.unidal.lookup.ContainerLoader;
/**
* Entry point for client config use
*
* @author Jason Song(song_s@ctrip.com)
*/
public
class
ConfigService
{
private
static
final
ConfigService
s_instance
=
new
ConfigService
();
private
PlexusContainer
m_container
;
private
ConfigManager
m_configManager
;
private
ConfigRegistry
m_configRegistry
;
private
ConfigService
()
{
m_container
=
ContainerLoader
.
getDefaultContainer
();
}
private
ConfigManager
getManager
()
{
if
(
m_configManager
==
null
)
{
synchronized
(
this
)
{
if
(
m_configManager
==
null
)
{
try
{
m_configManager
=
m_container
.
lookup
(
ConfigManager
.
class
);
}
catch
(
ComponentLookupException
ex
)
{
ApolloConfigException
exception
=
new
ApolloConfigException
(
"Unable to load ConfigManager!"
,
ex
);
Tracer
.
logError
(
exception
);
throw
exception
;
}
}
}
}
return
m_configManager
;
}
private
ConfigRegistry
getRegistry
()
{
if
(
m_configRegistry
==
null
)
{
synchronized
(
this
)
{
if
(
m_configRegistry
==
null
)
{
try
{
m_configRegistry
=
m_container
.
lookup
(
ConfigRegistry
.
class
);
}
catch
(
ComponentLookupException
ex
)
{
ApolloConfigException
exception
=
new
ApolloConfigException
(
"Unable to load ConfigRegistry!"
,
ex
);
Tracer
.
logError
(
exception
);
throw
exception
;
}
}
}
}
return
m_configRegistry
;
}
/**
* Get Application's config instance.
*
* @return config instance
*/
public
static
Config
getAppConfig
()
{
...
...
@@ -35,35 +75,16 @@ public class ConfigService {
/**
* Get the config instance for the namespace.
*
* @param namespace the namespace of the config
* @return config instance
*/
public
static
Config
getConfig
(
String
namespace
)
{
return
getManager
().
getConfig
(
namespace
);
return
s_instance
.
getManager
().
getConfig
(
namespace
);
}
public
static
ConfigFile
getConfigFile
(
String
namespace
,
ConfigFileFormat
configFileFormat
)
{
return
getManager
().
getConfigFile
(
namespace
,
configFileFormat
);
}
private
static
ConfigManager
getManager
()
{
try
{
return
s_instance
.
m_container
.
lookup
(
ConfigManager
.
class
);
}
catch
(
ComponentLookupException
ex
)
{
ApolloConfigException
exception
=
new
ApolloConfigException
(
"Unable to load ConfigManager!"
,
ex
);
Tracer
.
logError
(
exception
);
throw
exception
;
}
}
private
static
ConfigRegistry
getRegistry
()
{
try
{
return
s_instance
.
m_container
.
lookup
(
ConfigRegistry
.
class
);
}
catch
(
ComponentLookupException
ex
)
{
ApolloConfigException
exception
=
new
ApolloConfigException
(
"Unable to load ConfigRegistry!"
,
ex
);
Tracer
.
logError
(
exception
);
throw
exception
;
}
return
s_instance
.
getManager
().
getConfigFile
(
namespace
,
configFileFormat
);
}
static
void
setConfig
(
Config
config
)
{
...
...
@@ -72,11 +93,12 @@ public class ConfigService {
/**
* Manually set the config for the namespace specified, use with caution.
*
* @param namespace the namespace
* @param config the config instance
* @param config
the config instance
*/
static
void
setConfig
(
String
namespace
,
final
Config
config
)
{
getRegistry
().
register
(
namespace
,
new
ConfigFactory
()
{
s_instance
.
getRegistry
().
register
(
namespace
,
new
ConfigFactory
()
{
@Override
public
Config
create
(
String
namespace
)
{
return
config
;
...
...
@@ -96,15 +118,18 @@ public class ConfigService {
/**
* Manually set the config factory for the namespace specified, use with caution.
*
* @param namespace the namespace
* @param factory the factory instance
* @param factory
the factory instance
*/
static
void
setConfigFactory
(
String
namespace
,
ConfigFactory
factory
)
{
getRegistry
().
register
(
namespace
,
factory
);
s_instance
.
getRegistry
().
register
(
namespace
,
factory
);
}
// for test only
static
void
setContainer
(
PlexusContainer
m_container
)
{
s_instance
.
m_container
=
m_container
;
s_instance
.
m_configManager
=
null
;
s_instance
.
m_configRegistry
=
null
;
}
}
apollo-common/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-configservice/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-core/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
apollo-demo/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<artifactId>
apollo
</artifactId>
<groupId>
com.ctrip.framework.apollo
</groupId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
apollo-demo
</artifactId>
...
...
apollo-portal/pom.xml
View file @
b86e7543
...
...
@@ -4,7 +4,7 @@
<parent>
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
...
...
pom.xml
View file @
b86e7543
...
...
@@ -10,7 +10,7 @@
<groupId>
com.ctrip.framework.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.4.
0
</version>
<version>
0.4.
1
</version>
<name>
Apollo
</name>
<packaging>
pom
</packaging>
<description>
Ctrip Configuration Center
</description>
...
...
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