/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.blogs.demo.internal;
import com.liferay.blogs.demo.data.creator.BlogsEntryDemoDataCreator;
import com.liferay.blogs.model.BlogsEntry;
import com.liferay.comment.demo.data.creator.MultipleCommentDemoDataCreator;
import com.liferay.portal.instance.lifecycle.BasePortalInstanceLifecycleListener;
import com.liferay.portal.instance.lifecycle.PortalInstanceLifecycleListener;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.Company;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.module.framework.ModuleServiceLifecycle;
import com.liferay.portal.kernel.security.RandomUtil;
import com.liferay.portal.kernel.service.GroupLocalService;
import com.liferay.users.admin.demo.data.creator.BasicUserDemoDataCreator;
import com.liferay.users.admin.demo.data.creator.OmniAdminUserDemoDataCreator;
import com.liferay.users.admin.demo.data.creator.SiteAdminUserDemoDataCreator;
import java.util.ArrayList;
import java.util.List;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
/**
* @author Sergio González
*/
@Component(immediate = true, service = PortalInstanceLifecycleListener.class)
public class BlogsDemo extends BasePortalInstanceLifecycleListener {
@Override
public void portalInstanceRegistered(Company company) throws Exception {
BlogsEntryDemoDataCreator randomBlogsEntryDemoDataCreator =
_getRandomElement(_blogsEntryDemoDataCreators);
User user1 = _basicUserDemoDataCreator.create(
company.getCompanyId(), "nikki.prudencio@liferay.com");
Group guestGroup = _groupLocalService.getGroup(
company.getCompanyId(), "Guest");
BlogsEntry blogsEntry1 = randomBlogsEntryDemoDataCreator.create(
user1.getUserId(), guestGroup.getGroupId());
_multipleCommentDemoDataCreator.create(blogsEntry1);
User user2 = _omniAdminUserDemoDataCreator.create(
company.getCompanyId(), "sergio.gonzalez@liferay.com");
BlogsEntry blogsEntry2 = randomBlogsEntryDemoDataCreator.create(
user2.getUserId(), guestGroup.getGroupId());
_multipleCommentDemoDataCreator.create(blogsEntry2);
User user3 = _siteAdminUserDemoDataCreator.create(
guestGroup.getGroupId(), "sharon.choi@liferay.com");
BlogsEntry blogsEntry3 = randomBlogsEntryDemoDataCreator.create(
user3.getUserId(), guestGroup.getGroupId());
_multipleCommentDemoDataCreator.create(blogsEntry3);
List<User> users = new ArrayList<>();
for (int i = 0; i < 30; i++) {
users.add(_basicUserDemoDataCreator.create(company.getCompanyId()));
}
for (int i = 0; i < 10; i++) {
BlogsEntryDemoDataCreator blogsEntryDemoDataCreator =
_getRandomElement(_blogsEntryDemoDataCreators);
User user = _getRandomElement(users);
BlogsEntry blogsEntry = blogsEntryDemoDataCreator.create(
user.getUserId(), guestGroup.getGroupId());
_multipleCommentDemoDataCreator.create(blogsEntry);
}
}
@Deactivate
protected void deactivate() throws PortalException {
_multipleCommentDemoDataCreator.delete();
for (BlogsEntryDemoDataCreator blogsEntryDemoDataCreator :
_blogsEntryDemoDataCreators) {
blogsEntryDemoDataCreator.delete();
}
_basicUserDemoDataCreator.delete();
_omniAdminUserDemoDataCreator.delete();
_siteAdminUserDemoDataCreator.delete();
}
@Reference(unbind = "-")
protected void setBasicUserDemoDataCreator(
BasicUserDemoDataCreator basicUserDemoDataCreator) {
_basicUserDemoDataCreator = basicUserDemoDataCreator;
}
@Reference(target = "(source=creative-commons)", unbind = "-")
protected void setCreativeCommonsBlogsEntryDemoDataCreator(
BlogsEntryDemoDataCreator blogsEntryDemoDataCreator) {
_blogsEntryDemoDataCreators.add(blogsEntryDemoDataCreator);
}
@Reference(unbind = "-")
protected void setGroupLocalService(GroupLocalService groupLocalService) {
_groupLocalService = groupLocalService;
}
@Reference(target = "(source=lorem-ipsum)", unbind = "-")
protected void setLoremIpsumBlogsEntryDemoDataCreator(
BlogsEntryDemoDataCreator blogsEntryDemoDataCreator) {
_blogsEntryDemoDataCreators.add(blogsEntryDemoDataCreator);
}
@Reference(target = ModuleServiceLifecycle.PORTAL_INITIALIZED, unbind = "-")
protected void setModuleServiceLifecycle(
ModuleServiceLifecycle moduleServiceLifecycle) {
}
@Reference(unbind = "-")
protected void setMultipleCommentDemoDataCreator(
MultipleCommentDemoDataCreator multipleCommentDemoDataCreator) {
_multipleCommentDemoDataCreator = multipleCommentDemoDataCreator;
}
@Reference(unbind = "-")
protected void setOmniAdminUserDemoDataCreator(
OmniAdminUserDemoDataCreator omniAdminUserDemoDataCreator) {
_omniAdminUserDemoDataCreator = omniAdminUserDemoDataCreator;
}
@Reference(unbind = "-")
protected void setSiteAdminUserDemoDataCreator(
SiteAdminUserDemoDataCreator siteAdminUserDemoDataCreator) {
_siteAdminUserDemoDataCreator = siteAdminUserDemoDataCreator;
}
private <T> T _getRandomElement(List<T> list) {
return list.get(RandomUtil.nextInt(list.size()));
}
private BasicUserDemoDataCreator _basicUserDemoDataCreator;
private final List<BlogsEntryDemoDataCreator> _blogsEntryDemoDataCreators =
new ArrayList<>();
private GroupLocalService _groupLocalService;
private MultipleCommentDemoDataCreator _multipleCommentDemoDataCreator;
private OmniAdminUserDemoDataCreator _omniAdminUserDemoDataCreator;
private SiteAdminUserDemoDataCreator _siteAdminUserDemoDataCreator;
}