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.

Reply via email to