Now I've written my action class, I'll need to define a plugin module that adds my class to Confluence's XWork configuration. This is done by adding this section to my atlassian-plugin.xml file.

    <xwork name="userinfoactions" key="userinfoactions">
        <description>Actions for manipulating a user's personal information.</description>

         <package name="userinfo" extends="default" namespace="/users/userinfo">
            <default-interceptor-ref name="defaultStack" />

            <action name="edituserinfo" class="com.atlassian.confluence.extra.userinfo.EditUserInfoAction" method="doDefault">
                <result name="input" type="velocity">/templates/extra/userinfo/edituserinfo.vm</result>
            </action>

            <action name="doedituserinfo" class="com.atlassian.confluence.extra.userinfo.EditUserInfoAction">
                <result name="input" type="velocity">/templates/extra/userinfo/edituserinfo.vm</result>
                <result name="success" type="velocity">/templates/extra/userinfo/edituserinfo.vm</result>
            </action>
        </package>
    </xwork>

Some notes: