results:

3  +1
1  -0
0  -1

Changes committed.
see: http://jira.xwiki.org/jira/browse/XWIKI-4779
and: http://jira.xwiki.org/jira/browse/XWIKI-4741

I decided to go with the name $captchaservice because it is closest to the names
of other velocity bindings which are defined with VelocityContextInitializer.
I don't like the idea of binding to an arbitrary velocity variable but I don't
think it improves the situation to use a confusing naming convention which I
don't see implemented anywhere else.

see:
$l10n 
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-localization/src/main/java/org/xwiki/localization/internal/LocalizationManagerVelocityContextInitializer.java
$officeimporter 
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-officeimporter/src/main/java/org/xwiki/officeimporter/internal/OfficeImporterVelocityContextInitializer.java
$ooconfig 
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-officeimporter/src/main/java/org/xwiki/officeimporter/internal/openoffice/OpenOfficeConfigurationVelocityContextInitializer.java



Caleb


Thomas Mortagne wrote:
> On Thu, Jan 21, 2010 at 23:25, Vincent Massol <[email protected]> wrote:
>> On Jan 21, 2010, at 10:32 PM, 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 ?
>> I think there's some misunderstanding thomas. Caleb has developed a 
>> component-based captcha module.
> 
> No there is not. This vote is about removing xwiki-core public API.
> The fact that it's a plugin has nothing to do with that.
> 
>> -1 to not remove the old captcha plugin ;)
>>
>> There's no point of having 2 systems that do the same thing. At worst the 
>> old plugin could be moved to retired projects in contrib but I don't even 
>> think we should do that since nobody is using the old catpcha plugin AFAIK. 
>> Plugins are meant to be removed. They're the old system that has been 
>> replaced by components. We should definitely not spend any time trying to 
>> create new plugins.
> 
> It's not so simple, plugin or not that's xwiki-core module public API
> not some external plugin and i don't like removing public API if not
> necessary.. We don't use it by default in XE does not mean nobody is
> using it, if you look at the mailing list it seems at least some
> people are using it.
> 
>> In addition it would be a pain and completely unnecessary to maintain 2 
>> modules that do the same thing but differently.
> 
> I just talked about API here, we could maybe use the new component
> behind old plugin APIs. Also my vote is not blocker, i just asked a
> question: the proposal is to remove a public API instead of deprecate
> it without explaining why compared to the general rule.
> 
>> Thanks
>> -Vincent
>>
>>
>>>> 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 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

Reply via email to