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
e856b5ad
Commit
e856b5ad
authored
Apr 15, 2016
by
lepdou
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:ctripcorp/apollo into portal
parents
d175be44
0ac426a6
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
70 additions
and
351 deletions
+70
-351
AppController.java
...m/ctrip/apollo/adminservice/controller/AppController.java
+1
-1
ClusterController.java
...rip/apollo/adminservice/controller/ClusterController.java
+1
-1
GlobalDefaultExceptionHandler.java
...dminservice/controller/GlobalDefaultExceptionHandler.java
+0
-71
ItemController.java
.../ctrip/apollo/adminservice/controller/ItemController.java
+1
-1
NamespaceController.java
...p/apollo/adminservice/controller/NamespaceController.java
+1
-1
ReleaseController.java
...rip/apollo/adminservice/controller/ReleaseController.java
+1
-1
AppControllerTest.java
...rip/apollo/adminservice/controller/AppControllerTest.java
+1
-1
pom.xml
apollo-biz/pom.xml
+1
-1
ReleaseRepository.java
...va/com/ctrip/apollo/biz/repository/ReleaseRepository.java
+0
-1
AppService.java
...rc/main/java/com/ctrip/apollo/biz/service/AppService.java
+1
-1
ClusterService.java
...ain/java/com/ctrip/apollo/biz/service/ClusterService.java
+1
-1
ItemService.java
...c/main/java/com/ctrip/apollo/biz/service/ItemService.java
+1
-1
ItemSetService.java
...ain/java/com/ctrip/apollo/biz/service/ItemSetService.java
+1
-1
NamespaceService.java
...n/java/com/ctrip/apollo/biz/service/NamespaceService.java
+1
-1
pom.xml
apollo-common/pom.xml
+27
-0
GlobalDefaultExceptionHandler.java
...ollo/common/controller/GlobalDefaultExceptionHandler.java
+13
-8
WebMvcConfig.java
...java/com/ctrip/apollo/common/controller/WebMvcConfig.java
+1
-1
BeanUtils.java
...rc/main/java/com/ctrip/apollo/common/utils/BeanUtils.java
+1
-1
WebMvcConfig.java
...m/ctrip/apollo/configservice/controller/WebMvcConfig.java
+0
-29
ServiceNameConsts.java
...rc/main/java/com/ctrip/apollo/core/ServiceNameConsts.java
+4
-4
StringUtils.java
...rc/main/java/com/ctrip/apollo/core/utils/StringUtils.java
+3
-3
pom.xml
apollo-portal/pom.xml
+1
-5
AppController.java
...ava/com/ctrip/apollo/portal/controller/AppController.java
+1
-2
PropertyResolver.java
...p/apollo/portal/service/txtresolver/PropertyResolver.java
+1
-1
BeanUtils.java
...src/main/java/com/ctrip/apollo/portal/util/BeanUtils.java
+0
-213
pom.xml
pom.xml
+6
-0
No files found.
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/AppController.java
View file @
e856b5ad
...
...
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.service.AdminService
;
import
com.ctrip.apollo.biz.service.AppService
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.AppDTO
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
import
com.ctrip.apollo.core.utils.StringUtils
;
...
...
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/ClusterController.java
View file @
e856b5ad
...
...
@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.apollo.biz.entity.Cluster
;
import
com.ctrip.apollo.biz.service.ClusterService
;
import
com.ctrip.apollo.biz.service.ViewService
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.ClusterDTO
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
...
...
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/GlobalDefaultExceptionHandler.java
deleted
100644 → 0
View file @
d175be44
package
com
.
ctrip
.
apollo
.
adminservice
.
controller
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.HttpMediaTypeException
;
import
org.springframework.web.HttpRequestMethodNotSupportedException
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseStatus
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
static
org
.
springframework
.
http
.
HttpStatus
.
BAD_REQUEST
;
import
static
org
.
springframework
.
http
.
HttpStatus
.
INTERNAL_SERVER_ERROR
;
import
static
org
.
springframework
.
http
.
HttpStatus
.
NOT_FOUND
;
import
static
org
.
springframework
.
http
.
MediaType
.
APPLICATION_JSON
;
@ControllerAdvice
public
class
GlobalDefaultExceptionHandler
{
@ExceptionHandler
(
Exception
.
class
)
public
ResponseEntity
<
Map
<
String
,
Object
>>
exception
(
HttpServletRequest
request
,
Exception
ex
)
{
return
handleError
(
request
,
INTERNAL_SERVER_ERROR
,
ex
);
}
private
ResponseEntity
<
Map
<
String
,
Object
>>
handleError
(
HttpServletRequest
request
,
HttpStatus
status
,
Throwable
ex
)
{
return
handleError
(
request
,
status
,
ex
,
ex
.
getMessage
());
}
private
ResponseEntity
<
Map
<
String
,
Object
>>
handleError
(
HttpServletRequest
request
,
HttpStatus
status
,
Throwable
ex
,
String
message
)
{
ex
=
resolveError
(
ex
);
Map
<
String
,
Object
>
errorAttributes
=
new
LinkedHashMap
<>();
errorAttributes
.
put
(
"status"
,
status
.
value
());
errorAttributes
.
put
(
"message"
,
message
);
errorAttributes
.
put
(
"timestamp"
,
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ISO_LOCAL_DATE_TIME
));
errorAttributes
.
put
(
"exception"
,
resolveError
(
ex
).
getClass
().
getName
());
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
APPLICATION_JSON
);
return
new
ResponseEntity
<>(
errorAttributes
,
headers
,
status
);
}
@ExceptionHandler
({
HttpRequestMethodNotSupportedException
.
class
,
HttpMediaTypeException
.
class
})
public
ResponseEntity
<
Map
<
String
,
Object
>>
methodNotSupportedException
(
HttpServletRequest
request
,
ServletException
ex
)
{
return
handleError
(
request
,
BAD_REQUEST
,
ex
);
}
@ExceptionHandler
(
NotFoundException
.
class
)
@ResponseStatus
(
value
=
NOT_FOUND
)
public
void
notFound
(
HttpServletRequest
req
,
NotFoundException
ex
)
{
}
private
Throwable
resolveError
(
Throwable
ex
)
{
while
(
ex
instanceof
ServletException
&&
ex
.
getCause
()
!=
null
)
{
ex
=
((
ServletException
)
ex
).
getCause
();
}
return
ex
;
}
}
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/ItemController.java
View file @
e856b5ad
...
...
@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.service.ItemService
;
import
com.ctrip.apollo.biz.service.ViewService
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.ItemDTO
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
...
...
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/NamespaceController.java
View file @
e856b5ad
...
...
@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
import
com.ctrip.apollo.biz.entity.Namespace
;
import
com.ctrip.apollo.biz.service.NamespaceService
;
import
com.ctrip.apollo.biz.service.ViewService
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.NamespaceDTO
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
...
...
apollo-adminservice/src/main/java/com/ctrip/apollo/adminservice/controller/ReleaseController.java
View file @
e856b5ad
...
...
@@ -13,7 +13,7 @@ import com.ctrip.apollo.biz.entity.Release;
import
com.ctrip.apollo.biz.service.ConfigService
;
import
com.ctrip.apollo.biz.service.ReleaseService
;
import
com.ctrip.apollo.biz.service.ViewService
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.ReleaseDTO
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
...
...
apollo-adminservice/src/test/java/com/ctrip/apollo/adminservice/controller/AppControllerTest.java
View file @
e856b5ad
...
...
@@ -10,7 +10,7 @@ import org.springframework.test.context.jdbc.Sql.ExecutionPhase;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.repository.AppRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.AppDTO
;
public
class
AppControllerTest
extends
AbstractControllerTest
{
...
...
apollo-biz/pom.xml
View file @
e856b5ad
...
...
@@ -14,7 +14,7 @@
<dependencies>
<dependency>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo-co
re
</artifactId>
<artifactId>
apollo-co
mmon
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/repository/ReleaseRepository.java
View file @
e856b5ad
...
...
@@ -2,7 +2,6 @@ package com.ctrip.apollo.biz.repository;
import
java.util.List
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.query.Param
;
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AppService.java
View file @
e856b5ad
...
...
@@ -9,7 +9,7 @@ import org.springframework.stereotype.Service;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.repository.AppRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
@Service
public
class
AppService
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ClusterService.java
View file @
e856b5ad
...
...
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
import
com.ctrip.apollo.biz.entity.Cluster
;
import
com.ctrip.apollo.biz.repository.ClusterRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
@Service
public
class
ClusterService
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ItemService.java
View file @
e856b5ad
...
...
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.repository.ItemRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
@Service
public
class
ItemService
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ItemSetService.java
View file @
e856b5ad
...
...
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.repository.ItemRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
import
com.ctrip.apollo.core.dto.ItemChangeSets
;
import
com.ctrip.apollo.core.dto.ItemDTO
;
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/NamespaceService.java
View file @
e856b5ad
...
...
@@ -5,7 +5,7 @@ import org.springframework.stereotype.Service;
import
com.ctrip.apollo.biz.entity.Namespace
;
import
com.ctrip.apollo.biz.repository.NamespaceRepository
;
import
com.ctrip.apollo.
biz
.utils.BeanUtils
;
import
com.ctrip.apollo.
common
.utils.BeanUtils
;
@Service
public
class
NamespaceService
{
...
...
apollo-common/pom.xml
0 → 100644
View file @
e856b5ad
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo
</artifactId>
<version>
0.0.1-SNAPSHOT
</version>
<relativePath>
../pom.xml
</relativePath>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
apollo-common
</artifactId>
<name>
Apollo Common
</name>
<dependencies>
<dependency>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-commons
</artifactId>
</dependency>
</dependencies>
</project>
apollo-
portal/src/main/java/com/ctrip/apollo/portal
/controller/GlobalDefaultExceptionHandler.java
→
apollo-
common/src/main/java/com/ctrip/apollo/common
/controller/GlobalDefaultExceptionHandler.java
View file @
e856b5ad
package
com
.
ctrip
.
apollo
.
portal
.
controller
;
package
com
.
ctrip
.
apollo
.
common
.
controller
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
...
...
@@ -8,6 +8,7 @@ import org.springframework.web.HttpRequestMethodNotSupportedException;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
com.ctrip.apollo.core.exception.AbstractBaseException
;
import
com.ctrip.apollo.core.exception.BadRequestException
;
import
com.ctrip.apollo.core.exception.NotFoundException
;
...
...
@@ -32,13 +33,12 @@ public class GlobalDefaultExceptionHandler {
}
private
ResponseEntity
<
Map
<
String
,
Object
>>
handleError
(
HttpServletRequest
request
,
HttpStatus
status
,
Throwable
ex
)
{
HttpStatus
status
,
Throwable
ex
)
{
return
handleError
(
request
,
status
,
ex
,
ex
.
getMessage
());
}
private
ResponseEntity
<
Map
<
String
,
Object
>>
handleError
(
HttpServletRequest
request
,
HttpStatus
status
,
Throwable
ex
,
String
message
)
{
HttpStatus
status
,
Throwable
ex
,
String
message
)
{
ex
=
resolveError
(
ex
);
Map
<
String
,
Object
>
errorAttributes
=
new
LinkedHashMap
<>();
errorAttributes
.
put
(
"status"
,
status
.
value
());
...
...
@@ -46,6 +46,9 @@ public class GlobalDefaultExceptionHandler {
errorAttributes
.
put
(
"timestamp"
,
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ISO_LOCAL_DATE_TIME
));
errorAttributes
.
put
(
"exception"
,
resolveError
(
ex
).
getClass
().
getName
());
if
(
ex
instanceof
AbstractBaseException
)
{
errorAttributes
.
put
(
"errorCode"
,
((
AbstractBaseException
)
ex
).
getErrorCode
());
}
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
APPLICATION_JSON
);
return
new
ResponseEntity
<>(
errorAttributes
,
headers
,
status
);
...
...
@@ -53,17 +56,19 @@ public class GlobalDefaultExceptionHandler {
@ExceptionHandler
({
HttpRequestMethodNotSupportedException
.
class
,
HttpMediaTypeException
.
class
})
public
ResponseEntity
<
Map
<
String
,
Object
>>
methodNotSupportedException
(
HttpServletRequest
request
,
ServletException
ex
)
{
ServletException
ex
)
{
return
handleError
(
request
,
BAD_REQUEST
,
ex
);
}
@ExceptionHandler
(
NotFoundException
.
class
)
public
ResponseEntity
<
Map
<
String
,
Object
>>
notFound
(
HttpServletRequest
request
,
NotFoundException
ex
)
{
public
ResponseEntity
<
Map
<
String
,
Object
>>
notFound
(
HttpServletRequest
request
,
NotFoundException
ex
)
{
return
handleError
(
request
,
NOT_FOUND
,
ex
);
}
@ExceptionHandler
(
BadRequestException
.
class
)
public
ResponseEntity
<
Map
<
String
,
Object
>>
badRequest
(
HttpServletRequest
request
,
BadRequestException
ex
){
public
ResponseEntity
<
Map
<
String
,
Object
>>
badRequest
(
HttpServletRequest
request
,
BadRequestException
ex
)
{
return
handleError
(
request
,
BAD_REQUEST
,
ex
);
}
...
...
apollo-
adminservice/src/main/java/com/ctrip/apollo/adminservice
/controller/WebMvcConfig.java
→
apollo-
common/src/main/java/com/ctrip/apollo/common
/controller/WebMvcConfig.java
View file @
e856b5ad
package
com
.
ctrip
.
apollo
.
adminservice
.
controller
;
package
com
.
ctrip
.
apollo
.
common
.
controller
;
import
java.util.List
;
...
...
apollo-
biz/src/main/java/com/ctrip/apollo/biz
/utils/BeanUtils.java
→
apollo-
common/src/main/java/com/ctrip/apollo/common
/utils/BeanUtils.java
View file @
e856b5ad
package
com
.
ctrip
.
apollo
.
biz
.
utils
;
package
com
.
ctrip
.
apollo
.
common
.
utils
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
...
...
apollo-configservice/src/main/java/com/ctrip/apollo/configservice/controller/WebMvcConfig.java
deleted
100644 → 0
View file @
d175be44
package
com
.
ctrip
.
apollo
.
configservice
.
controller
;
import
java.util.List
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.web.PageableHandlerMethodArgumentResolver
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.method.support.HandlerMethodArgumentResolver
;
import
org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
@Configuration
public
class
WebMvcConfig
extends
WebMvcConfigurerAdapter
{
@Override
public
void
addArgumentResolvers
(
List
<
HandlerMethodArgumentResolver
>
argumentResolvers
)
{
PageableHandlerMethodArgumentResolver
resolver
=
new
PageableHandlerMethodArgumentResolver
();
resolver
.
setFallbackPageable
(
new
PageRequest
(
0
,
10
));
argumentResolvers
.
add
(
resolver
);
}
@Override
public
void
configureContentNegotiation
(
ContentNegotiationConfigurer
configurer
)
{
configurer
.
ignoreAcceptHeader
(
true
).
defaultContentType
(
MediaType
.
APPLICATION_JSON
);
}
}
apollo-core/src/main/java/com/ctrip/apollo/core/ServiceNameConsts.java
View file @
e856b5ad
...
...
@@ -2,11 +2,11 @@ package com.ctrip.apollo.core;
public
interface
ServiceNameConsts
{
final
String
APOLLO_METASERVICE
=
"apollo-metaservice"
;
String
APOLLO_METASERVICE
=
"apollo-metaservice"
;
final
String
APOLLO_CONFIGSERVICE
=
"apollo-configservice"
;
String
APOLLO_CONFIGSERVICE
=
"apollo-configservice"
;
final
String
APOLLO_ADMINSERVICE
=
"apollo-adminservice"
;
String
APOLLO_ADMINSERVICE
=
"apollo-adminservice"
;
final
String
APOLLO_PORTAL
=
"apollo-portal"
;
String
APOLLO_PORTAL
=
"apollo-portal"
;
}
apollo-core/src/main/java/com/ctrip/apollo/core/utils/StringUtils.java
View file @
e856b5ad
...
...
@@ -67,7 +67,7 @@ public class StringUtils {
return
true
;
}
for
(
int
i
=
0
;
i
<
strLen
;
i
++)
{
if
(
(
Character
.
isWhitespace
(
str
.
charAt
(
i
))
==
false
)
)
{
if
(
Character
.
isWhitespace
(
str
.
charAt
(
i
))
==
false
)
{
return
false
;
}
}
...
...
@@ -252,7 +252,7 @@ public class StringUtils {
*/
private
static
boolean
startsWith
(
String
str
,
String
prefix
,
boolean
ignoreCase
)
{
if
(
str
==
null
||
prefix
==
null
)
{
return
(
str
==
null
&&
prefix
==
null
)
;
return
str
==
null
&&
prefix
==
null
;
}
if
(
prefix
.
length
()
>
str
.
length
())
{
return
false
;
...
...
@@ -325,7 +325,7 @@ public class StringUtils {
}
public
static
interface
StringFormatter
<
T
>
{
public
String
format
(
T
obj
);
String
format
(
T
obj
);
}
public
static
<
T
>
String
join
(
Collection
<
T
>
collection
,
String
separator
)
{
...
...
apollo-portal/pom.xml
View file @
e856b5ad
...
...
@@ -13,11 +13,7 @@
<dependencies>
<dependency>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<artifactId>
apollo-common
</artifactId>
</dependency>
</dependencies>
<build>
...
...
apollo-portal/src/main/java/com/ctrip/apollo/portal/controller/AppController.java
View file @
e856b5ad
...
...
@@ -12,7 +12,6 @@ import com.ctrip.apollo.core.exception.BadRequestException;
import
com.ctrip.apollo.core.utils.StringUtils
;
import
com.ctrip.apollo.portal.entity.ClusterNavTree
;
import
com.ctrip.apollo.portal.service.AppService
;
import
com.google.common.base.Strings
;
@RestController
@RequestMapping
(
"/apps"
)
...
...
@@ -23,7 +22,7 @@ public class AppController {
@RequestMapping
(
"/{appId}/navtree"
)
public
ClusterNavTree
nav
(
@PathVariable
String
appId
)
{
if
(
String
s
.
isNullOr
Empty
(
appId
))
{
if
(
String
Utils
.
is
Empty
(
appId
))
{
throw
new
BadRequestException
(
"app id can not be empty."
);
}
...
...
apollo-portal/src/main/java/com/ctrip/apollo/portal/service/txtresolver/PropertyResolver.java
View file @
e856b5ad
...
...
@@ -4,7 +4,7 @@ import com.ctrip.apollo.core.dto.ItemChangeSets;
import
com.ctrip.apollo.core.dto.ItemDTO
;
import
com.ctrip.apollo.core.exception.BadRequestException
;
import
com.ctrip.apollo.core.utils.StringUtils
;
import
com.ctrip.apollo.
portal.util
.BeanUtils
;
import
com.ctrip.apollo.
common.utils
.BeanUtils
;
import
org.springframework.stereotype.Component
;
...
...
apollo-portal/src/main/java/com/ctrip/apollo/portal/util/BeanUtils.java
deleted
100644 → 0
View file @
d175be44
package
com
.
ctrip
.
apollo
.
portal
.
util
;
import
org.springframework.beans.BeanWrapper
;
import
org.springframework.beans.BeanWrapperImpl
;
import
org.springframework.util.CollectionUtils
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
public
class
BeanUtils
{
/**
* <pre>
* List<UserBean> userBeans = userDao.queryUsers();
* List<UserDTO> userDTOs = BeanUtil.batchTransform(UserDTO.class, userBeans);
* </pre>
*/
public
static
<
T
>
List
<
T
>
batchTransform
(
final
Class
<
T
>
clazz
,
List
srcList
)
{
if
(
CollectionUtils
.
isEmpty
(
srcList
))
{
return
Collections
.
EMPTY_LIST
;
}
List
<
T
>
result
=
new
ArrayList
<>(
srcList
.
size
());
for
(
Object
srcObject
:
srcList
)
{
result
.
add
(
transfrom
(
clazz
,
srcObject
));
}
return
result
;
}
/**
* 封装{@link org.springframework.beans.BeanUtils#copyProperties},惯用与直接将转换结果返回
*
* <pre>
* UserBean userBean = new UserBean("username");
* return BeanUtil.transform(UserDTO.class, userBean);
* </pre>
*/
public
static
<
T
>
T
transfrom
(
Class
<
T
>
clazz
,
Object
src
)
{
if
(
src
==
null
)
{
return
null
;
}
T
instance
=
null
;
try
{
instance
=
clazz
.
newInstance
();
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
org
.
springframework
.
beans
.
BeanUtils
.
copyProperties
(
src
,
instance
,
getNullPropertyNames
(
src
));
return
instance
;
}
static
String
[]
getNullPropertyNames
(
Object
source
)
{
final
BeanWrapper
src
=
new
BeanWrapperImpl
(
source
);
java
.
beans
.
PropertyDescriptor
[]
pds
=
src
.
getPropertyDescriptors
();
Set
<
String
>
emptyNames
=
new
HashSet
<
String
>();
for
(
java
.
beans
.
PropertyDescriptor
pd
:
pds
)
{
Object
srcValue
=
src
.
getPropertyValue
(
pd
.
getName
());
if
(
srcValue
==
null
)
{
emptyNames
.
add
(
pd
.
getName
());
}
}
String
[]
result
=
new
String
[
emptyNames
.
size
()];
return
emptyNames
.
toArray
(
result
);
}
/**
* 用于将一个列表转换为列表中的对象的某个属性映射到列表中的对象
*
* <pre>
* List<UserDTO> userList = userService.queryUsers();
* Map<Integer, userDTO> userIdToUser = BeanUtil.mapByKey("userId", Integer.class, userList,
* UserDTO.class);
* </pre>
*
* @param key 属性名
*/
public
static
<
K
,
V
>
Map
<
K
,
V
>
mapByKey
(
String
key
,
List
list
)
{
Map
<
K
,
V
>
map
=
new
HashMap
<
K
,
V
>();
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
map
;
}
try
{
Class
clazz
=
list
.
get
(
0
).
getClass
();
Field
field
=
deepFindField
(
clazz
,
key
);
field
.
setAccessible
(
true
);
for
(
Object
o
:
list
)
{
map
.
put
((
K
)
field
.
get
(
o
),
(
V
)
o
);
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
();
}
return
map
;
}
/**
* 根据列表里面的属性聚合
*
* <pre>
* List<ShopDTO> shopList = shopService.queryShops();
* Map<Integer, List<ShopDTO>> city2Shops = BeanUtil.aggByKeyToList("cityId", shopList);
* </pre>
*/
public
static
<
K
,
V
>
Map
<
K
,
List
<
V
>>
aggByKeyToList
(
String
key
,
List
list
)
{
Map
<
K
,
List
<
V
>>
map
=
new
HashMap
<
K
,
List
<
V
>>();
if
(
CollectionUtils
.
isEmpty
(
list
))
{
// 防止外面传入空list
return
map
;
}
try
{
Class
clazz
=
list
.
get
(
0
).
getClass
();
Field
field
=
deepFindField
(
clazz
,
key
);
field
.
setAccessible
(
true
);
for
(
Object
o
:
list
)
{
K
k
=
(
K
)
field
.
get
(
o
);
if
(
map
.
get
(
k
)
==
null
)
{
map
.
put
(
k
,
new
ArrayList
<
V
>());
}
map
.
get
(
k
).
add
((
V
)
o
);
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
();
}
return
map
;
}
/**
* 用于将一个对象的列表转换为列表中对象的属性集合
*
* <pre>
* List<UserDTO> userList = userService.queryUsers();
* Set<Integer> userIds = BeanUtil.toPropertySet("userId", userList);
* </pre>
*/
public
static
Set
toPropertySet
(
String
key
,
List
list
)
{
Set
set
=
new
HashSet
();
if
(
CollectionUtils
.
isEmpty
(
list
))
{
// 防止外面传入空list
return
set
;
}
try
{
Class
clazz
=
list
.
get
(
0
).
getClass
();
Field
field
=
deepFindField
(
clazz
,
key
);
if
(
field
==
null
)
{
return
set
;
}
field
.
setAccessible
(
true
);
for
(
Object
o
:
list
)
{
set
.
add
(
field
.
get
(
o
));
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
return
set
;
}
private
static
Field
deepFindField
(
Class
clazz
,
String
key
)
{
Field
field
=
null
;
while
(!
clazz
.
getName
().
equals
(
Object
.
class
.
getName
()))
{
try
{
field
=
clazz
.
getDeclaredField
(
key
);
if
(
field
!=
null
)
{
break
;
}
}
catch
(
Exception
e
)
{
clazz
=
clazz
.
getSuperclass
();
}
}
return
field
;
}
/**
* 获取某个对象的某个属性
*/
public
static
Object
getProperty
(
Object
obj
,
String
fieldName
)
{
try
{
Field
field
=
deepFindField
(
obj
.
getClass
(),
fieldName
);
if
(
field
!=
null
)
{
field
.
setAccessible
(
true
);
return
field
.
get
(
obj
);
}
}
catch
(
Exception
e
)
{
// ig
}
return
null
;
}
/**
* 设置某个对象的某个属性
*/
public
static
void
setProperty
(
Object
obj
,
String
fieldName
,
Object
value
)
{
try
{
Field
field
=
deepFindField
(
obj
.
getClass
(),
fieldName
);
if
(
field
!=
null
)
{
field
.
setAccessible
(
true
);
field
.
set
(
obj
,
value
);
}
}
catch
(
Exception
e
)
{
// ig
}
}
public
static
List
toPropertyList
(
String
key
,
List
list
)
{
return
new
ArrayList
(
toPropertySet
(
key
,
list
));
}
}
pom.xml
View file @
e856b5ad
...
...
@@ -89,6 +89,7 @@
<module>
apollo-buildtools
</module>
<module>
apollo-core
</module>
<module>
apollo-client
</module>
<module>
apollo-common
</module>
<module>
apollo-biz
</module>
<module>
apollo-configservice
</module>
<module>
apollo-adminservice
</module>
...
...
@@ -105,6 +106,11 @@
</dependency>
<dependency>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo-common
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.ctrip.apollo
</groupId>
<artifactId>
apollo-biz
</artifactId>
<version>
${project.version}
</version>
</dependency>
...
...
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