001
014
015 package com.liferay.portal.service.impl;
016
017 import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.model.Company;
020 import com.liferay.portal.kernel.model.Group;
021 import com.liferay.portal.kernel.model.LayoutSet;
022 import com.liferay.portal.kernel.model.VirtualHost;
023 import com.liferay.portal.kernel.transaction.TransactionCommitCallbackUtil;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.model.impl.LayoutSetImpl;
026 import com.liferay.portal.model.impl.LayoutSetModelImpl;
027 import com.liferay.portal.service.base.VirtualHostLocalServiceBaseImpl;
028 import com.liferay.portal.util.PropsValues;
029
030 import java.util.concurrent.Callable;
031
032
035 public class VirtualHostLocalServiceImpl
036 extends VirtualHostLocalServiceBaseImpl {
037
038 @Override
039 public VirtualHost fetchVirtualHost(long companyId, long layoutSetId) {
040 return virtualHostPersistence.fetchByC_L(companyId, layoutSetId);
041 }
042
043 @Override
044 public VirtualHost fetchVirtualHost(String hostname) {
045 return virtualHostPersistence.fetchByHostname(hostname);
046 }
047
048 @Override
049 public VirtualHost getVirtualHost(long companyId, long layoutSetId)
050 throws PortalException {
051
052 return virtualHostPersistence.findByC_L(companyId, layoutSetId);
053 }
054
055 @Override
056 public VirtualHost getVirtualHost(String hostname) throws PortalException {
057 return virtualHostPersistence.findByHostname(hostname);
058 }
059
060 @Override
061 public VirtualHost updateVirtualHost(
062 long companyId, final long layoutSetId, String hostname) {
063
064 VirtualHost virtualHost = virtualHostPersistence.fetchByC_L(
065 companyId, layoutSetId);
066
067 if (virtualHost == null) {
068 long virtualHostId = counterLocalService.increment();
069
070 virtualHost = virtualHostPersistence.create(virtualHostId);
071
072 virtualHost.setCompanyId(companyId);
073 virtualHost.setLayoutSetId(layoutSetId);
074 }
075
076 virtualHost.setHostname(hostname);
077
078 virtualHostPersistence.update(virtualHost);
079
080 final Company company = companyPersistence.fetchByPrimaryKey(companyId);
081
082 if (company != null) {
083 TransactionCommitCallbackUtil.registerCallback(
084 new Callable<Void>() {
085
086 @Override
087 public Void call() throws Exception {
088 EntityCacheUtil.removeResult(
089 company.isEntityCacheEnabled(), company.getClass(),
090 company.getPrimaryKeyObj());
091
092 return null;
093 }
094
095 });
096
097 companyPersistence.clearCache(company);
098 }
099
100 LayoutSet layoutSet = layoutSetPersistence.fetchByPrimaryKey(
101 layoutSetId);
102
103 if ((layoutSet == null) &&
104 Validator.isNotNull(PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME)) {
105
106 Group group = groupPersistence.fetchByC_GK(
107 companyId, PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME);
108
109 if (group != null) {
110 layoutSet = layoutSetPersistence.fetchByG_P(
111 group.getGroupId(), false);
112 }
113 }
114
115 if (layoutSet != null) {
116 layoutSetPersistence.clearCache(layoutSet);
117
118 TransactionCommitCallbackUtil.registerCallback(
119 new Callable<Void>() {
120
121 @Override
122 public Void call() {
123 EntityCacheUtil.removeResult(
124 LayoutSetModelImpl.ENTITY_CACHE_ENABLED,
125 LayoutSetImpl.class, layoutSetId);
126
127 return null;
128 }
129
130 });
131 }
132
133 return virtualHost;
134 }
135
136 }