Updated Branches: refs/heads/javelin 8af85b04d -> af67d8766
Fix issues with @DB support in Spring environment Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/af67d876 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/af67d876 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/af67d876 Branch: refs/heads/javelin Commit: af67d876625bdb7f41a43d4dc1417e17d48bbcef Parents: 8af85b0 Author: Kelven Yang <[email protected]> Authored: Tue Jan 15 12:34:11 2013 -0800 Committer: Kelven Yang <[email protected]> Committed: Tue Jan 15 12:35:03 2013 -0800 ---------------------------------------------------------------------- client/tomcatconf/applicationContext.xml.in | 20 ++++++++++++-- .../src/com/cloud/agent/manager/AgentMonitor.java | 1 + server/src/com/cloud/api/ApiDispatcher.java | 3 -- server/src/com/cloud/api/ApiServlet.java | 4 +- .../com/cloud/event/ActionEventInterceptor.java | 9 ------ .../com/cloud/servlet/RegisterCompleteServlet.java | 6 ++-- server/src/com/cloud/user/dao/UserDaoImpl.java | 2 + .../cloud/utils/db/TransactionContextBuilder.java | 4 +- 8 files changed, 27 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/client/tomcatconf/applicationContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in index 95913b1..c2f2743 100644 --- a/client/tomcatconf/applicationContext.xml.in +++ b/client/tomcatconf/applicationContext.xml.in @@ -39,13 +39,25 @@ --> <aop:config proxy-target-class="true"> <aop:aspect id="dbContextBuilder" ref="transactionContextBuilder"> - <aop:pointcut id="captureAnyMethod" - expression="execution(* *(..))" /> - <aop:around pointcut-ref="captureAnyMethod" method="AroundAnyMethod"/> + <aop:pointcut id="captureAnyMethod" + expression="execution(* *(..))" + /> + + <aop:around pointcut-ref="captureAnyMethod" method="AroundAnyMethod"/> </aop:aspect> + + <aop:aspect id="actionEventInterceptorAspect" ref="actionEventInterceptor"> + <aop:pointcut id="captureEventMethod" + expression="execution(* *(..)) and @annotation(com.cloud.event.ActionEvent)" + /> + <aop:around pointcut-ref="captureEventMethod" method="AroundAnyMethod"/> + </aop:aspect> + </aop:config> <bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" /> + <bean id="actionEventInterceptor" class="com.cloud.event.ActionEventInterceptor" /> + <!-- RPC/Async/EventBus @@ -77,4 +89,6 @@ <bean id="eventBus" class = "org.apache.cloudstack.framework.eventbus.EventBusBase" /> + <bean id="apiServlet" class = "com.cloud.api.ApiServlet" /> + </beans> http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/agent/manager/AgentMonitor.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/agent/manager/AgentMonitor.java b/server/src/com/cloud/agent/manager/AgentMonitor.java index ca8bde9..97c0411 100755 --- a/server/src/com/cloud/agent/manager/AgentMonitor.java +++ b/server/src/com/cloud/agent/manager/AgentMonitor.java @@ -76,6 +76,7 @@ public class AgentMonitor extends Thread implements Listener { private Map<Long, Long> _pingMap; public AgentMonitor() { + _pingMap = new ConcurrentHashMap<Long, Long>(10007); } public AgentMonitor(long msId, HostDao hostDao, VMInstanceDao vmDao, DataCenterDao dcDao, HostPodDao podDao, AgentManagerImpl agentMgr, AlertManager alertMgr, long pingTimeout) { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/api/ApiDispatcher.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 0df37f1..e82e028 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -53,8 +53,6 @@ import org.springframework.stereotype.Component; import com.cloud.async.AsyncCommandQueued; import com.cloud.async.AsyncJobManager; -import com.cloud.configuration.Config; -import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.dao.EntityManager; import com.cloud.exception.AccountLimitException; import com.cloud.exception.InsufficientCapacityException; @@ -67,7 +65,6 @@ import com.cloud.user.AccountManager; import com.cloud.user.UserContext; import com.cloud.utils.DateUtil; import com.cloud.utils.ReflectUtil; -import com.cloud.utils.component.ComponentContext; import com.cloud.utils.exception.CSExceptionErrorCode; import com.cloud.utils.exception.CloudRuntimeException; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/api/ApiServlet.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiServlet.java b/server/src/com/cloud/api/ApiServlet.java index e535030..35bb7cc 100755 --- a/server/src/com/cloud/api/ApiServlet.java +++ b/server/src/com/cloud/api/ApiServlet.java @@ -48,8 +48,8 @@ public class ApiServlet extends HttpServlet { public static final Logger s_logger = Logger.getLogger(ApiServlet.class.getName()); private static final Logger s_accessLogger = Logger.getLogger("apiserver." + ApiServer.class.getName()); - ApiServer _apiServer; - AccountService _accountMgr; + @Inject ApiServer _apiServer; + @Inject AccountService _accountMgr; public ApiServlet() { super(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/event/ActionEventInterceptor.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/event/ActionEventInterceptor.java b/server/src/com/cloud/event/ActionEventInterceptor.java index 7bacfa4..fb89498 100644 --- a/server/src/com/cloud/event/ActionEventInterceptor.java +++ b/server/src/com/cloud/event/ActionEventInterceptor.java @@ -20,24 +20,15 @@ import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Method; import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import com.cloud.user.UserContext; -@Aspect public class ActionEventInterceptor { public ActionEventInterceptor() { } - @Pointcut(value="execution( * *(..))") - public void anyMethod() { - } - - @Around("anyMethod() && @annotation(ActionEvent)") public Object AroundAnyMethod(ProceedingJoinPoint call) throws Throwable { MethodSignature methodSignature = (MethodSignature)call.getSignature(); Method targetMethod = methodSignature.getMethod(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/servlet/RegisterCompleteServlet.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/servlet/RegisterCompleteServlet.java b/server/src/com/cloud/servlet/RegisterCompleteServlet.java index 5922455..779e3a3 100644 --- a/server/src/com/cloud/servlet/RegisterCompleteServlet.java +++ b/server/src/com/cloud/servlet/RegisterCompleteServlet.java @@ -44,9 +44,9 @@ public class RegisterCompleteServlet extends HttpServlet implements ServletConte static final long serialVersionUID = SerialVersionUID.CloudStartupServlet; - @Inject AccountService _accountSvc = null; - @Inject ConfigurationDao _configDao = null; - @Inject UserDao _userDao = null; + @Inject AccountService _accountSvc; + @Inject ConfigurationDao _configDao; + @Inject UserDao _userDao; @Override public void contextInitialized(ServletContextEvent sce) { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/server/src/com/cloud/user/dao/UserDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/user/dao/UserDaoImpl.java b/server/src/com/cloud/user/dao/UserDaoImpl.java index 2f318a3..bbef07e 100644 --- a/server/src/com/cloud/user/dao/UserDaoImpl.java +++ b/server/src/com/cloud/user/dao/UserDaoImpl.java @@ -23,12 +23,14 @@ import javax.ejb.Local; import org.springframework.stereotype.Component; import com.cloud.user.UserVO; +import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @Component @Local(value={UserDao.class}) +@DB public class UserDaoImpl extends GenericDaoBase<UserVO, Long> implements UserDao { protected SearchBuilder<UserVO> UsernamePasswordSearch; protected SearchBuilder<UserVO> UsernameSearch; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/af67d876/utils/src/com/cloud/utils/db/TransactionContextBuilder.java ---------------------------------------------------------------------- diff --git a/utils/src/com/cloud/utils/db/TransactionContextBuilder.java b/utils/src/com/cloud/utils/db/TransactionContextBuilder.java index 8f70087..c8a7f7a 100644 --- a/utils/src/com/cloud/utils/db/TransactionContextBuilder.java +++ b/utils/src/com/cloud/utils/db/TransactionContextBuilder.java @@ -63,14 +63,14 @@ public class TransactionContextBuilder implements MethodInterceptor { private boolean needToIntercept(Method method) { DB db = method.getAnnotation(DB.class); if (db != null) { - return db.txn(); + return true; } Class<?> clazz = method.getDeclaringClass(); do { db = clazz.getAnnotation(DB.class); if (db != null) { - return db.txn(); + return true; } clazz = clazz.getSuperclass(); } while (clazz != Object.class && clazz != null);
