Thomas Mortagne wrote:
> On Thu, Jan 21, 2010 at 22:23, Caleb James DeLisle
> <[email protected]> wrote:
>> I am adding a new captcha component, it uses jcaptcha-2.0-alpha1 and supports
>> image captchas and sound captchas (freetts jars must be added for sound
>> captcha support)
>>
>> There is a captcha plugin in xwiki-core which makes the core depend on
>> jcaptcha-all-1.0-RC3.
>> jcaptcha-all-1.0-RC3 causes conflicts when getting classes from jcaptcha-2.0.
>> The plugin in querstion:
>> http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/captcha/
>>
>> Here's my +1 for removing it entirely, breaking backward compatibility,
>> lightening xwiki-core,
>> and making the core no longer depend on jcaptcha.
>> You may review a patch for removing the plugin here:
>> http://jira.xwiki.org/jira/secure/attachment/16508/XWIKI-4779-removeJcaptchaPlugin.patch
>
> -0 for removing captcha plugin
>
> I don't like breaking something when it's not absolutely necessary,
> would it be too much work (maybe it's not even possible) to refactor
> xwiki-core captcha plugin to use jcaptcha-2.0 ?
>
Agreed about breaking old api, I could probably get it to work but not in time
for M2
The bigger issue is it makes xwiki-core dependent on jcaptcha or xwiki-captcha.
I also dislike it because it writes HTML and velocity.
>>
>> To provide velocity access to the captcha component for checking the results
>> of the captcha,
>> I would like to add a VelocityContextInitializer which will add a binding
>> called $captchaservice
>> which will provide 3 methods:
>>
>> /**
>> * If this is false, the captcha system will still work.
>> * It is for velocity scripts to determine whether captchas are needed.
>> *
>> * @return Is the captcha service enabled in the configuration.
>> */
>> boolean isEnabled()
>>
>>
>> /** @return a List of the names of all registered classes implementing
>> {...@link org.xwiki.captcha.CaptchaVerifier}. */
>> public List<String> listCaptchaNames()
>>
>> /**
>> * Get a {...@link org.xwiki.captcha.CaptchaVerifier} from the service.
>> *
>> * @param captchaName The name of the type of captcha, use {...@link
>> #listCaptchaNames()} for a list
>> * @return A captcha object which can be used to check a specific answer for
>> a given challange
>> * @throws Exception If the named captcha doesn't exist.
>> */
>> public CaptchaVerifier getCaptchaVerifier(String captchaName) throws
>> Exception
>
> Don't you have something more precise than Exception ? It does not
> seems right to me, it should be a specialized exception
> (org.xwiki.captcha.InvalidNameException or something). Except for unit
> tests a methods that throws Exception generally mean there is
> something wrong in the design.
I didn't like throwing Exception but couldn't think of another exception to
throw, I never thought of defining one
myself. InvalidNameException already exists in javax.naming I will use
CaptchaNotFoundException which will extend
Exception.
>
>>
>> I realize throwing an Exception to velocity always results in a stack trace
>> but I see it as the lesser evil to
>> returning a non-functional CaptchaVerifier which always returns false. Also
>> I see no use case where the name of
>> the captcha is not given in hardcoded velocity so this Exception is only for
>> the velocity developers.
>> Here's my +1 for adding this as well.
>>
>>
>> Caleb James DeLisle
>>
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs