01: package com.sun.portal.app.collab.survey.provisioning;
02:
03: import com.sun.portal.portlet.service.provision.GenericPortletProvisionListener;
04: import com.sun.portal.portlet.service.provision.PortletProvisionEvent;
05: import com.sun.portal.portlet.service.provision.PortletProvisionException;
06: import com.sun.portal.portlet.service.provision.PortletProvisionPreferences;
07: import javax.portlet.PortletContext;
08: import com.sun.portal.community.CommunityFactory;
09: import com.sun.portal.community.CommunityId;
10: import com.sun.portal.portlet.service.provision.PortletProvisionRoles;
11: import com.sun.portal.portlet.service.provision.PortletProvisionPreferencesException;
12: import com.sun.portal.log.common.PortalLogger;
13: import java.util.logging.Logger;
14: import com.sun.portal.app.collab.survey.model.SurveyDB;
15:
16: public class SurveysProvisioningListener extends
17: GenericPortletProvisionListener {
18: static final String listenerName = "SurveysProvisioningListener";
19: private static Logger logger = PortalLogger
20: .getLogger(SurveysProvisioningListener.class);
21:
22: /**
23: * Method called when a provisioning event happens.
24: * @param event provisioning event
25: * @exception com.sun.portal.portlet.service.provision.PortletProvisionException thrown when there is an application error.
26: */
27: public void handleProvisionEvent(PortletProvisionEvent event)
28: throws PortletProvisionException {
29: if (event.getType().equals(
30: PortletProvisionEvent.EVENT_TYPE_CREATED)) {
31: provision(event);
32: } else if (event.getType().equals(
33: PortletProvisionEvent.EVENT_TYPE_DESTROYED)) {
34: unprovision(event);
35: } else {
36: // nothing
37: }
38: }
39:
40: public void provision(PortletProvisionEvent portletProvisionEvent)
41: throws PortletProvisionException {
42: logger.fine("Starting provisioning for surveys");
43: PortletProvisionPreferences preferences;
44: preferences = portletProvisionEvent
45: .getPortletProvisionPreferences(PortletProvisionEvent.PREFERENCES_MEMBER);
46: String ctyIDString = portletProvisionEvent
47: .getCommunityPrincipalId();
48: CommunityId ctyID = new CommunityId(ctyIDString);
49: logger.fine("CommunityID from provisioning: " + ctyID);
50:
51: try {
52: preferences.setValue(CommunityFactory.COMMUNITY_ID_PREF,
53: ctyID.toString());
54: } catch (PortletProvisionPreferencesException e) {
55: throw new PortletProvisionException(listenerName,
56: "Error setting community id on portlet prov prefs",
57: e);
58: }
59: }
60:
61: public void unprovision(PortletProvisionEvent portletProvisionEvent)
62: throws PortletProvisionException {
63: // calling a cascade delete on surveys table
64: String ctyIDString = null;
65: try {
66: PortletProvisionPreferences preferences;
67: preferences = portletProvisionEvent
68: .getPortletProvisionPreferences(PortletProvisionEvent.PREFERENCES_MEMBER);
69: ctyIDString = portletProvisionEvent
70: .getCommunityPrincipalId();
71: SurveyDB sdb = new SurveyDB();
72: sdb.delete(ctyIDString);
73: } catch (Exception e) {
74: throw new PortletProvisionException(listenerName,
75: "Error setting community id on portlet prov prefs",
76: e);
77: }
78: }
79:
80: }
|