actionResponse.setRenderParameter(PARM_MODE, "new");
String connectorType = actionRequest.getParameter(PARM_CONNECTOR_TYPE);
actionResponse.setRenderParameter(PARM_CONNECTOR_TYPE, connectorType);
} else if(mode.equals("add")) { // User just submitted the form to add a new connector
// Create and configure the connector
WebManager manager = PortletManager.getWebManager(actionRequest, new AbstractName(URI.create(managerURI)));
ConnectorType connectorType = new ConnectorType(actionRequest.getParameter(PARM_CONNECTOR_TYPE));
String uniqueName = actionRequest.getParameter(PARM_DISPLAY_NAME);
actionResponse.setRenderParameter(PARM_DISPLAY_NAME, uniqueName);
// set the connector attributes from the form post
List<ConnectorAttribute> connectorAttributes = manager.getConnectorAttributes(connectorType);
for (ConnectorAttribute attribute : connectorAttributes) {
String name = attribute.getAttributeName();
String value = actionRequest.getParameter(name);
// handle booelan type special
if (attribute.getAttributeClass().equals(Boolean.class)) {
// browser sends value of checked checkbox as "on" or "checked"
if ("on".equalsIgnoreCase(value) || "checked".equalsIgnoreCase(value)) {
value=Boolean.toString(true);
} else {
value=Boolean.toString(false);
}
}
// set the string form of the attribute's value as submitted by the browser
if (value == null || value.trim().length()<1) {
// special case for KeystoreManager gbean
if ("trustStore".equals(attribute.getAttributeName())) {
attribute.setValue(null);
}
} else {
attribute.setStringValue(value.trim());
}
}
// create the connector gbean based on the configuration data
AbstractName newConnectorName = manager.getConnectorConfiguration(connectorType, connectorAttributes, webContainer, uniqueName);
// set the keystore properties if its a secure connector
setKeystoreProperties(actionRequest, newConnectorName);
// Start the connector
try {
GeronimoManagedBean managedBean = PortletManager.getManagedBean(actionRequest, newConnectorName);
managedBean.startRecursive();
} catch (Exception e) {
log.error("Unable to start connector", e); //TODO: get into rendered page
}
actionResponse.setRenderParameter(PARM_MODE, "list");
} else if(mode.equals("save")) { // User just submitted the form to update a connector
// Get submitted values
//todo: lots of validation
String connectorURI = actionRequest.getParameter(PARM_CONNECTOR_URI);
// Identify and update the connector
AbstractName connectorName = new AbstractName(URI.create(connectorURI));
NetworkConnector connector = PortletManager.getNetworkConnector(actionRequest, connectorName);
if(connector != null) {
WebManager manager = PortletManager.getWebManager(actionRequest, new AbstractName(URI.create(managerURI)));
ConnectorType connectorType = manager.getConnectorType(connectorName);
// set the connector attributes from the form post
for (ConnectorAttribute attribute : manager.getConnectorAttributes(connectorType)) {
String name = attribute.getAttributeName();
String value = actionRequest.getParameter(name);
// handle booelan type special
if (attribute.getAttributeClass().equals(Boolean.class)) {