Architecture refactoring - Stateless management server - Spring Framework initiatives

This commit is contained in:
Kelven Yang 2012-10-19 15:24:01 -07:00
parent a75916d45f
commit 8ef9e32cfd
6 changed files with 99 additions and 5 deletions

View File

@ -20,7 +20,14 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>cloudStartupServlet</servlet-name>
<servlet-class>com.cloud.servlet.CloudStartupServlet</servlet-class>

81
pom.xml
View File

@ -79,6 +79,7 @@
<cs.servlet.version>2.4</cs.servlet.version>
<cs.jstl.version>1.2</cs.jstl.version>
<cs.selenium.server.version>1.0-20081010.060147</cs.selenium.server.version>
<org.springframework.version>3.0.5.RELEASE</org.springframework.version>
<skipTests>true</skipTests>
</properties>
@ -169,6 +170,86 @@
<version>${cs.junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@ -24,6 +24,7 @@ cluster.servlet.port=9090
# CloudStack database settings
db.cloud.username=cloud
db.cloud.password=cloud
db.root.password=
db.cloud.host=localhost
db.cloud.port=3306
db.cloud.name=cloud

View File

@ -17,9 +17,11 @@
package com.cloud.utils.events;
import java.io.Serializable;
public interface EventBus {
void subscribe(String subject, Subscriber subscriber);
void unsubscribe(String subject, Subscriber subscriber);
void publish(String subject, PublishScope scope, Object sender, String args);
void publish(String subject, PublishScope scope, Object sender, Serializable args);
}

View File

@ -17,6 +17,7 @@
package com.cloud.utils.events;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -72,7 +73,7 @@ public class EventBusBase implements EventBus {
@Override
public void publish(String subject, PublishScope scope, Object sender,
String args) {
Serializable args) {
if(_gate.enter(true)) {
@ -283,7 +284,7 @@ public class EventBusBase implements EventBus {
_children.put(key, childNode);
}
public void notifySubscribers(String subject, Object sender, String args) {
public void notifySubscribers(String subject, Object sender, Serializable args) {
for(Subscriber subscriber : _subscribers) {
subscriber.onPublishEvent(subject, sender, args);
}

View File

@ -17,6 +17,8 @@
package com.cloud.utils.events;
import java.io.Serializable;
public interface Subscriber {
void onPublishEvent(String subject, Object sender, String args);
void onPublishEvent(String subject, Object sender, Serializable args);
}