mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Put usage server under Spring
This commit is contained in:
parent
221ac72a2e
commit
1450547987
@ -27,7 +27,6 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
import com.cloud.dc.dao.ClusterDao;
|
import com.cloud.dc.dao.ClusterDao;
|
||||||
import com.cloud.dc.dao.ClusterDaoImpl;
|
import com.cloud.dc.dao.ClusterDaoImpl;
|
||||||
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class TestConfiguration {
|
public class TestConfiguration {
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
|||||||
protected final SearchBuilder<ServiceOfferingVO> ServiceOfferingsByKeywordSearch;
|
protected final SearchBuilder<ServiceOfferingVO> ServiceOfferingsByKeywordSearch;
|
||||||
protected final SearchBuilder<ServiceOfferingVO> PublicServiceOfferingSearch;
|
protected final SearchBuilder<ServiceOfferingVO> PublicServiceOfferingSearch;
|
||||||
|
|
||||||
protected ServiceOfferingDaoImpl() {
|
public ServiceOfferingDaoImpl() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
UniqueNameSearch = createSearchBuilder();
|
UniqueNameSearch = createSearchBuilder();
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import com.cloud.utils.db.SearchCriteria.Op;
|
|||||||
public class ResourceTagsDaoImpl extends GenericDaoBase<ResourceTagVO, Long> implements ResourceTagDao{
|
public class ResourceTagsDaoImpl extends GenericDaoBase<ResourceTagVO, Long> implements ResourceTagDao{
|
||||||
final SearchBuilder<ResourceTagVO> AllFieldsSearch;
|
final SearchBuilder<ResourceTagVO> AllFieldsSearch;
|
||||||
|
|
||||||
protected ResourceTagsDaoImpl() {
|
public ResourceTagsDaoImpl() {
|
||||||
AllFieldsSearch = createSearchBuilder();
|
AllFieldsSearch = createSearchBuilder();
|
||||||
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), Op.EQ);
|
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), Op.EQ);
|
||||||
AllFieldsSearch.and("uuid", AllFieldsSearch.entity().getResourceUuid(), Op.EQ);
|
AllFieldsSearch.and("uuid", AllFieldsSearch.entity().getResourceUuid(), Op.EQ);
|
||||||
|
|||||||
@ -55,7 +55,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
|
|||||||
protected final SearchBuilder<AccountVO> CleanupForDisabledAccountsSearch;
|
protected final SearchBuilder<AccountVO> CleanupForDisabledAccountsSearch;
|
||||||
protected final SearchBuilder<AccountVO> NonProjectAccountSearch;
|
protected final SearchBuilder<AccountVO> NonProjectAccountSearch;
|
||||||
|
|
||||||
protected AccountDaoImpl() {
|
public AccountDaoImpl() {
|
||||||
AllFieldsSearch = createSearchBuilder();
|
AllFieldsSearch = createSearchBuilder();
|
||||||
AllFieldsSearch.and("accountName", AllFieldsSearch.entity().getAccountName(), SearchCriteria.Op.EQ);
|
AllFieldsSearch.and("accountName", AllFieldsSearch.entity().getAccountName(), SearchCriteria.Op.EQ);
|
||||||
AllFieldsSearch.and("domainId", AllFieldsSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
|
AllFieldsSearch.and("domainId", AllFieldsSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
|
||||||
|
|||||||
@ -32,7 +32,7 @@ public class UserAccountDaoImpl extends GenericDaoBase<UserAccountVO, Long> impl
|
|||||||
|
|
||||||
protected final SearchBuilder<UserAccountVO> userAccountSearch;
|
protected final SearchBuilder<UserAccountVO> userAccountSearch;
|
||||||
|
|
||||||
protected UserAccountDaoImpl() {
|
public UserAccountDaoImpl() {
|
||||||
userAccountSearch = createSearchBuilder();
|
userAccountSearch = createSearchBuilder();
|
||||||
userAccountSearch.and("apiKey", userAccountSearch.entity().getApiKey(), SearchCriteria.Op.EQ);
|
userAccountSearch.and("apiKey", userAccountSearch.entity().getApiKey(), SearchCriteria.Op.EQ);
|
||||||
userAccountSearch.done();
|
userAccountSearch.done();
|
||||||
|
|||||||
@ -42,7 +42,7 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao {
|
|||||||
final GenericSearchBuilder<NicVO, Integer> CountBy;
|
final GenericSearchBuilder<NicVO, Integer> CountBy;
|
||||||
|
|
||||||
|
|
||||||
protected NicDaoImpl() {
|
public NicDaoImpl() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
AllFieldsSearch = createSearchBuilder();
|
AllFieldsSearch = createSearchBuilder();
|
||||||
|
|||||||
@ -116,7 +116,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
|||||||
@Inject protected UserVmDetailsDao _detailsDao;
|
@Inject protected UserVmDetailsDao _detailsDao;
|
||||||
@Inject protected NicDao _nicDao;
|
@Inject protected NicDao _nicDao;
|
||||||
|
|
||||||
protected UserVmDaoImpl() {
|
public UserVmDaoImpl() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
|
|||||||
@ -36,7 +36,7 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> i
|
|||||||
protected final SearchBuilder<UserVmDetailVO> VmSearch;
|
protected final SearchBuilder<UserVmDetailVO> VmSearch;
|
||||||
protected final SearchBuilder<UserVmDetailVO> DetailSearch;
|
protected final SearchBuilder<UserVmDetailVO> DetailSearch;
|
||||||
|
|
||||||
protected UserVmDetailsDaoImpl() {
|
public UserVmDetailsDaoImpl() {
|
||||||
VmSearch = createSearchBuilder();
|
VmSearch = createSearchBuilder();
|
||||||
VmSearch.and("vmId", VmSearch.entity().getVmId(), SearchCriteria.Op.EQ);
|
VmSearch.and("vmId", VmSearch.entity().getVmId(), SearchCriteria.Op.EQ);
|
||||||
VmSearch.done();
|
VmSearch.done();
|
||||||
|
|||||||
53
usage/conf/usageApplicationContext.xml.in
Normal file
53
usage/conf/usageApplicationContext.xml.in
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<!--
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
|
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||||
|
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
|
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/tx
|
||||||
|
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/aop
|
||||||
|
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
|
||||||
|
http://www.springframework.org/schema/context
|
||||||
|
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
|
||||||
|
|
||||||
|
<context:annotation-config />
|
||||||
|
<context:component-scan base-package="com.cloud.usage" />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
@DB support
|
||||||
|
-->
|
||||||
|
<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:aspect>
|
||||||
|
|
||||||
|
</aop:config>
|
||||||
|
|
||||||
|
<bean id="transactionContextBuilder" class="com.cloud.utils.db.TransactionContextBuilder" />
|
||||||
|
<bean id="ComponentContext" class="com.cloud.utils.component.ComponentContext" />
|
||||||
|
<bean id="UsageServerConfig" class="com.cloud.usage.UsageServerComponentConfig" />
|
||||||
|
|
||||||
|
</beans>
|
||||||
@ -144,7 +144,8 @@ public class UsageManagerImpl implements UsageManager, Runnable {
|
|||||||
final Class<?> c = UsageServer.class;
|
final Class<?> c = UsageServer.class;
|
||||||
m_version = c.getPackage().getImplementationVersion();
|
m_version = c.getPackage().getImplementationVersion();
|
||||||
if (m_version == null) {
|
if (m_version == null) {
|
||||||
throw new CloudRuntimeException("Unable to find the implementation version of this usage server");
|
// TODO
|
||||||
|
// throw new CloudRuntimeException("Unable to find the implementation version of this usage server");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_logger.isInfoEnabled()) {
|
if (s_logger.isInfoEnabled()) {
|
||||||
|
|||||||
@ -16,31 +16,47 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.usage;
|
package com.cloud.usage;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import java.io.File;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
import org.apache.log4j.PropertyConfigurator;
|
||||||
|
import org.apache.log4j.xml.DOMConfigurator;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||||
|
|
||||||
|
import com.cloud.utils.PropertiesUtil;
|
||||||
|
import com.cloud.utils.component.ComponentContext;
|
||||||
|
|
||||||
public class UsageServer {
|
public class UsageServer {
|
||||||
private static final Logger s_logger = Logger.getLogger(UsageServer.class.getName());
|
private static final Logger s_logger = Logger.getLogger(UsageServer.class.getName());
|
||||||
public static final String Name = "usage-server";
|
public static final String Name = "usage-server";
|
||||||
|
|
||||||
@Inject UsageManager mgr;
|
UsageManager mgr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param args
|
* @param args
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
initLog4j();
|
||||||
|
ApplicationContext appContext = new ClassPathXmlApplicationContext("usageApplicationContext.xml");
|
||||||
|
|
||||||
UsageServer usage = new UsageServer();
|
UsageServer usage = new UsageServer();
|
||||||
usage.init(args);
|
usage.init(args);
|
||||||
usage.start();
|
usage.start(appContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(String[] args) {
|
public void init(String[] args) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start(ApplicationContext appContext) {
|
||||||
|
try {
|
||||||
|
ComponentContext.initComponentsLifeCycle();
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
mgr = appContext.getBean(UsageManager.class);
|
||||||
|
|
||||||
if (mgr != null) {
|
if (mgr != null) {
|
||||||
if (s_logger.isInfoEnabled()) {
|
if (s_logger.isInfoEnabled()) {
|
||||||
s_logger.info("UsageServer ready...");
|
s_logger.info("UsageServer ready...");
|
||||||
@ -55,4 +71,18 @@ public class UsageServer {
|
|||||||
public void destroy() {
|
public void destroy() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static private void initLog4j() {
|
||||||
|
File file = PropertiesUtil.findConfigFile("log4j-cloud.xml");
|
||||||
|
if (file != null) {
|
||||||
|
s_logger.info("log4j configuration found at " + file.getAbsolutePath());
|
||||||
|
DOMConfigurator.configureAndWatch(file.getAbsolutePath());
|
||||||
|
} else {
|
||||||
|
file = PropertiesUtil.findConfigFile("log4j-cloud.properties");
|
||||||
|
if (file != null) {
|
||||||
|
s_logger.info("log4j configuration found at " + file.getAbsolutePath());
|
||||||
|
PropertyConfigurator.configureAndWatch(file.getAbsolutePath());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
180
usage/src/com/cloud/usage/UsageServerComponentConfig.java
Normal file
180
usage/src/com/cloud/usage/UsageServerComponentConfig.java
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
// 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.usage;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import com.cloud.cluster.agentlb.dao.HostTransferMapDao;
|
||||||
|
import com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl;
|
||||||
|
import com.cloud.dc.dao.*;
|
||||||
|
import com.cloud.service.dao.ServiceOfferingDaoImpl;
|
||||||
|
import com.cloud.vm.dao.*;
|
||||||
|
import com.cloud.network.dao.*;
|
||||||
|
import com.cloud.host.dao.*;
|
||||||
|
|
||||||
|
import com.cloud.utils.crypt.EncryptionSecretKeyChecker;
|
||||||
|
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||||
|
import com.cloud.vm.dao.UserVmDaoImpl;
|
||||||
|
import com.cloud.event.dao.EventDaoImpl;
|
||||||
|
import com.cloud.user.dao.UserStatisticsDaoImpl;
|
||||||
|
import com.cloud.network.dao.IPAddressDaoImpl;
|
||||||
|
import com.cloud.domain.dao.DomainDaoImpl;
|
||||||
|
import com.cloud.user.dao.AccountDaoImpl;
|
||||||
|
import com.cloud.user.dao.UserAccountDaoImpl;
|
||||||
|
import com.cloud.configuration.dao.ConfigurationDaoImpl;
|
||||||
|
import com.cloud.alert.dao.AlertDaoImpl;
|
||||||
|
import com.cloud.event.dao.UsageEventDaoImpl;
|
||||||
|
import com.cloud.service.dao.ServiceOfferingDao;
|
||||||
|
import com.cloud.event.dao.EventDao;
|
||||||
|
import com.cloud.user.dao.UserStatisticsDao;
|
||||||
|
import com.cloud.domain.dao.DomainDao;
|
||||||
|
import com.cloud.user.dao.*;
|
||||||
|
import com.cloud.configuration.dao.ConfigurationDao;
|
||||||
|
import com.cloud.alert.dao.AlertDao;
|
||||||
|
import com.cloud.event.dao.UsageEventDao;
|
||||||
|
import com.cloud.tags.dao.*;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class UsageServerComponentConfig {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HostTransferMapDao HostTransferDao() {
|
||||||
|
return new HostTransferMapDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ClusterDao ClusterDao() {
|
||||||
|
return new ClusterDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HostPodDao HostPodDao() {
|
||||||
|
return new HostPodDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UserVmDetailsDao UserVmDetailsDao() {
|
||||||
|
return new UserVmDetailsDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public VlanDaoImpl VlanDaoImpl() {
|
||||||
|
return new VlanDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public PodVlanMapDao PodVlanMapDao() {
|
||||||
|
return new PodVlanMapDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public AccountVlanMapDao AccountVlanMapDao() {
|
||||||
|
return new AccountVlanMapDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public EncryptionSecretKeyChecker EncryptionSecretKeyChecker() {
|
||||||
|
return new EncryptionSecretKeyChecker();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public VMInstanceDao VmInstanceDao() {
|
||||||
|
return new VMInstanceDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UserVmDao UserVmDao() {
|
||||||
|
return new UserVmDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ServiceOfferingDao ServiceOfferingDao() {
|
||||||
|
return new ServiceOfferingDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public EventDao EventDao() {
|
||||||
|
return new EventDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UserStatisticsDao UserStatisticsDao() {
|
||||||
|
return new UserStatisticsDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public IPAddressDao IPAddressDao() {
|
||||||
|
return new IPAddressDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public DomainDao DomainDao() {
|
||||||
|
return new DomainDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public AccountDao AccountDao() {
|
||||||
|
return new AccountDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UserAccountDao UserAccountDao() {
|
||||||
|
return new UserAccountDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ConfigurationDao ConfigurationDao() {
|
||||||
|
return new ConfigurationDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public AlertDao AlertDao() {
|
||||||
|
return new AlertDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UsageEventDao UsageEventDao() {
|
||||||
|
return new UsageEventDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ResourceTagsDaoImpl ResourceTagsDaoImpl() {
|
||||||
|
return new ResourceTagsDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public NicDao NicDao() {
|
||||||
|
return new NicDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HostDao HostDao() {
|
||||||
|
return new HostDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HostDetailsDao HostDetailsDao() {
|
||||||
|
return new HostDetailsDaoImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HostTagsDao HostTagsDao() {
|
||||||
|
return new HostTagsDaoImpl();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user