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
1def2409
Commit
1def2409
authored
Apr 16, 2016
by
Yiming Liu
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #99 from yiming187/update
Transactional Support
parents
bd502e16
1d123a22
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
215 additions
and
48 deletions
+215
-48
AdminServiceApplication.java
...c/main/java/com/ctrip/apollo/AdminServiceApplication.java
+6
-1
pom.xml
apollo-biz/pom.xml
+0
-4
App.java
...lo-biz/src/main/java/com/ctrip/apollo/biz/entity/App.java
+6
-4
AppNamespace.java
...c/main/java/com/ctrip/apollo/biz/entity/AppNamespace.java
+6
-4
BaseEntity.java
...src/main/java/com/ctrip/apollo/biz/entity/BaseEntity.java
+2
-1
Cluster.java
...iz/src/main/java/com/ctrip/apollo/biz/entity/Cluster.java
+4
-2
Item.java
...o-biz/src/main/java/com/ctrip/apollo/biz/entity/Item.java
+7
-5
Namespace.java
.../src/main/java/com/ctrip/apollo/biz/entity/Namespace.java
+5
-3
Privilege.java
.../src/main/java/com/ctrip/apollo/biz/entity/Privilege.java
+5
-3
Release.java
...iz/src/main/java/com/ctrip/apollo/biz/entity/Release.java
+8
-6
AdminService.java
.../main/java/com/ctrip/apollo/biz/service/AdminService.java
+3
-6
AppService.java
...rc/main/java/com/ctrip/apollo/biz/service/AppService.java
+4
-0
ClusterService.java
...ain/java/com/ctrip/apollo/biz/service/ClusterService.java
+4
-0
ItemService.java
...c/main/java/com/ctrip/apollo/biz/service/ItemService.java
+4
-0
ItemSetService.java
...ain/java/com/ctrip/apollo/biz/service/ItemSetService.java
+2
-0
NamespaceService.java
...n/java/com/ctrip/apollo/biz/service/NamespaceService.java
+4
-0
PrivilegeService.java
...n/java/com/ctrip/apollo/biz/service/PrivilegeService.java
+3
-0
ReleaseService.java
...ain/java/com/ctrip/apollo/biz/service/ReleaseService.java
+2
-0
AllTests.java
apollo-biz/src/test/java/com/ctrip/apollo/biz/AllTests.java
+3
-1
AppRepositoryTest.java
...va/com/ctrip/apollo/biz/repository/AppRepositoryTest.java
+5
-6
AdminServiceTest.java
...t/java/com/ctrip/apollo/biz/service/AdminServiceTest.java
+5
-0
AdminServiceTransactionTest.java
...ctrip/apollo/biz/service/AdminServiceTransactionTest.java
+97
-0
PrivilegeServiceTest.java
...va/com/ctrip/apollo/biz/service/PrivilegeServiceTest.java
+5
-0
pom.xml
apollo-common/pom.xml
+12
-0
ConfigServiceApplication.java
.../main/java/com/ctrip/apollo/ConfigServiceApplication.java
+7
-1
PortalApplication.java
.../main/java/com/ctrip/apollo/portal/PortalApplication.java
+6
-1
No files found.
apollo-adminservice/src/main/java/com/ctrip/apollo/AdminServiceApplication.java
View file @
1def2409
package
com
.
ctrip
.
apollo
;
import
org.springframework.boot.actuate.system.ApplicationPidFileWriter
;
import
org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.cloud.netflix.eureka.EnableEurekaClient
;
import
org.springframework.context.ConfigurableApplicationContext
;
@SpringBootApplication
@EnableEurekaClient
public
class
AdminServiceApplication
{
public
static
void
main
(
String
[]
args
)
{
new
SpringApplicationBuilder
(
AdminServiceApplication
.
class
).
run
(
args
);
ConfigurableApplicationContext
context
=
new
SpringApplicationBuilder
(
AdminServiceApplication
.
class
).
run
(
args
);
context
.
addApplicationListener
(
new
ApplicationPidFileWriter
());
context
.
addApplicationListener
(
new
EmbeddedServerPortFileWriter
());
}
}
apollo-biz/pom.xml
View file @
1def2409
...
...
@@ -18,10 +18,6 @@
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/App.java
View file @
1def2409
...
...
@@ -2,25 +2,27 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
@Entity
@Table
(
name
=
"App"
)
@SQLDelete
(
sql
=
"Update App set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
App
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Name"
,
n
ullable
=
false
)
private
String
name
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"AppId"
,
n
ullable
=
false
)
private
String
appId
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"OwnerName"
,
n
ullable
=
false
)
private
String
ownerName
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"OwnerEmail"
,
n
ullable
=
false
)
private
String
ownerEmail
;
public
String
getAppId
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/AppNamespace.java
View file @
1def2409
...
...
@@ -2,22 +2,24 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
@Entity
@Table
(
name
=
"AppNamespace"
)
@SQLDelete
(
sql
=
"Update AppNamespace set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
AppNamespace
extends
BaseEntity
{
public
class
AppNamespace
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Name"
,
n
ullable
=
false
)
private
String
name
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"AppId"
,
n
ullable
=
false
)
private
String
appId
;
@Column
@Column
(
name
=
"Comment"
)
private
String
comment
;
public
String
getAppId
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/BaseEntity.java
View file @
1def2409
...
...
@@ -18,9 +18,10 @@ public abstract class BaseEntity {
@Id
@GeneratedValue
@Column
(
name
=
"Id"
)
private
long
id
;
@Column
(
name
=
"IsDeleted"
,
columnDefinition
=
"Bit default '0'"
)
@Column
(
name
=
"IsDeleted"
,
columnDefinition
=
"Bit default '0'"
)
protected
boolean
isDeleted
=
false
;
@Column
(
name
=
"DataChange_CreatedBy"
)
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/Cluster.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
...
...
@@ -10,14 +11,15 @@ import org.hibernate.annotations.Where;
* @author Jason Song(song_s@ctrip.com)
*/
@Entity
@Table
(
name
=
"Cluster"
)
@SQLDelete
(
sql
=
"Update Cluster set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
Cluster
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Name"
,
n
ullable
=
false
)
private
String
name
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"AppId"
,
n
ullable
=
false
)
private
String
appId
;
public
String
getAppId
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/Item.java
View file @
1def2409
...
...
@@ -2,28 +2,30 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
@Entity
@Table
(
name
=
"Item"
)
@SQLDelete
(
sql
=
"Update Item set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
Item
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"NamespaceId"
,
n
ullable
=
false
)
private
long
namespaceId
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"key"
,
n
ullable
=
false
)
private
String
key
;
@Column
@Column
(
name
=
"value"
)
private
String
value
;
@Column
@Column
(
name
=
"comment"
)
private
String
comment
;
@Column
@Column
(
name
=
"LineNum"
)
private
Integer
lineNum
;
public
String
getComment
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/Namespace.java
View file @
1def2409
...
...
@@ -2,22 +2,24 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
@Entity
@Table
(
name
=
"Namespace"
)
@SQLDelete
(
sql
=
"Update Namespace set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
Namespace
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"appId"
,
n
ullable
=
false
)
private
String
appId
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"ClusterName"
,
n
ullable
=
false
)
private
String
clusterName
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"NamespaceName"
,
n
ullable
=
false
)
private
String
namespaceName
;
public
String
getAppId
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/Privilege.java
View file @
1def2409
...
...
@@ -2,22 +2,24 @@ package com.ctrip.apollo.biz.entity;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
org.hibernate.annotations.SQLDelete
;
import
org.hibernate.annotations.Where
;
@Entity
@Table
(
name
=
"Privilege"
)
@SQLDelete
(
sql
=
"Update Privilege set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
Privilege
extends
BaseEntity
{
@Column
@Column
(
name
=
"Name"
,
nullable
=
false
)
private
String
name
;
@Column
@Column
(
name
=
"PrivilType"
,
nullable
=
false
)
private
String
privilType
;
@Column
@Column
(
name
=
"NamespaceId"
)
private
long
namespaceId
;
public
String
getName
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/entity/Release.java
View file @
1def2409
...
...
@@ -6,32 +6,34 @@ import org.hibernate.annotations.Where;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Lob
;
import
javax.persistence.Table
;
/**
* @author Jason Song(song_s@ctrip.com)
*/
@Entity
@Table
(
name
=
"Release"
)
@SQLDelete
(
sql
=
"Update Release set isDeleted = 1 where id = ?"
)
@Where
(
clause
=
"isDeleted = 0"
)
public
class
Release
extends
BaseEntity
{
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Name"
,
n
ullable
=
false
)
private
String
name
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"AppId"
,
n
ullable
=
false
)
private
String
appId
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"ClusterName"
,
n
ullable
=
false
)
private
String
clusterName
;
@Column
@Column
(
name
=
"NamespaceName"
,
nullable
=
false
)
private
String
namespaceName
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Configurations"
,
n
ullable
=
false
)
@Lob
private
String
configurations
;
@Column
(
nullable
=
false
)
@Column
(
n
ame
=
"Comment"
,
n
ullable
=
false
)
private
String
comment
;
public
String
getAppId
()
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AdminService.java
View file @
1def2409
...
...
@@ -2,8 +2,8 @@ package com.ctrip.apollo.biz.service;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.boot.actuate.metrics.CounterService
;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.entity.AppNamespace
;
import
com.ctrip.apollo.biz.entity.Cluster
;
...
...
@@ -16,6 +16,7 @@ import com.ctrip.apollo.core.ConfigConsts;
import
java.util.Date
;
@Service
public
class
AdminService
{
...
...
@@ -30,12 +31,9 @@ public class AdminService {
@Autowired
private
ClusterRepository
clusterRepository
;
@Autowired
private
CounterService
counter
;
@Transactional
public
App
createNewApp
(
App
app
)
{
counter
.
increment
(
"admin.createNewApp.start"
);
String
createBy
=
app
.
getDataChangeCreatedBy
();
App
createdApp
=
appRepository
.
save
(
app
);
String
appId
=
createdApp
.
getAppId
();
...
...
@@ -46,7 +44,6 @@ public class AdminService {
createDefaultNamespace
(
appId
,
createBy
);
counter
.
increment
(
"admin.createNewApp.success"
);
return
app
;
}
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/AppService.java
View file @
1def2409
...
...
@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.repository.AppRepository
;
...
...
@@ -17,6 +18,7 @@ public class AppService {
@Autowired
private
AppRepository
appRepository
;
@Transactional
public
void
delete
(
long
id
)
{
appRepository
.
delete
(
id
);
}
...
...
@@ -34,10 +36,12 @@ public class AppService {
return
appRepository
.
findByAppId
(
appId
);
}
@Transactional
public
App
save
(
App
entity
)
{
return
appRepository
.
save
(
entity
);
}
@Transactional
public
App
update
(
App
app
)
{
App
managedApp
=
appRepository
.
findByAppId
(
app
.
getAppId
());
BeanUtils
.
copyEntityProperties
(
app
,
managedApp
);
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ClusterService.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz.service;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.Cluster
;
import
com.ctrip.apollo.biz.repository.ClusterRepository
;
...
...
@@ -17,14 +18,17 @@ public class ClusterService {
return
clusterRepository
.
findByAppIdAndName
(
appId
,
name
);
}
@Transactional
public
Cluster
save
(
Cluster
entity
)
{
return
clusterRepository
.
save
(
entity
);
}
@Transactional
public
void
delete
(
long
id
)
{
clusterRepository
.
delete
(
id
);
}
@Transactional
public
Cluster
update
(
Cluster
cluster
)
{
Cluster
managedCluster
=
clusterRepository
.
findByAppIdAndName
(
cluster
.
getAppId
(),
cluster
.
getName
());
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ItemService.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz.service;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.repository.ItemRepository
;
...
...
@@ -13,6 +14,7 @@ public class ItemService {
@Autowired
private
ItemRepository
itemRepository
;
@Transactional
public
void
delete
(
long
id
)
{
itemRepository
.
delete
(
id
);
}
...
...
@@ -22,10 +24,12 @@ public class ItemService {
return
item
;
}
@Transactional
public
Item
save
(
Item
item
)
{
return
itemRepository
.
save
(
item
);
}
@Transactional
public
Item
update
(
Item
item
)
{
Item
managedItem
=
itemRepository
.
findOne
(
item
.
getId
());
BeanUtils
.
copyEntityProperties
(
item
,
managedItem
);
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ItemSetService.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz.service;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.repository.ItemRepository
;
...
...
@@ -15,6 +16,7 @@ public class ItemSetService {
@Autowired
private
ItemRepository
itemRepository
;
@Transactional
public
void
updateSet
(
ItemChangeSets
changeSet
)
{
if
(
changeSet
.
getCreateItems
()
!=
null
)
{
for
(
ItemDTO
item
:
changeSet
.
getCreateItems
())
{
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/NamespaceService.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz.service;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.Namespace
;
import
com.ctrip.apollo.biz.repository.NamespaceRepository
;
...
...
@@ -13,6 +14,7 @@ public class NamespaceService {
@Autowired
private
NamespaceRepository
namespaceRepository
;
@Transactional
public
void
delete
(
long
id
)
{
namespaceRepository
.
delete
(
id
);
}
...
...
@@ -26,10 +28,12 @@ public class NamespaceService {
namespaceName
);
}
@Transactional
public
Namespace
save
(
Namespace
entity
)
{
return
namespaceRepository
.
save
(
entity
);
}
@Transactional
public
Namespace
update
(
Namespace
namespace
)
{
Namespace
managedNamespace
=
namespaceRepository
.
findByAppIdAndClusterNameAndNamespaceName
(
namespace
.
getAppId
(),
namespace
.
getClusterName
(),
namespace
.
getNamespaceName
());
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/PrivilegeService.java
View file @
1def2409
...
...
@@ -5,6 +5,7 @@ import com.ctrip.apollo.biz.repository.PrivilegeRepository;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
...
...
@@ -18,6 +19,7 @@ public class PrivilegeService {
@Autowired
private
PrivilegeRepository
privilRepo
;
@Transactional
public
Privilege
addPrivilege
(
long
namespaceId
,
String
name
,
PrivilType
privilType
)
{
Privilege
privil
=
privilRepo
.
findByNamespaceIdAndNameAndPrivilType
(
namespaceId
,
name
,
privilType
.
name
());
...
...
@@ -41,6 +43,7 @@ public class PrivilegeService {
return
privilRepo
.
findByNamespaceId
(
namespaceId
);
}
@Transactional
public
void
removePrivilege
(
long
namespaceId
,
String
name
,
PrivilType
privilType
)
{
Privilege
privil
=
privilRepo
.
findByNamespaceIdAndNameAndPrivilType
(
namespaceId
,
name
,
privilType
.
name
());
...
...
apollo-biz/src/main/java/com/ctrip/apollo/biz/service/ReleaseService.java
View file @
1def2409
...
...
@@ -7,6 +7,7 @@ import java.util.Map;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.entity.Item
;
import
com.ctrip.apollo.biz.entity.Namespace
;
...
...
@@ -40,6 +41,7 @@ public class ReleaseService {
return
release
;
}
@Transactional
public
Release
buildRelease
(
String
name
,
String
comment
,
String
appId
,
String
clusterName
,
String
namespaceName
)
{
Namespace
namespace
=
namespaceRepository
.
findByAppIdAndClusterNameAndNamespaceName
(
appId
,
...
...
apollo-biz/src/test/java/com/ctrip/apollo/biz/AllTests.java
View file @
1def2409
...
...
@@ -2,6 +2,7 @@ package com.ctrip.apollo.biz;
import
com.ctrip.apollo.biz.repository.AppRepositoryTest
;
import
com.ctrip.apollo.biz.service.AdminServiceTest
;
import
com.ctrip.apollo.biz.service.AdminServiceTransactionTest
;
import
com.ctrip.apollo.biz.service.ConfigServiceTest
;
import
com.ctrip.apollo.biz.service.PrivilegeServiceTest
;
...
...
@@ -14,7 +15,8 @@ import org.junit.runners.Suite.SuiteClasses;
AppRepositoryTest
.
class
,
AdminServiceTest
.
class
,
ConfigServiceTest
.
class
,
PrivilegeServiceTest
.
class
})
PrivilegeServiceTest
.
class
,
AdminServiceTransactionTest
.
class
})
public
class
AllTests
{
}
apollo-biz/src/test/java/com/ctrip/apollo/biz/repository/AppRepositoryTest.java
View file @
1def2409
package
com
.
ctrip
.
apollo
.
biz
.
repository
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.SpringApplicationConfiguration
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.BizTestConfiguration
;
import
com.ctrip.apollo.biz.entity.App
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringApplicationConfiguration
(
classes
=
BizTestConfiguration
.
class
)
@Transactional
@Rollback
public
class
AppRepositoryTest
{
@Autowired
private
AppRepository
appRepository
;
@Before
public
void
before
()
{
appRepository
.
deleteAll
();
}
@Test
public
void
testCreate
()
{
String
appId
=
"someAppId"
;
...
...
@@ -66,4 +64,5 @@ public class AppRepositoryTest {
Assert
.
assertEquals
(
0
,
appRepository
.
count
());
}
}
apollo-biz/src/test/java/com/ctrip/apollo/biz/service/AdminServiceTest.java
View file @
1def2409
...
...
@@ -8,7 +8,9 @@ import org.junit.Test;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.SpringApplicationConfiguration
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.BizTestConfiguration
;
import
com.ctrip.apollo.biz.entity.App
;
...
...
@@ -17,6 +19,8 @@ import com.ctrip.apollo.biz.entity.Namespace;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringApplicationConfiguration
(
classes
=
BizTestConfiguration
.
class
)
@Transactional
@Rollback
public
class
AdminServiceTest
{
@Autowired
...
...
@@ -49,4 +53,5 @@ public class AdminServiceTest {
Assert
.
assertEquals
(
1
,
namespaces
.
size
());
Assert
.
assertEquals
(
"application"
,
namespaces
.
get
(
0
).
getNamespaceName
());
}
}
apollo-biz/src/test/java/com/ctrip/apollo/biz/service/AdminServiceTransactionTest.java
0 → 100644
View file @
1def2409
package
com
.
ctrip
.
apollo
.
biz
.
service
;
import
java.util.Date
;
import
org.junit.After
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.SpringApplicationConfiguration
;
import
org.springframework.test.annotation.Commit
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.transaction.AfterTransaction
;
import
org.springframework.test.context.transaction.BeforeTransaction
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.BizTestConfiguration
;
import
com.ctrip.apollo.biz.entity.App
;
import
com.ctrip.apollo.biz.repository.AppNamespaceRepository
;
import
com.ctrip.apollo.biz.repository.AppRepository
;
import
com.ctrip.apollo.biz.repository.ClusterRepository
;
import
com.ctrip.apollo.biz.repository.NamespaceRepository
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringApplicationConfiguration
(
classes
=
BizTestConfiguration
.
class
)
@Transactional
@Commit
public
class
AdminServiceTransactionTest
{
@Autowired
AdminService
adminService
;
@Autowired
private
AppRepository
appRepository
;
@Autowired
private
AppNamespaceRepository
appNamespaceRepository
;
@Autowired
private
NamespaceRepository
namespaceRepository
;
@Autowired
private
ClusterRepository
clusterRepository
;
@BeforeTransaction
public
void
verifyInitialDatabaseState
()
{
for
(
App
app
:
appRepository
.
findAll
())
{
System
.
out
.
println
(
app
.
getAppId
());
}
Assert
.
assertEquals
(
0
,
appRepository
.
count
());
Assert
.
assertEquals
(
0
,
appNamespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
namespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
clusterRepository
.
count
());
}
@Before
public
void
setUpTestDataWithinTransaction
()
{
Assert
.
assertEquals
(
0
,
appRepository
.
count
());
Assert
.
assertEquals
(
0
,
appNamespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
namespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
clusterRepository
.
count
());
}
@Test
@Rollback
public
void
modifyDatabaseWithinTransaction
()
{
String
appId
=
"someAppId"
;
App
app
=
new
App
();
app
.
setAppId
(
appId
);
app
.
setName
(
"someAppName"
);
String
owner
=
"someOwnerName"
;
app
.
setOwnerName
(
owner
);
app
.
setOwnerEmail
(
"someOwnerName@ctrip.com"
);
app
.
setDataChangeCreatedBy
(
owner
);
app
.
setDataChangeLastModifiedBy
(
owner
);
app
.
setDataChangeCreatedTime
(
new
Date
());
adminService
.
createNewApp
(
app
);
}
@After
public
void
tearDownWithinTransaction
()
{
Assert
.
assertEquals
(
1
,
appRepository
.
count
());
Assert
.
assertEquals
(
1
,
appNamespaceRepository
.
count
());
Assert
.
assertEquals
(
1
,
namespaceRepository
.
count
());
Assert
.
assertEquals
(
1
,
clusterRepository
.
count
());
}
@AfterTransaction
public
void
verifyFinalDatabaseState
()
{
Assert
.
assertEquals
(
0
,
appRepository
.
count
());
Assert
.
assertEquals
(
0
,
appNamespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
namespaceRepository
.
count
());
Assert
.
assertEquals
(
0
,
clusterRepository
.
count
());
}
}
apollo-biz/src/test/java/com/ctrip/apollo/biz/service/PrivilegeServiceTest.java
View file @
1def2409
...
...
@@ -8,7 +8,9 @@ import org.junit.Test;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.SpringApplicationConfiguration
;
import
org.springframework.test.annotation.Rollback
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.ctrip.apollo.biz.BizTestConfiguration
;
import
com.ctrip.apollo.biz.entity.App
;
...
...
@@ -18,6 +20,8 @@ import com.ctrip.apollo.biz.entity.Privilege;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringApplicationConfiguration
(
classes
=
BizTestConfiguration
.
class
)
@Transactional
@Rollback
public
class
PrivilegeServiceTest
{
@Autowired
...
...
@@ -96,4 +100,5 @@ public class PrivilegeServiceTest {
Assert
.
assertTrue
(
privilService
.
hasPrivilege
(
namespace
.
getId
(),
"nobody"
,
PrivilegeService
.
PrivilType
.
RELEASE
));
}
}
apollo-common/pom.xml
View file @
1def2409
...
...
@@ -20,8 +20,20 @@
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.cloud
</groupId>
<artifactId>
spring-cloud-starter-spectator
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-commons
</artifactId>
</dependency>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
</dependency>
</dependencies>
</project>
apollo-configservice/src/main/java/com/ctrip/apollo/ConfigServiceApplication.java
View file @
1def2409
package
com
.
ctrip
.
apollo
;
import
org.springframework.boot.actuate.system.ApplicationPidFileWriter
;
import
org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.cloud.netflix.eureka.server.EnableEurekaServer
;
import
org.springframework.context.ConfigurableApplicationContext
;
/**
* Spring boot application entry point
...
...
@@ -14,7 +17,10 @@ import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
public
class
ConfigServiceApplication
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
new
SpringApplicationBuilder
(
ConfigServiceApplication
.
class
).
run
(
args
);
ConfigurableApplicationContext
context
=
new
SpringApplicationBuilder
(
ConfigServiceApplication
.
class
).
run
(
args
);
context
.
addApplicationListener
(
new
ApplicationPidFileWriter
());
context
.
addApplicationListener
(
new
EmbeddedServerPortFileWriter
());
}
}
apollo-portal/src/main/java/com/ctrip/apollo/portal/PortalApplication.java
View file @
1def2409
package
com
.
ctrip
.
apollo
.
portal
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.actuate.system.ApplicationPidFileWriter
;
import
org.springframework.boot.actuate.system.EmbeddedServerPortFileWriter
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.context.ConfigurableApplicationContext
;
@SpringBootApplication
public
class
PortalApplication
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
SpringApplication
.
run
(
PortalApplication
.
class
,
args
);
ConfigurableApplicationContext
context
=
SpringApplication
.
run
(
PortalApplication
.
class
,
args
);
context
.
addApplicationListener
(
new
ApplicationPidFileWriter
());
context
.
addApplicationListener
(
new
EmbeddedServerPortFileWriter
());
}
}
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