Wednesday, June 25, 2014

How to add binary property for Node in CQ

Motivation: Recently I was trying to add some binary property to a node through file system (As part of code deployment). Had hard time figuring out how we can do that.

Use Case: You need to add some Binary property to a node through file system. (One use case is adding SAML cert as property idp_cert under /etc/key/saml)

Solution:

Option 1:

You can use following curl command to do that (Look at \< )


curl -u UID:PWD -F property_name=\<File location -F property_name@TypeHint=Binary http://HOST:PORT/PATH_WHERE_YOU_WANT_TO_ADD_THIS_PROP

If you are trying to upload a file instead of property, You can use something like, (This is even true for if you want to install a bundle using repo path in that case repo path would be something like /apps/your_app/install if this is Adobe bundle then something like /libs/adobe_modules/install and if this is system bundle (Like Authentication bundles) then it would be something like /libs/system/install

curl -u UID:PWD -T File_Location HOST:PORT/PATH

Option 2: 

You can use .content.xml to create property like this

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal"
    your_property-name="{Binary}"
    jcr:primaryType="sling:Folder"/>

And then create a file called  your_property-name.binary at same level and dump your binary content there. When you use maven-content-plugin to build package now, vlt knows how to transform this to a binary property.

----- /somepath
-------- .content.xml
-------- your_property_name.binary

Note that there are various way to create actual binary content in CQ using curl and some of them you can check here 

7 comments:

  1. Hi ,
    How can i add a cq node with specific type, for an example Long type.

    curl -u admin:admin -X POST --data size=70 http://localhost:4502/content/

    if i use the above command it will create a node but with sting type. i want to make it Long.

    ReplyDelete
    Replies
    1. If you are trying to add property to Node with a type then you can use @TypeHint more example here http://sling.apache.org/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html

      Delete
  2. This comment has been removed by a blog administrator.

    ReplyDelete
  3. my mobile phone is not the latest one but it sure has lots of features:: The Tre Ver Condo PSF Singapore

    ReplyDelete
  4. SpainForSale.Properties is an Exclusive Real Estate Agency offering Luxurious Properties For Sale and Rent on the Costa del Sol, such as: Luxury VILLAS FOR SALE IN LOS ARQUEROSSpainForSale.Properties is considered one of the most trusted Exclusive Real Estate Agencies in Marbella, Costa del Sol and other “Prime Locations” in Spain.Live on the Costa del Sol and Enjoy a Luxurious lifestyle in one of the most beautiful places of the World.

    ReplyDelete
  5. I¡¦ve read a few good stuff here. Definitely worth bookmarking for revisiting. I wonder how a lot effort you put to create this type of great informative website. real estate agent

    ReplyDelete
  6. SpainForSale.Properties is an Exclusive Real Estate Agency offering Luxurious Properties For Sale and Rent on the Costa del Sol, such as: Luxury PLOTS FOR SALE IN MARBELLA SpainForSale.Properties is considered one of the most trusted Exclusive Real Estate Agencies in Marbella, Costa del Sol and other “Prime Locations” in Spain. Live on the Costa del Sol and Enjoy a Luxurious lifestyle in one of the most beautiful places of the World. Luxury Properties For Sale in Prime locations of the Costa del Sol: Mijas, Marbella, Benahavis, Estepona ….

    ReplyDelete