You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2013/01/17 15:51:10 UTC
[1/3] git commit: Commit the current changes to unit tests
Commit the current changes to unit tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/9759ad57
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/9759ad57
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/9759ad57
Branch: refs/heads/javelin
Commit: 9759ad57f2dd0f2e0147568affe353a870b9b221
Parents: 727fab7
Author: Alex Huang <al...@citrix.com>
Authored: Thu Jan 17 06:50:11 2013 -0800
Committer: Alex Huang <al...@citrix.com>
Committed: Thu Jan 17 06:50:11 2013 -0800
----------------------------------------------------------------------
.../rest/service/api/ClusterRestService.java | 3 +-
.../engine/rest/service/api/PodRestService.java | 3 +-
.../engine/rest/service/api/ZoneRestService.java | 3 +-
.../service/api/ProvisioningServiceImpl.java | 77 ++++++-------
.../ws/jackson/CSJacksonAnnotationTest.java | 39 ++++---
pom.xml | 2 +-
.../security/SecurityGroupManagerImpl2Test.java | 89 ++++-----------
server/test/com/cloud/utils/db/GlobalLockTest.java | 75 ------------
utils/pom.xml | 8 +-
utils/src/com/cloud/utils/db/GenericDaoBase.java | 10 +-
utils/test/com/cloud/utils/QualifierTest.java | 37 ------
utils/test/com/cloud/utils/db/GlobalLockTest.java | 83 ++++++++++++++
.../utils/log/CglibThrowableRendererTest.java | 12 ++-
13 files changed, 186 insertions(+), 255 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ClusterRestService.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ClusterRestService.java b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ClusterRestService.java
index 7c45c45..216cfa8 100755
--- a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ClusterRestService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ClusterRestService.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.engine.rest.service.api;
import java.util.List;
-import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
@@ -38,7 +37,7 @@ import org.springframework.stereotype.Service;
@Service("ClusterRestService")
@Produces("application/json")
public class ClusterRestService {
- @Inject
+// @Inject
ProvisioningService _provisioningService;
@GET @Path("/clusters")
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/engine/api/src/org/apache/cloudstack/engine/rest/service/api/PodRestService.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/PodRestService.java b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/PodRestService.java
index d235f97..0811f0b 100755
--- a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/PodRestService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/PodRestService.java
@@ -18,7 +18,6 @@
*/
package org.apache.cloudstack.engine.rest.service.api;
-import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
@@ -36,7 +35,7 @@ import org.springframework.stereotype.Service;
@Service("PodService")
@Produces({"application/json"})
public class PodRestService {
- @Inject
+// @Inject
ProvisioningService _provisioningService;
@GET @Path("/pod/{pod-id}")
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ZoneRestService.java
----------------------------------------------------------------------
diff --git a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ZoneRestService.java b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ZoneRestService.java
index 318b153..7170f00 100755
--- a/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ZoneRestService.java
+++ b/engine/api/src/org/apache/cloudstack/engine/rest/service/api/ZoneRestService.java
@@ -20,7 +20,6 @@ package org.apache.cloudstack.engine.rest.service.api;
import java.util.List;
-import javax.inject.Inject;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
@@ -39,7 +38,7 @@ import org.springframework.stereotype.Service;
@Service("zoneService")
@Produces({"application/json"})
public class ZoneRestService {
- @Inject
+// @Inject
ProvisioningService _provisioningService;
@GET @Path("/zones")
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
index f503530..83e78b4 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/service/api/ProvisioningServiceImpl.java
@@ -22,15 +22,11 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-
import javax.inject.Inject;
-import javax.ws.rs.GET;
import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntity;
import org.apache.cloudstack.engine.datacenter.entity.api.ClusterEntityImpl;
-import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceEntity.State;
import org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceManager;
import org.apache.cloudstack.engine.datacenter.entity.api.HostEntity;
import org.apache.cloudstack.engine.datacenter.entity.api.HostEntityImpl;
@@ -42,21 +38,20 @@ import org.apache.cloudstack.engine.datacenter.entity.api.ZoneEntityImpl;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
-import com.cloud.dc.Pod;
import com.cloud.host.Host;
import com.cloud.host.Status;
import com.cloud.storage.StoragePool;
-
+@Component
@Service("provisioningService")
@Path("/provisioning")
public class ProvisioningServiceImpl implements ProvisioningService {
- @Inject
- DataCenterResourceManager manager;
-
- @Override
+ @Inject
+ DataCenterResourceManager manager;
+
+ @Override
public StorageEntity registerStorage(String name, List<String> tags, Map<String, String> details) {
// TODO Auto-generated method stub
return null;
@@ -64,41 +59,41 @@ public class ProvisioningServiceImpl implements ProvisioningService {
@Override
public ZoneEntity registerZone(String zoneUuid, String name, String owner, List<String> tags, Map<String, String> details) {
- ZoneEntityImpl zoneEntity = new ZoneEntityImpl(zoneUuid, manager);
- zoneEntity.setName(name);
- zoneEntity.setOwner(owner);
- zoneEntity.setDetails(details);
- zoneEntity.persist();
- return zoneEntity;
+ ZoneEntityImpl zoneEntity = new ZoneEntityImpl(zoneUuid, manager);
+ zoneEntity.setName(name);
+ zoneEntity.setOwner(owner);
+ zoneEntity.setDetails(details);
+ zoneEntity.persist();
+ return zoneEntity;
}
@Override
public PodEntity registerPod(String podUuid, String name, String owner, String zoneUuid, List<String> tags, Map<String, String> details) {
- PodEntityImpl podEntity = new PodEntityImpl(podUuid, manager);
- podEntity.setOwner(owner);
- podEntity.setName(name);
- podEntity.persist();
- return podEntity;
+ PodEntityImpl podEntity = new PodEntityImpl(podUuid, manager);
+ podEntity.setOwner(owner);
+ podEntity.setName(name);
+ podEntity.persist();
+ return podEntity;
}
@Override
public ClusterEntity registerCluster(String clusterUuid, String name, String owner, List<String> tags, Map<String, String> details) {
- ClusterEntityImpl clusterEntity = new ClusterEntityImpl(clusterUuid, manager);
- clusterEntity.setOwner(owner);
- clusterEntity.setName(name);
- clusterEntity.persist();
- return clusterEntity;
+ ClusterEntityImpl clusterEntity = new ClusterEntityImpl(clusterUuid, manager);
+ clusterEntity.setOwner(owner);
+ clusterEntity.setName(name);
+ clusterEntity.persist();
+ return clusterEntity;
}
@Override
public HostEntity registerHost(String hostUuid, String name, String owner, List<String> tags, Map<String, String> details) {
- HostEntityImpl hostEntity = new HostEntityImpl(hostUuid, manager);
- hostEntity.setOwner(owner);
- hostEntity.setName(name);
- hostEntity.setDetails(details);
-
- hostEntity.persist();
- return hostEntity;
+ HostEntityImpl hostEntity = new HostEntityImpl(hostUuid, manager);
+ hostEntity.setOwner(owner);
+ hostEntity.setName(name);
+ hostEntity.setDetails(details);
+
+ hostEntity.persist();
+ return hostEntity;
}
@Override
@@ -109,27 +104,27 @@ public class ProvisioningServiceImpl implements ProvisioningService {
@Override
public void deregisterZone(String uuid) {
- ZoneEntityImpl zoneEntity = new ZoneEntityImpl(uuid, manager);
- zoneEntity.disable();
+ ZoneEntityImpl zoneEntity = new ZoneEntityImpl(uuid, manager);
+ zoneEntity.disable();
}
@Override
public void deregisterPod(String uuid) {
- PodEntityImpl podEntity = new PodEntityImpl(uuid, manager);
- podEntity.disable();
+ PodEntityImpl podEntity = new PodEntityImpl(uuid, manager);
+ podEntity.disable();
}
@Override
public void deregisterCluster(String uuid) {
- ClusterEntityImpl clusterEntity = new ClusterEntityImpl(uuid, manager);
- clusterEntity.disable();
+ ClusterEntityImpl clusterEntity = new ClusterEntityImpl(uuid, manager);
+ clusterEntity.disable();
}
@Override
public void deregisterHost(String uuid) {
- HostEntityImpl hostEntity = new HostEntityImpl(uuid, manager);
- hostEntity.disable();
+ HostEntityImpl hostEntity = new HostEntityImpl(uuid, manager);
+ hostEntity.disable();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/framework/rest/test/org/apache/cloudstack/framework/ws/jackson/CSJacksonAnnotationTest.java
----------------------------------------------------------------------
diff --git a/framework/rest/test/org/apache/cloudstack/framework/ws/jackson/CSJacksonAnnotationTest.java b/framework/rest/test/org/apache/cloudstack/framework/ws/jackson/CSJacksonAnnotationTest.java
index fef6ba2..8869b21 100644
--- a/framework/rest/test/org/apache/cloudstack/framework/ws/jackson/CSJacksonAnnotationTest.java
+++ b/framework/rest/test/org/apache/cloudstack/framework/ws/jackson/CSJacksonAnnotationTest.java
@@ -16,24 +16,25 @@
// under the License.
package org.apache.cloudstack.framework.ws.jackson;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.fasterxml.jackson.core.JsonGenerationException;
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule.Priority;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
+import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule.Priority;
public class CSJacksonAnnotationTest {
@@ -41,7 +42,7 @@ public class CSJacksonAnnotationTest {
public void setUp() throws Exception {
}
- @Test
+ @Test @Ignore
public void test() {
ObjectMapper mapper = new ObjectMapper();
JaxbAnnotationModule jaxbModule = new JaxbAnnotationModule();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4b5e3cf..ffb039b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,7 +43,7 @@
</issueManagement>
<properties>
- <skipTests>true</skipTests>
+ <!-- <skipTests>true</skipTests-->
<cs.jdk.version>1.6</cs.jdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
index 723e4e6..f0576eb 100644
--- a/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
+++ b/server/test/com/cloud/network/security/SecurityGroupManagerImpl2Test.java
@@ -25,97 +25,52 @@ import javax.naming.ConfigurationException;
import junit.framework.TestCase;
import org.junit.After;
-import org.junit.Before;
import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.cloud.agent.MockAgentManagerImpl;
-import com.cloud.api.query.dao.SecurityGroupJoinDaoImpl;
-import com.cloud.configuration.DefaultInterceptorLibrary;
-import com.cloud.configuration.dao.ConfigurationDaoImpl;
-import com.cloud.domain.dao.DomainDaoImpl;
-import com.cloud.event.dao.UsageEventDaoImpl;
-import com.cloud.network.MockNetworkManagerImpl;
-import com.cloud.network.security.dao.SecurityGroupDaoImpl;
-import com.cloud.network.security.dao.SecurityGroupRuleDaoImpl;
-import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl;
-import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl;
-import com.cloud.network.security.dao.SecurityGroupWorkDaoImpl;
-import com.cloud.network.security.dao.VmRulesetLogDaoImpl;
-import com.cloud.projects.MockProjectManagerImpl;
-import com.cloud.tags.dao.ResourceTagsDaoImpl;
-import com.cloud.user.MockAccountManagerImpl;
-import com.cloud.user.MockDomainManagerImpl;
-import com.cloud.user.dao.AccountDaoImpl;
import com.cloud.utils.Profiler;
-
-import com.cloud.vm.MockUserVmManagerImpl;
-import com.cloud.vm.MockVirtualMachineManagerImpl;
import com.cloud.vm.dao.UserVmDaoImpl;
-import com.cloud.vm.dao.VMInstanceDaoImpl;
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = "classpath:/testContext.xml")
public class SecurityGroupManagerImpl2Test extends TestCase {
- //private final static Logger s_logger = Logger.getLogger(SecurityGroupManagerImpl2Test.class);
- @Inject SecurityGroupManagerImpl2 _sgMgr = null;
- @Inject UserVmDaoImpl _vmDao = null;
-
- @Before
- @Override
- public void setUp() {
-/*
- locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class);
- locator.addDao("SecurityGroupDao", SecurityGroupDaoImpl.class);
-
- locator.addDao("SecurityGroupRuleDao", SecurityGroupRuleDaoImpl.class);
- locator.addDao("SecurityGroupJoinDao", SecurityGroupJoinDaoImpl.class);
- locator.addDao("SecurityGroupVMMapDao", SecurityGroupVMMapDaoImpl.class);
- locator.addDao("SecurityGroupRulesDao", SecurityGroupRulesDaoImpl.class);
- locator.addDao("UserVmDao", UserVmDaoImpl.class);
- locator.addDao("AccountDao", AccountDaoImpl.class);
- locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class);
- locator.addDao("SecurityGroupWorkDao", SecurityGroupWorkDaoImpl.class);
- locator.addDao("VmRulesetLogDao", VmRulesetLogDaoImpl.class);
- locator.addDao("VMInstanceDao", VMInstanceDaoImpl.class);
- locator.addDao("DomainDao", DomainDaoImpl.class);
- locator.addDao("UsageEventDao", UsageEventDaoImpl.class);
- locator.addDao("ResourceTagDao", ResourceTagsDaoImpl.class);
- locator.addManager("AgentManager", MockAgentManagerImpl.class);
- locator.addManager("VirtualMachineManager", MockVirtualMachineManagerImpl.class);
- locator.addManager("UserVmManager", MockUserVmManagerImpl.class);
- locator.addManager("NetworkManager", MockNetworkManagerImpl.class);
- locator.addManager("AccountManager", MockAccountManagerImpl.class);
- locator.addManager("DomainManager", MockDomainManagerImpl.class);
- locator.addManager("ProjectManager", MockProjectManagerImpl.class);
- locator.makeActive(new DefaultInterceptorLibrary());
-*/
- }
-
+ @Inject
+ SecurityGroupManagerImpl2 _sgMgr = null;
+ @Inject
+ UserVmDaoImpl _vmDao = null;
+
@Override
@After
public void tearDown() throws Exception {
}
-
+
protected void _schedule(final int numVms) {
System.out.println("Starting");
List<Long> work = new ArrayList<Long>();
- for (long i=100; i <= 100+numVms; i++) {
+ for (long i = 100; i <= 100 + numVms; i++) {
work.add(i);
}
Profiler profiler = new Profiler();
profiler.start();
_sgMgr.scheduleRulesetUpdateToHosts(work, false, null);
profiler.stop();
-
- System.out.println("Done " + numVms + " in " + profiler.getDuration() + " ms");
+
+ System.out.println("Done " + numVms + " in " + profiler.getDuration()
+ + " ms");
}
-
+
@Ignore
public void testSchedule() throws ConfigurationException {
_schedule(1000);
}
-
+
+ @Test
public void testWork() throws ConfigurationException {
- _schedule(1000);
- _sgMgr.work();
-
+ _schedule(1000);
+ _sgMgr.work();
+
}
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/server/test/com/cloud/utils/db/GlobalLockTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/utils/db/GlobalLockTest.java b/server/test/com/cloud/utils/db/GlobalLockTest.java
deleted file mode 100644
index e0e2b94..0000000
--- a/server/test/com/cloud/utils/db/GlobalLockTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.utils.db;
-
-import org.apache.log4j.Logger;
-
-import junit.framework.Assert;
-
-import com.cloud.utils.Profiler;
-import com.cloud.utils.testcase.Log4jEnabledTestCase;
-
-public class GlobalLockTest extends Log4jEnabledTestCase{
- public static final Logger s_logger = Logger.getLogger(GlobalLockTest.class);
- private final static GlobalLock _workLock = GlobalLock.getInternLock("SecurityGroupWork");
- public static class Worker implements Runnable {
- int id = 0;
- int timeoutSeconds = 10;
- int jobDuration = 2;
- public Worker(int id, int timeout, int duration) {
- this.id = id;
- timeoutSeconds = timeout;
- jobDuration = duration;
- }
- public void run() {
- boolean locked = false;
- try {
- Profiler p = new Profiler();
- p.start();
- locked = _workLock.lock(timeoutSeconds);
- p.stop();
- System.out.println("Thread " + id + " waited " + p.getDuration() + " ms, locked=" + locked);
- if (locked) {
- Thread.sleep(jobDuration*1000);
- }
- } catch (InterruptedException e) {
- } finally {
- if (locked) {
- boolean unlocked = _workLock.unlock();
- System.out.println("Thread " + id + " unlocked=" + unlocked);
- }
- }
- }
- }
-
- public void testTimeout() {
- Thread [] pool = new Thread[50];
- for (int i=0; i < pool.length; i++) {
- pool[i] = new Thread(new Worker(i, 5, 3));
- }
- for (int i=0; i < pool.length; i++) {
- pool[i].start();
- }
- for (int i=0; i < pool.length; i++) {
- try {
- pool[i].join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/utils/pom.xml
----------------------------------------------------------------------
diff --git a/utils/pom.xml b/utils/pom.xml
index 213ad38..c52f09a 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -159,12 +159,18 @@
<testSourceDirectory>test</testSourceDirectory>
<testResources>
<testResource>
+ <directory>${project.basedir}/test/resources</directory>
+ </testResource>
+ </testResources>
+ <!--
+ <testResources>
+ <testResource>
<directory>test/resources</directory>
</testResource>
<testResource>
<directory>conf</directory>
</testResource>
- </testResources>
+ </testResources> -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/utils/src/com/cloud/utils/db/GenericDaoBase.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/db/GenericDaoBase.java b/utils/src/com/cloud/utils/db/GenericDaoBase.java
index 880e9de..2ca1fe4 100755
--- a/utils/src/com/cloud/utils/db/GenericDaoBase.java
+++ b/utils/src/com/cloud/utils/db/GenericDaoBase.java
@@ -176,7 +176,7 @@ public abstract class GenericDaoBase<T, ID extends Serializable> implements Gene
return builder;
}
- public final Map<String, Attribute> getAllAttributes() {
+ public Map<String, Attribute> getAllAttributes() {
return _allAttributes;
}
@@ -1222,7 +1222,7 @@ public abstract class GenericDaoBase<T, ID extends Serializable> implements Gene
public List<T> search(final SearchCriteria<T> sc, final Filter filter) {
return search(sc, filter, null, false);
}
-
+
@Override @DB(txn=false)
public Pair<List<T>, Integer> searchAndCount(final SearchCriteria<T> sc, final Filter filter) {
List<T> objects = search(sc, filter, null, false);
@@ -1832,14 +1832,14 @@ public abstract class GenericDaoBase<T, ID extends Serializable> implements Gene
if (joins != null) {
i = addJoinAttributes(i, pstmt, joins);
}
-
+
/*
if (groupByValues != null) {
for (Object value : groupByValues) {
pstmt.setObject(i++, value);
}
}
- */
+ */
final ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
@@ -1863,5 +1863,5 @@ public abstract class GenericDaoBase<T, ID extends Serializable> implements Gene
return sql;
}
-
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/utils/test/com/cloud/utils/QualifierTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/QualifierTest.java b/utils/test/com/cloud/utils/QualifierTest.java
deleted file mode 100644
index 8d758a5..0000000
--- a/utils/test/com/cloud/utils/QualifierTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.utils;
-
-import javax.inject.Inject;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations="classpath:/com/cloud/utils/QualifierTestContext.xml")
-public class QualifierTest {
-
- @Inject
- DummyInterface _dummy;
-
- @Test
- public void test() {
- _dummy.foo();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/utils/test/com/cloud/utils/db/GlobalLockTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/db/GlobalLockTest.java b/utils/test/com/cloud/utils/db/GlobalLockTest.java
new file mode 100644
index 0000000..01e1e33
--- /dev/null
+++ b/utils/test/com/cloud/utils/db/GlobalLockTest.java
@@ -0,0 +1,83 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.utils.db;
+
+import org.apache.log4j.Logger;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import junit.framework.Assert;
+
+import com.cloud.utils.Profiler;
+import com.cloud.utils.testcase.Log4jEnabledTestCase;
+
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations="classpath:/testContext.xml")
+public class GlobalLockTest {
+ public static final Logger s_logger = Logger.getLogger(GlobalLockTest.class);
+ private final static GlobalLock _workLock = GlobalLock.getInternLock("SecurityGroupWork");
+ public static class Worker implements Runnable {
+ int id = 0;
+ int timeoutSeconds = 10;
+ int jobDuration = 2;
+ public Worker(int id, int timeout, int duration) {
+ this.id = id;
+ timeoutSeconds = timeout;
+ jobDuration = duration;
+ }
+ public void run() {
+ boolean locked = false;
+ try {
+ Profiler p = new Profiler();
+ p.start();
+ locked = _workLock.lock(timeoutSeconds);
+ p.stop();
+ System.out.println("Thread " + id + " waited " + p.getDuration() + " ms, locked=" + locked);
+ if (locked) {
+ Thread.sleep(jobDuration*1000);
+ }
+ } catch (InterruptedException e) {
+ } finally {
+ if (locked) {
+ boolean unlocked = _workLock.unlock();
+ System.out.println("Thread " + id + " unlocked=" + unlocked);
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testTimeout() {
+ Thread [] pool = new Thread[50];
+ for (int i=0; i < pool.length; i++) {
+ pool[i] = new Thread(new Worker(i, 5, 3));
+ }
+ for (int i=0; i < pool.length; i++) {
+ pool[i].start();
+ }
+ for (int i=0; i < pool.length; i++) {
+ try {
+ pool[i].join();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/9759ad57/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java b/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
index 59926f8..2a05a00 100644
--- a/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
+++ b/utils/test/com/cloud/utils/log/CglibThrowableRendererTest.java
@@ -25,16 +25,21 @@ import com.cloud.utils.db.DB;
import com.cloud.utils.exception.CloudRuntimeException;
import org.apache.log4j.spi.RootLogger;
import org.apache.log4j.spi.ThrowableRenderer;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.io.CharArrayWriter;
import java.io.Writer;
-
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations="classpath:/testContext.xml")
public class CglibThrowableRendererTest extends TestCase {
static Logger another = Logger.getLogger("TEST");
private final static Logger s_logger = Logger.getLogger(CglibThrowableRendererTest.class);
- public static class Test {
+ public static class TestClass {
@DB
public void exception1() {
throw new IllegalArgumentException("What a bad exception");
@@ -66,11 +71,12 @@ public class CglibThrowableRendererTest extends TestCase {
return alternateRoot;
}
+ @Test
public void testException() {
Writer w = new CharArrayWriter();
Logger alt = getAlternateLogger(w, null);
- Test test = ComponentContext.inject(Test.class);
+ TestClass test = ComponentContext.inject(TestClass.class);
try {
test.exception();
} catch (Exception e) {