1
14
15 package com.liferay.portal.events;
16
17 import com.liferay.portal.kernel.bean.PortalBeanLocatorUtil;
18 import com.liferay.portal.kernel.events.ActionException;
19 import com.liferay.portal.kernel.events.SimpleAction;
20 import com.liferay.portal.kernel.log.Log;
21 import com.liferay.portal.kernel.log.LogFactoryUtil;
22 import com.liferay.portal.kernel.messaging.MessageBus;
23 import com.liferay.portal.kernel.messaging.MessageBusUtil;
24 import com.liferay.portal.kernel.messaging.sender.MessageSender;
25 import com.liferay.portal.kernel.messaging.sender.SynchronousMessageSender;
26 import com.liferay.portal.kernel.scheduler.SchedulerEngineUtil;
27 import com.liferay.portal.kernel.util.ReleaseInfo;
28 import com.liferay.portal.kernel.velocity.VelocityEngineUtil;
29 import com.liferay.portal.scheduler.SchedulerEngineProxy;
30 import com.liferay.portal.security.lang.PortalSecurityManager;
31 import com.liferay.portal.service.LockLocalServiceUtil;
32 import com.liferay.portal.tools.DBUpgrader;
33 import com.liferay.portal.util.PropsValues;
34
35
42 public class StartupAction extends SimpleAction {
43
44 public void run(String[] ids) throws ActionException {
45 try {
46 doRun(ids);
47 }
48 catch (RuntimeException re) {
49 throw re;
50 }
51 catch (Exception e) {
52 throw new ActionException(e);
53 }
54 }
55
56 protected void doRun(String[] ids) throws Exception {
57
58
60 System.out.println("Starting " + ReleaseInfo.getReleaseInfo());
61
62
64 try {
65 LockLocalServiceUtil.clear();
66 }
67 catch (Exception e) {
68 if (_log.isWarnEnabled()) {
69 _log.warn(
70 "Unable to clear locks because Lock table does not exist");
71 }
72 }
73
74
76 Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook()));
77
78
80 if ((System.getSecurityManager() == null) &&
81 (PropsValues.PORTAL_SECURITY_MANAGER_ENABLE)) {
82
83 System.setSecurityManager(new PortalSecurityManager());
84 }
85
86
88 VelocityEngineUtil.init();
89
90
92 DBUpgrader.upgrade();
93
94
96 MessageBus messageBus = (MessageBus)PortalBeanLocatorUtil.locate(
97 MessageBus.class.getName());
98 MessageSender messageSender =
99 (MessageSender)PortalBeanLocatorUtil.locate(
100 MessageSender.class.getName());
101 SynchronousMessageSender synchronousMessageSender =
102 (SynchronousMessageSender)PortalBeanLocatorUtil.locate(
103 SynchronousMessageSender.class.getName());
104
105 MessageBusUtil.init(
106 messageBus, messageSender, synchronousMessageSender);
107
108
110 SchedulerEngineUtil.init(new SchedulerEngineProxy());
111
112 SchedulerEngineUtil.start();
113
114
116 DBUpgrader.verify();
117 }
118
119 private static Log _log = LogFactoryUtil.getLog(StartupAction.class);
120
121 }