FWIW, I was not able to reproduce this using either Velocity or JSP. I
would suggest either moving this to the CQ forum or DayCare.

Justin


On Mon, Nov 29, 2010 at 5:16 PM, Levine, David <[email protected]> wrote:
> Hah.  Actually, it seems like any possible value is protected in CQ.  I tried 
> updating my BindingsValuesProvider quickly before leaving for the day with a 
> new key:
>
> "org.apache.sling.api.scripting.ScriptEvaluationException: 
> java.lang.IllegalArgumentException: Key testCUData is protected."
>
> --David
>
>
> -----Original Message-----
> From: Levine, David [mailto:[email protected]]
> Sent: Monday, November 29, 2010 5:13 PM
> To: [email protected]
> Subject: RE: BindingValuesProvider
>
> I think this is what I was looking for.  Perfect!  I updated CQ using the 
> Felix console (I had 2.0.9 for scripting.core), but got some odd 
> NoSuchMethodErrors when evaluating scripts until I actually restarted CQ.  I 
> was under the impression that OSGi was supposed to prevent this kind of 
> thing, but at least it worked once I restarted.
>
> Oddly, instead I now get an IllegalArgumentException "Key testData is 
> protected", which comes from 
> org.apache.sling.scripting.core.impl.helper.ProtectedBindings (the 
> put(key,value) method).
>
> Does this mean that "testData" is reserved key in CQ, but not in a standalone 
> Jackrabbit/Sling install?  I'm not sure where the Set of protectedKeys is 
> specified in CQ.  Anyway, if this is the case then it is simply my bad luck 
> to choose that key during testing, and I'll try again in the morning with an 
> updated key.
>
> Thanks again!
> --David
>
>
> -----Original Message-----
> From: Justin Edelson [mailto:[email protected]]
> Sent: Monday, November 29, 2010 3:56 PM
> To: [email protected]
> Subject: Re: BindingValuesProvider
>
> Check the versions of the scripting.api and scripting.core bundles. You
> need versions 2.1.0 and 2.0.14, respectively.
>
> Justin
>
> On 11/29/10 3:42 PM, Levine, David wrote:
>> I've been doing initial development on Day CQ.  In order to provide a test 
>> project for the mailing list, I decided to implement this just using 
>> Jackrabbit and Sling alone.  When I did that, it worked with no problem 
>> (testing using both Velocity and ESP scripting, although I didn't check 
>> JSPs)!  So my assumption is that this is something I will need to talk with 
>> Day/Adobe about... there may be a CQ-specific problem or simply something I 
>> need to do differently.
>>
>> When using CQ, I had developed my OSGi bundle with the 
>> BindingsValuesProvider service within CRXDE.  For the "standalone" test I 
>> just created it using Maven with the SCR and bundle plugins.  As one last 
>> test I decided to install the JAR bundle which worked within Jackrabbit into 
>> CQ.  It appears to have installed correctly, but I'm still not getting 
>> access to the newly bound "testData" object.  I'll talk to Day.
>>
>> Thanks for the offer of help, though!
>>
>> --David
>>
>>
>>
>> -----Original Message-----
>> From: Justin Edelson [mailto:[email protected]]
>> Sent: Monday, November 29, 2010 2:15 PM
>> To: [email protected]
>> Subject: Re: BindingValuesProvider
>>
>> Hi,
>>
>> Can you package up a test project demonstrating this?
>>
>> Justin
>>
>> On 11/29/10 1:53 PM, Levine, David wrote:
>>> Thanks, Bertrand.
>>>
>>> It is odd: my BindingsValuesProvider implementing class is in a separate 
>>> OSGi bundle from the Velocity bundle, and it is defined as a service.  I 
>>> can see it in the Felix console - it has a Service ID assigned to it and a 
>>> Component ID.  So I would think this is a good thing.  But I'm not seeing 
>>> the binding in the scripts.
>>>
>>> My class is fairly simple:
>>>
>>> /*
>>>  * @scr.component immediate="true" metatype="no"
>>>  * @scr.service
>>>  *
>>>  * @scr.property name="service.description" value="Test Bindings"
>>>  * @scr.property name="service.vendor" value="CU"
>>>  *
>>>  * @scr.property name="javax.script.name" value="any"
>>>  */
>>> public class CUBindingsValuesProvider implements BindingsValuesProvider {
>>>      public void addBindings(Bindings bindings) {
>>>              bindings.put("testData","Hello world");
>>>      }
>>> }
>>>
>>> In my Velocity template I attempt to access it via ${testData} and in JSP I 
>>> attempt to access it via <c:out value="${bindings.testData}"/> but nothing 
>>> shows up in either case.
>>>
>>> I have the "javax.script.name" property set to "any", similar to the 
>>> CurrentNodeBindingsValuesProvider example on the wiki.  I tried removing 
>>> the property entirely (in case "any" is the incorrect way of specifying 
>>> this... although this is what is done on the wiki page) but it did not help.
>>>
>>> --David
>>>
>>>
>>> -----Original Message-----
>>> From: Bertrand Delacretaz [mailto:[email protected]]
>>> Sent: Monday, November 29, 2010 1:02 PM
>>> To: [email protected]
>>> Subject: Re: BindingValuesProvider
>>>
>>> Hi David,
>>>
>>> On Mon, Nov 29, 2010 at 6:28 PM, Levine, David <[email protected]> wrote:
>>>> ...I'd like to now take this a step further and add a few additional 
>>>> scripting variables
>>>> as discussed here: 
>>>> https://cwiki.apache.org/SLING/adding-new-scripting-variables.html
>>>>
>>>> So I want to create a class which implements the BindingsValuesProvider 
>>>> interface.  OK...
>>>> but what do I do with it once I create it?...
>>>
>>> There are a few examples in [1] that are used in integration tests [2].
>>>
>>> No configuration is needed - all active OSGi services which implement
>>> BindingsValuesProvider  are used by script engines, and the
>>> javax.script.name service property can be used to restrict them to a
>>> specific script engine. I guess the value of that would be "velocity"
>>> in your case, haven't checked.
>>>
>>> -Bertrand
>>>
>>> [1] 
>>> http://svn.apache.org/repos/asf/sling/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/scripting
>>>
>>> [2] 
>>> http://svn.apache.org/repos/asf/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/ScriptBindingsValuesProviderTest.java
>>>
>>> ***
>>> Scanned
>>>
>>> **
>>> This e-mail message is intended only for the designated recipient(s) named 
>>> above. The information contained in this e-mail and any attachments may be 
>>> confidential or legally privileged. If you are not the intended recipient, 
>>> you may not review, retain, copy, redistribute or use this e-mail or any 
>>> attachment for any purpose, or disclose all or any part of its contents.  
>>> If you have received this e-mail in error, please immediately notify the 
>>> sender by reply e-mail and permanently delete this e-mail and any 
>>> attachments from your computer system.
>>
>>
>> ***
>> Scanned
>>
>> **
>> This e-mail message is intended only for the designated recipient(s) named 
>> above. The information contained in this e-mail and any attachments may be 
>> confidential or legally privileged. If you are not the intended recipient, 
>> you may not review, retain, copy, redistribute or use this e-mail or any 
>> attachment for any purpose, or disclose all or any part of its contents.  If 
>> you have received this e-mail in error, please immediately notify the sender 
>> by reply e-mail and permanently delete this e-mail and any attachments from 
>> your computer system.
>
>
> ***
> Scanned
>
> **
> This e-mail message is intended only for the designated recipient(s) named 
> above. The information contained in this e-mail and any attachments may be 
> confidential or legally privileged. If you are not the intended recipient, 
> you may not review, retain, copy, redistribute or use this e-mail or any 
> attachment for any purpose, or disclose all or any part of its contents.  If 
> you have received this e-mail in error, please immediately notify the sender 
> by reply e-mail and permanently delete this e-mail and any attachments from 
> your computer system.
>
> ***
> Scanned
>
> **
> This e-mail message is intended only for the designated recipient(s) named 
> above. The information contained in this e-mail and any attachments may be 
> confidential or legally privileged. If you are not the intended recipient, 
> you may not review, retain, copy, redistribute or use this e-mail or any 
> attachment for any purpose, or disclose all or any part of its contents.  If 
> you have received this e-mail in error, please immediately notify the sender 
> by reply e-mail and permanently delete this e-mail and any attachments from 
> your computer system.
>

Reply via email to