Creating a new adapter
Adapters are trivial to create, however you will need to modify the portlet source to do so. We made this as straightforward as possible.
Create a class that extends au.edu.anu.portal.portlets.basiclti.adapters.AbstractAdapter
You then need to provide an implementation for a single method:
public Map<String,String> processLaunchData(Map<String,String> params);
This method is passed the raw Map of launch data that contains user information as well as the launch data that you setup when configuring the portlet.
In this method, you perform any additional processing or parameter injection that you need. You then add in the default set of parameters by making a call to the superclass. The following is an example that conditionally adds an extra parameter based on some data already in the launch data map, lowercases another parameter, adds the default set of parameters and returns:
public class SampleAdapter extends AbstractAdapter { @Override public Map<String, String> processLaunchData(Map<String, String> params) { log.debug("SampleAdapter.processLaunchData() called"); //lowercase a parameter params.put("user_id", StringUtils.lowerCase(params.get("user_id"))); //conditionally add new parameter if(Boolean.parseBoolean(params.get("some_boolean_param"))) { params.put("my_param", "My Special Parameter"); } //add defaults params.putAll(super.getDefaultParameters()); return params; } }
You must include the following at the end of any logic you perform:
params.putAll(super.getDefaultParameters());