package
com.meera.upgrade.process;
import
java.util.ArrayList;
import java.util.List;
import
com.liferay.portal.kernel.exception.PortalException;
import
com.liferay.portal.kernel.log.Log;
import
com.liferay.portal.kernel.log.LogFactoryUtil;
import
com.liferay.portal.kernel.upgrade.UpgradeProcess;
import
com.liferay.portal.kernel.util.StringPool;
import
com.liferay.portal.kernel.util.Validator;
import
com.liferay.portal.model.CountryConstants;
import
com.liferay.portal.model.Layout;
import
com.liferay.portal.model.LayoutConstants;
import com.liferay.portal.model.ListTypeConstants;
import
com.liferay.portal.model.Organization;
import
com.liferay.portal.model.OrganizationConstants;
import
com.liferay.portal.model.RegionConstants;
import
com.liferay.portal.model.Role;
import
com.liferay.portal.model.User;
import
com.liferay.portal.service.LayoutLocalServiceUtil;
import
com.liferay.portal.service.OrganizationLocalServiceUtil;
import
com.liferay.portal.service.RoleLocalServiceUtil;
import
com.liferay.portal.service.ServiceContext;
import
com.liferay.portal.service.UserLocalServiceUtil;
import
com.liferay.portal.util.PortalUtil;
/**
* @author meeraprince
*
*/
public class
SetupOrganizationApplicationProcess_1_1_0 extends UpgradeProcess {
public static String[] pageNames ={"Welcome","Products","Services","Contact
Us"};
public static String ORG_NAME = "LiferaySavvy";
public int getThreshold() {
return 110;
}
protected void doUpgrade() throws Exception {
_log.info("==========SetupApplicationProcess_1_1_0===============");
setUpApplication();
}
protected void setUpApplication()
throws Exception {
Organization organization =
createOrganization();
if(Validator.isNotNull(organization)){
createPages(organization);
}
try{
runStatesSQL();
}catch(Exception e){
_log.error(e.getLocalizedMessage());
if(_log.isDebugEnabled()){
_log.debug(e.toString());
e.printStackTrace();
}
}
}
protected Organization
createOrganization() throws Exception {
_log.info("createOrganization
Process started");
Organization organization = null;
boolean site = true;
String name = ORG_NAME;
String type = OrganizationConstants.TYPE_REGULAR_ORGANIZATION;
long regionId = RegionConstants.DEFAULT_REGION_ID;
long countryId =
CountryConstants.DEFAULT_COUNTRY_ID;
long companyId = getCompanyId();
long userId =
getAdminUserId();
ServiceContext serviceContext = new ServiceContext();
String friendlyURL = name;
friendlyURL = friendlyURL.replace(StringPool.SPACE,StringPool.DASH);
long parentOrganizationId =
OrganizationConstants.DEFAULT_PARENT_ORGANIZATION_ID;
try{
organization =
OrganizationLocalServiceUtil.getOrganization(companyId, name);
}catch(Exception e){
_log.error(e.getLocalizedMessage());
if(_log.isDebugEnabled()){
_log.debug(e.toString());
e.printStackTrace();
}
}
try{
if(Validator.isNull(organization)){
organization =
OrganizationLocalServiceUtil.addOrganization(userId, parentOrganizationId, name, type, regionId, countryId,
ListTypeConstants.ORGANIZATION_STATUS_DEFAULT,name, site, serviceContext);
}else{
_log.info("Organization
Name already existed in your Liferay Portal.");
}
}catch(Exception e){
_log.error(e.getLocalizedMessage());
if(_log.isDebugEnabled()){
_log.debug(e.toString());
e.printStackTrace();
}
}
return organization;
}
protected List<Layout>
createPages(Organization organization) throws Exception {
_log.info("createPages
Started");
List<Layout> pagesList = new
ArrayList<Layout>();
for (String pageName : pageNames) {
Layout page = createPage(organization,pageName);
if(Validator.isNotNull(page)){
pagesList.add(page);
}
}
return pagesList;
}
protected Layout
createPage(Organization organization,String name) throws Exception {
_log.info("createPage
Started");
long userId =
getAdminUserId();
long groupId = organization.getGroupId();
boolean privateLayout = false;
String title = name;
String description = name;
String type = LayoutConstants.TYPE_PORTLET;
boolean hidden = false;
String friendlyURL = name;
friendlyURL = friendlyURL.replace(StringPool.SPACE,StringPool.DASH);
friendlyURL = StringPool.FORWARD_SLASH + friendlyURL.toLowerCase();
_log.info("friendlyURL"+friendlyURL);
ServiceContext serviceContext = new ServiceContext();
long parentLayoutId = 0L;
Layout layout = null;
try{
layout =
LayoutLocalServiceUtil.fetchLayoutByFriendlyURL(groupId, privateLayout, friendlyURL);
}catch (Exception e) {
_log.error(e.getLocalizedMessage());
e.printStackTrace();
if(_log.isDebugEnabled()){
_log.debug(e.toString());
e.printStackTrace();
}
}
try {
if(Validator.isNull(layout)){
layout =
LayoutLocalServiceUtil.addLayout(userId, groupId, privateLayout,parentLayoutId, name, title, description, type, hidden,
friendlyURL, serviceContext);
}
} catch (PortalException e){
_log.error(e.getLocalizedMessage());
e.printStackTrace();
if(_log.isDebugEnabled()){
_log.debug(e.toString());
e.printStackTrace();
}
}
return layout;
}
protected long getAdminUserId() throws Exception {
Role adminRole =
RoleLocalServiceUtil.getRole(getCompanyId(), "Administrator");
List<User> adminUsers =
UserLocalServiceUtil.getRoleUsers(adminRole.getRoleId());
long userId = 20159;
if(adminUsers != null && !adminUsers.isEmpty()) {
userId = adminUsers.get(0).getUserId();
}
return userId;
}
protected long getCompanyId() throws Exception {
return PortalUtil.getDefaultCompanyId();
}
protected void runStatesSQL() throws Exception {
runSQL("INSERT INTO
Region VALUES (1085,108,'IN_AP','Andhra Pradesh',1)
,(1086,108,'IN_TN','TamilNadu',1)");
}
private static Log _log = LogFactoryUtil.getLog(SetupOrganizationApplicationProcess_1_1_0.class);
}
|