From af8832f6bdab38101ffb14149e6da8a0f9c969ca Mon Sep 17 00:00:00 2001 From: Alex Huang Date: Fri, 27 Sep 2013 14:09:53 -0700 Subject: [PATCH] Unified both the SearchBuilder and SearchCriteriaService --- .../cloud/agent/manager/AgentManagerImpl.java | 6 +- .../manager/ClusteredAgentManagerImpl.java | 6 +- .../ClusterBasedAgentLoadBalancerPlanner.java | 4 +- .../dc/dao/StorageNetworkIpRangeDaoImpl.java | 8 +- .../com/cloud/user/AccountDetailsDaoImpl.java | 6 +- .../datastore/db/PrimaryDataStoreDaoImpl.java | 6 +- .../manager/StorageCacheManagerImpl.java | 4 +- .../StorageCacheReplacementAlgorithmLRU.java | 8 +- .../storage/snapshot/SnapshotObject.java | 4 +- .../endpoint/DefaultEndPointSelector.java | 6 +- .../db/TemplatePrimaryDataStoreDaoImpl.java | 6 +- .../db/src/com/cloud/utils/db/GenericDao.java | 4 - .../com/cloud/utils/db/GenericDaoBase.java | 41 ++-- .../cloud/utils/db/GenericSearchBuilder.java | 173 +---------------- .../src/com/cloud/utils/db/SearchBuilder.java | 5 +- .../com/cloud/utils/db/SearchCriteria.java | 4 +- .../com/cloud/utils/db/SearchCriteria2.java | 175 ++++++------------ .../cloud/utils/db/SearchCriteriaService.java | 29 --- .../BareMetalPingServiceImpl.java | 4 +- .../networkservice/BaremetalDhcpElement.java | 4 +- .../BaremetalDhcpManagerImpl.java | 4 +- .../BaremetalKickStartServiceImpl.java | 4 +- .../networkservice/BaremetalPxeElement.java | 4 +- .../BaremetalPxeManagerImpl.java | 4 +- .../com/cloud/ucs/manager/UcsManagerImpl.java | 14 +- .../xen/discoverer/XcpServerDiscoverer.java | 4 +- .../element/InternalLoadBalancerElement.java | 4 +- .../consoleproxy/ConsoleProxyManagerImpl.java | 4 +- .../cloud/ha/AbstractInvestigatorImpl.java | 4 +- .../network/StorageNetworkManagerImpl.java | 4 +- .../network/element/VirtualRouterElement.java | 4 +- .../cloud/resource/ResourceManagerImpl.java | 26 +-- .../com/cloud/storage/OCFS2ManagerImpl.java | 4 +- .../SecondaryStorageManagerImpl.java | 6 +- 34 files changed, 156 insertions(+), 437 deletions(-) delete mode 100755 framework/db/src/com/cloud/utils/db/SearchCriteriaService.java diff --git a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java index 6c88f6e1279..0b04d74e300 100755 --- a/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/engine/orchestration/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -99,7 +99,7 @@ import com.cloud.utils.db.DB; import com.cloud.utils.db.EntityManager; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.HypervisorVersionChangedException; @@ -1448,7 +1448,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl try { List behindAgents = findAgentsBehindOnPing(); for (Long agentId : behindAgents) { - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getId(), Op.EQ, agentId); HostVO h = sc.find(); if (h != null) { @@ -1470,7 +1470,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl } } - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getResourceState(), Op.IN, ResourceState.PrepareForMaintenance, ResourceState.ErrorInMaintenance); List hosts = sc.list(); diff --git a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index 61066ec7dbc..3d644734b73 100755 --- a/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/engine/orchestration/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -89,7 +89,7 @@ import com.cloud.utils.Profiler; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.nio.Link; @@ -783,7 +783,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust public void startRebalanceAgents() { s_logger.debug("Management server " + _nodeId + " is asking other peers to rebalance their agents"); List allMS = _mshostDao.listBy(ManagementServerHost.State.Up); - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL); sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); List allManagedAgents = sc.list(); @@ -1369,7 +1369,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust profilerAgentLB.start(); //initiate agent lb task will be scheduled and executed only once, and only when number of agents loaded exceeds _connectedAgentsThreshold if (EnableLB.value() && !_agentLbHappened) { - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getManagementServerId(), Op.NNULL); sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); List allManagedRoutingAgents = sc.list(); diff --git a/engine/orchestration/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java b/engine/orchestration/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java index 535ba07cd0b..47e2b97c65a 100755 --- a/engine/orchestration/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java +++ b/engine/orchestration/src/com/cloud/cluster/agentlb/ClusterBasedAgentLoadBalancerPlanner.java @@ -38,7 +38,7 @@ import com.cloud.host.dao.HostDao; import com.cloud.utils.component.AdapterBase; import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.SearchCriteria.Op; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; @Component @Local(value=AgentLoadBalancerPlanner.class) @@ -49,7 +49,7 @@ public class ClusterBasedAgentLoadBalancerPlanner extends AdapterBase implements @Override public List getHostsToRebalance(long msId, int avLoad) { - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getType(), Op.EQ, Host.Type.Routing); sc.addAnd(sc.getEntity().getManagementServerId(), Op.EQ, msId); List allHosts = sc.list(); diff --git a/engine/schema/src/com/cloud/dc/dao/StorageNetworkIpRangeDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/StorageNetworkIpRangeDaoImpl.java index d732e6fcb7a..db85c06962b 100755 --- a/engine/schema/src/com/cloud/dc/dao/StorageNetworkIpRangeDaoImpl.java +++ b/engine/schema/src/com/cloud/dc/dao/StorageNetworkIpRangeDaoImpl.java @@ -32,7 +32,7 @@ import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Op; @@ -50,21 +50,21 @@ public class StorageNetworkIpRangeDaoImpl extends GenericDaoBase listByPodId(long podId) { - SearchCriteriaService sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); + SearchCriteria2 sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); sc.addAnd(sc.getEntity().getPodId(), Op.EQ, podId); return sc.list(); } @Override public List listByRangeId(long rangeId) { - SearchCriteriaService sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); + SearchCriteria2 sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); sc.addAnd(sc.getEntity().getId(), Op.EQ, rangeId); return sc.list(); } @Override public List listByDataCenterId(long dcId) { - SearchCriteriaService sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); + SearchCriteria2 sc = SearchCriteria2.create(StorageNetworkIpRangeVO.class); sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); return sc.list(); } diff --git a/engine/schema/src/com/cloud/user/AccountDetailsDaoImpl.java b/engine/schema/src/com/cloud/user/AccountDetailsDaoImpl.java index 36fd5b4e605..6a0b2487cd7 100755 --- a/engine/schema/src/com/cloud/user/AccountDetailsDaoImpl.java +++ b/engine/schema/src/com/cloud/user/AccountDetailsDaoImpl.java @@ -31,7 +31,7 @@ import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.Transaction; @Local(value = {AccountDetailsDao.class}) @@ -46,7 +46,7 @@ public class AccountDetailsDaoImpl extends GenericDaoBase @Override public Map findDetails(long accountId) { - SearchCriteriaService sc = SearchCriteria2.create(AccountDetailVO.class); + SearchCriteria2 sc = SearchCriteria2.create(AccountDetailVO.class); sc.addAnd(sc.getEntity().getAccountId(), Op.EQ, accountId); List results = sc.list(); Map details = new HashMap(results.size()); @@ -72,7 +72,7 @@ public class AccountDetailsDaoImpl extends GenericDaoBase @Override public AccountDetailVO findDetail(long accountId, String name) { - SearchCriteriaService sc = SearchCriteria2.create(AccountDetailVO.class); + SearchCriteria2 sc = SearchCriteria2.create(AccountDetailVO.class); sc.addAnd(sc.getEntity().getAccountId(), Op.EQ, accountId); sc.addAnd(sc.getEntity().getName(), Op.EQ, name); return sc.find(); diff --git a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java index b39f8444c35..074a156a495 100644 --- a/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java +++ b/engine/schema/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImpl.java @@ -40,7 +40,7 @@ import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; @@ -316,7 +316,7 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase public List findZoneWideStoragePoolsByTags(long dcId, String[] tags) { List storagePools = null; if (tags == null || tags.length == 0) { - SearchCriteriaService sc = SearchCriteria2.create(StoragePoolVO.class); + SearchCriteria2 sc = SearchCriteria2.create(StoragePoolVO.class); sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.addAnd(sc.getEntity().getScope(), Op.EQ, ScopeType.ZONE); @@ -421,7 +421,7 @@ public class PrimaryDataStoreDaoImpl extends GenericDaoBase @Override public List findZoneWideStoragePoolsByHypervisor(long dataCenterId, HypervisorType hypervisorType) { - SearchCriteriaService sc = SearchCriteria2.create(StoragePoolVO.class); + SearchCriteria2 sc = SearchCriteria2.create(StoragePoolVO.class); sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dataCenterId); sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); sc.addAnd(sc.getEntity().getScope(), Op.EQ, ScopeType.ZONE); diff --git a/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheManagerImpl.java b/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheManagerImpl.java index 083b7c1bf15..f14985d08d6 100644 --- a/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheManagerImpl.java +++ b/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheManagerImpl.java @@ -26,7 +26,7 @@ import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.exception.CloudRuntimeException; import org.apache.cloudstack.engine.subsystem.api.storage.*; @@ -79,7 +79,7 @@ public class StorageCacheManagerImpl implements StorageCacheManager, Manager { } protected List getCacheStores() { - SearchCriteriaService sc = SearchCriteria2.create(ImageStoreVO.class); + SearchCriteria2 sc = SearchCriteria2.create(ImageStoreVO.class); sc.addAnd(sc.getEntity().getRole(), SearchCriteria.Op.EQ, DataStoreRole.ImageCache); List imageStoreVOs = sc.list(); List stores = new ArrayList(); diff --git a/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheReplacementAlgorithmLRU.java b/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheReplacementAlgorithmLRU.java index 424a8fb73e7..9cd5995e346 100644 --- a/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheReplacementAlgorithmLRU.java +++ b/engine/storage/cache/src/org/apache/cloudstack/storage/cache/manager/StorageCacheReplacementAlgorithmLRU.java @@ -22,7 +22,7 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import org.apache.cloudstack.engine.subsystem.api.storage.*; import org.apache.cloudstack.framework.config.dao.ConfigurationDao; @@ -72,7 +72,7 @@ public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacem cal.add(Calendar.DAY_OF_MONTH, -unusedTimeInterval.intValue()); Date bef = cal.getTime(); - SearchCriteriaService sc = SearchCriteria2.create(TemplateDataStoreVO.class); + SearchCriteria2 sc = SearchCriteria2.create(TemplateDataStoreVO.class); sc.addAnd(sc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); sc.addAnd(sc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); sc.addAnd(sc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); @@ -83,7 +83,7 @@ public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacem return templateFactory.getTemplate(template.getTemplateId(), store); } - SearchCriteriaService volSc = SearchCriteria2.create(VolumeDataStoreVO.class); + SearchCriteria2 volSc = SearchCriteria2.create(VolumeDataStoreVO.class); volSc.addAnd(volSc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); volSc.addAnd(volSc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); volSc.addAnd(volSc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); @@ -93,7 +93,7 @@ public class StorageCacheReplacementAlgorithmLRU implements StorageCacheReplacem return volumeFactory.getVolume(volume.getVolumeId(), store); } - SearchCriteriaService snapshotSc = SearchCriteria2.create(SnapshotDataStoreVO.class); + SearchCriteria2 snapshotSc = SearchCriteria2.create(SnapshotDataStoreVO.class); snapshotSc.addAnd(snapshotSc.getEntity().getLastUpdated(), SearchCriteria.Op.LT, bef); snapshotSc.addAnd(snapshotSc.getEntity().getState(), SearchCriteria.Op.EQ, ObjectInDataStoreStateMachine.State.Ready); snapshotSc.addAnd(snapshotSc.getEntity().getDataStoreId(), SearchCriteria.Op.EQ, store.getId()); diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java index 7d823a3b407..730cec41489 100644 --- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java +++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java @@ -44,7 +44,7 @@ import com.cloud.storage.dao.VolumeDao; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.fsm.NoTransitionException; @@ -104,7 +104,7 @@ public class SnapshotObject implements SnapshotInfo { @Override public SnapshotInfo getChild() { - SearchCriteriaService sc = SearchCriteria2 + SearchCriteria2 sc = SearchCriteria2 .create(SnapshotDataStoreVO.class); sc.addAnd(sc.getEntity().getDataStoreId(), Op.EQ, this.store.getId()); sc.addAnd(sc.getEntity().getRole(), Op.EQ, this.store.getRole()); diff --git a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java index 98c6a3fc001..65524e03212 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java +++ b/engine/storage/src/org/apache/cloudstack/storage/endpoint/DefaultEndPointSelector.java @@ -45,7 +45,7 @@ import com.cloud.storage.DataStoreRole; import com.cloud.storage.ScopeType; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.exception.CloudRuntimeException; @@ -220,7 +220,7 @@ public class DefaultEndPointSelector implements EndPointSelector { } private List listUpAndConnectingSecondaryStorageVmHost(Long dcId) { - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); if (dcId != null) { sc.addAnd(sc.getEntity().getDataCenterId(), Op.EQ, dcId); } @@ -258,7 +258,7 @@ public class DefaultEndPointSelector implements EndPointSelector { endPoints.add(RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(), host.getPrivateIpAddress(), host.getPublicIpAddress())); } else if (store.getScope().getScopeType() == ScopeType.CLUSTER) { - SearchCriteriaService sc = SearchCriteria2.create(HostVO.class); + SearchCriteria2 sc = SearchCriteria2.create(HostVO.class); sc.addAnd(sc.getEntity().getClusterId(), Op.EQ, store.getScope().getScopeId()); sc.addAnd(sc.getEntity().getStatus(), Op.EQ, Status.Up); List hosts = sc.find(); diff --git a/engine/storage/src/org/apache/cloudstack/storage/volume/db/TemplatePrimaryDataStoreDaoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/volume/db/TemplatePrimaryDataStoreDaoImpl.java index 7c986403636..8c43138e695 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/volume/db/TemplatePrimaryDataStoreDaoImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/volume/db/TemplatePrimaryDataStoreDaoImpl.java @@ -31,7 +31,7 @@ import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria2; -import com.cloud.utils.db.SearchCriteriaService; +import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.UpdateBuilder; @Component @@ -50,7 +50,7 @@ public class TemplatePrimaryDataStoreDaoImpl extends GenericDaoBase sc = SearchCriteria2 + SearchCriteria2 sc = SearchCriteria2 .create(TemplatePrimaryDataStoreVO.class); sc.addAnd(sc.getEntity().getTemplateId(), Op.EQ, templateId); sc.addAnd(sc.getEntity().getPoolId(), Op.EQ, poolId); @@ -59,7 +59,7 @@ public class TemplatePrimaryDataStoreDaoImpl extends GenericDaoBase sc = SearchCriteria2 + SearchCriteria2 sc = SearchCriteria2 .create(TemplatePrimaryDataStoreVO.class); sc.addAnd(sc.getEntity().getTemplateId(), Op.EQ, templateId); sc.addAnd(sc.getEntity().getPoolId(), Op.EQ, poolId); diff --git a/framework/db/src/com/cloud/utils/db/GenericDao.java b/framework/db/src/com/cloud/utils/db/GenericDao.java index f32880f6ad4..6c7e928806f 100755 --- a/framework/db/src/com/cloud/utils/db/GenericDao.java +++ b/framework/db/src/com/cloud/utils/db/GenericDao.java @@ -258,10 +258,6 @@ public interface GenericDao { public K getRandomlyIncreasingNextInSequence(Class clazz, String name); - SearchCriteria2 createSearchCriteria2(Class resultType); - - SearchCriteria2 createSearchCriteria2(); - public T findOneBy(final SearchCriteria sc); /** diff --git a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java index a566ec54ce6..fd561713feb 100755 --- a/framework/db/src/com/cloud/utils/db/GenericDaoBase.java +++ b/framework/db/src/com/cloud/utils/db/GenericDaoBase.java @@ -59,6 +59,7 @@ import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.CallbackFilter; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.Factory; +import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.NoOp; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; @@ -169,11 +170,7 @@ public abstract class GenericDaoBase extends Compone @Override @SuppressWarnings("unchecked") @DB(txn=false) public GenericSearchBuilder createSearchBuilder(Class resultType) { - final T entity = (T)_searchEnhancer.create(); - final Factory factory = (Factory)entity; - GenericSearchBuilder builder = new GenericSearchBuilder(entity, resultType, _allAttributes); - factory.setCallback(0, builder); - return builder; + return new GenericSearchBuilder(_entityBeanType, resultType); } @Override @@ -181,6 +178,15 @@ public abstract class GenericDaoBase extends Compone return _allAttributes; } + + @SuppressWarnings("unchecked") + public T createSearchEntity(MethodInterceptor interceptor) { + T entity = (T)_searchEnhancer.create(); + final Factory factory = (Factory)entity; + factory.setCallback(0, interceptor); + return entity; + } + @SuppressWarnings("unchecked") protected GenericDaoBase() { super(); @@ -1781,14 +1787,9 @@ public abstract class GenericDaoBase extends Compone return (UpdateBuilder)factory.getCallback(1); } - @SuppressWarnings("unchecked") @Override @DB(txn=false) public SearchBuilder createSearchBuilder() { - final T entity = (T)_searchEnhancer.create(); - final Factory factory = (Factory)entity; - SearchBuilder builder = new SearchBuilder(entity, _allAttributes); - factory.setCallback(0, builder); - return builder; + return new SearchBuilder(_entityBeanType); } @Override @DB(txn=false) @@ -1797,24 +1798,6 @@ public abstract class GenericDaoBase extends Compone return builder.create(); } - @Override @DB(txn=false) - public SearchCriteria2 createSearchCriteria2(Class resultType) { - final T entity = (T)_searchEnhancer.create(); - final Factory factory = (Factory)entity; - SearchCriteria2 sc = new SearchCriteria2(entity, resultType, _allAttributes, this); - factory.setCallback(0, sc); - return sc; - } - - @Override @DB(txn=false) - public SearchCriteria2 createSearchCriteria2() { - final T entity = (T)_searchEnhancer.create(); - final Factory factory = (Factory)entity; - SearchCriteria2 sc = new SearchCriteria2(entity, entity.getClass(), _allAttributes, this); - factory.setCallback(0, sc); - return sc; - } - @Override public int getRegionId(){ return Transaction.s_region_id; diff --git a/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java b/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java index bf28144236f..732527aa30a 100755 --- a/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java +++ b/framework/db/src/com/cloud/utils/db/GenericSearchBuilder.java @@ -17,19 +17,12 @@ package com.cloud.utils.db; import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.UUID; -import javax.persistence.Column; -import javax.persistence.Transient; - import net.sf.cglib.proxy.Factory; -import net.sf.cglib.proxy.MethodInterceptor; -import net.sf.cglib.proxy.MethodProxy; import com.cloud.utils.db.SearchCriteria.Func; import com.cloud.utils.db.SearchCriteria.Op; @@ -43,30 +36,10 @@ import com.cloud.utils.db.SearchCriteria.SelectType; * @param VO object this Search is build for. * @param Result object that should contain the results. */ -public class GenericSearchBuilder implements MethodInterceptor { - final protected Map _attrs; - - protected ArrayList _conditions; - protected HashMap>> _joins; - protected ArrayList _selects; - private final HashMap _params = new HashMap(); - protected Class _resultType; - protected SelectType _selectType; - protected Class _entityBeanType; - - protected SearchCriteria2(T entity, Class resultType, final Map attrs, GenericDao dao) { - _entityBeanType = (Class)entity.getClass(); - _dao = dao; - _resultType = resultType; - _attrs = attrs; - _entity = entity; - _conditions = new ArrayList(); - _specifiedAttrs = new ArrayList(); +public class SearchCriteria2 extends SearchBase { + final HashMap _params = new HashMap(); + + protected SearchCriteria2(Class entityType, Class resultType) { + super(entityType, resultType); } - - static public SearchCriteria2 create(Class entityType, Class resultType) { - GenericDao dao = (GenericDao)GenericDaoBase.getDao(entityType); - assert dao != null : "Can not find DAO for " + entityType.getName(); - SearchCriteria2 sc = dao.createSearchCriteria2(resultType); - return sc; - } - - static public SearchCriteria2 create(Class entityType) { - GenericDao dao = (GenericDao)GenericDaoBase.getDao(entityType); - assert dao != null : "Can not find DAO for " + entityType.getName(); - SearchCriteria2 sc = dao.createSearchCriteria2(); - return sc; - } - - @Override - public void selectField(Object... useless) { + + @SuppressWarnings("unchecked") + static public SearchCriteria2 create(Class entityType, Class resultType) { + GenericDao dao = (GenericDao)GenericDaoBase.getDao(entityType); + assert dao != null : "Can not find DAO for " + entityType.getName(); + return new SearchCriteria2(entityType, resultType); + } + + static public SearchCriteria2 create(Class entityType) { + return create(entityType, entityType); + } + + public void selectField(Object... useless) { assert _entity != null : "SearchBuilder cannot be modified once it has been setup"; assert _specifiedAttrs.size() > 0 : "You didn't specify any attributes"; - + if (_selects == null) { _selects = new ArrayList