* Create an instance of {@link IntegrationPlugin} of the class determined
     * on construction based upon the configuration information provided.
     * @return an instance of {@link IntegrationPlugin}
     */
    protected IntegrationPlugin createInstance() {
        IntegrationPlugin result;
        try {
            result = (IntegrationPlugin) pluginImplementationClass.newInstance();
            try {
                result.initialize(immutablePluginArguments);
            } catch (Exception e) {
                // Return an error plugin but don't save it as this may not
                // happen every time.
                result = createErrorPlugin(
                        messageLocalizer.format(