Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn more

View all

Sign in to view all badges

SOLVED

AEM 6.5.5 - Not able to create content fragments programmatically

nikunjj81682294
Level 2
Level 2

I am trying to run the following code to create content fragments programmatically. The code runs fine but there is no content fragment created in the DAM.

 

I am able to create the content fragments manually but not programmatically.

 

//Does not create a content fragment
Resource templateRes = resourceResolver.getResource("/conf/<projectname>/settings/dam/cfm/models/custom-model");
fragment = templateRes.adaptTo(FragmentTemplate.class).createFragment(parentFolder, "custom-name", "Custom Title");

// Asset gets created successfully.
AssetManager assetMgr = resourceResolver.adaptTo(AssetManager.class);
Resource resource = resourceResolver.getResource(parentFolder.getPath()+"/"+"test.jpeg");
Asset asset = assetMgr.createAsset(parentFolder.getPath()+"/"+"test.jpeg", null, "image/jpeg", true);

resourceResolver.commit();

 Any help is appreciated.

 

Thanks,

Nikunj Jariwala

AEM 6.5 content fragments
1 Accepted Solution
vanegi
Correct answer by
Employee
Employee

To create a content fragment, you can use ‘create’ API reference from ‘com.adobe.cq.dam.cfm ContentFragmentManager’.

 

Sharing a sample code which you can try to create a content fragment programmatically: 

//reference the Content Fragment Manager
@reference
private ContentFragmentManager fragmentManager;

private void createFrag() {
/** fragmentManager.create helps to create a content fragment
parent – The location where the content fragment should be created (for eg. “/content/dam/fragments”)
template – the content fragment template to refer while creating the new fragment
my-test-fragment – name of the fragment
My Test Fragment – title of the fragment **/

ContentFragment myFragment = fragmentManager.create(parent, template, “my-test-fragment”, “My Test Fragment”);

}

 

Programmatically accessing a content fragment

We need ‘com.adobe.cq.dam.cfm.ContentFragment’ API reference to access a content fragment

//Get the resource of content fragment as below.
Resource fragmentResource = resourceResolver.getResource(“/content/dam/fragments/my-test-fragment”);

//Adapt it to a fragment resource
if (fragmentResource != null) {
ContentFragment fragment = fragmentResource.adaptTo(ContentFragment.class);
// the resource is now accessible through the API
}

 

Reference: https://helpx.adobe.com/experience-manager/6-5/sites/developing/using/reference-materials/javadoc/co...

 

Thanks!!

View solution in original post

2 Replies
vanegi
Correct answer by
Employee
Employee

To create a content fragment, you can use ‘create’ API reference from ‘com.adobe.cq.dam.cfm ContentFragmentManager’.

 

Sharing a sample code which you can try to create a content fragment programmatically: 

//reference the Content Fragment Manager
@reference
private ContentFragmentManager fragmentManager;

private void createFrag() {
/** fragmentManager.create helps to create a content fragment
parent – The location where the content fragment should be created (for eg. “/content/dam/fragments”)
template – the content fragment template to refer while creating the new fragment
my-test-fragment – name of the fragment
My Test Fragment – title of the fragment **/

ContentFragment myFragment = fragmentManager.create(parent, template, “my-test-fragment”, “My Test Fragment”);

}

 

Programmatically accessing a content fragment

We need ‘com.adobe.cq.dam.cfm.ContentFragment’ API reference to access a content fragment

//Get the resource of content fragment as below.
Resource fragmentResource = resourceResolver.getResource(“/content/dam/fragments/my-test-fragment”);

//Adapt it to a fragment resource
if (fragmentResource != null) {
ContentFragment fragment = fragmentResource.adaptTo(ContentFragment.class);
// the resource is now accessible through the API
}

 

Reference: https://helpx.adobe.com/experience-manager/6-5/sites/developing/using/reference-materials/javadoc/co...

 

Thanks!!

View solution in original post

varaprasad56
Level 1
Level 1

Hi @vanegi,

The solution you have mentioned is marked as deprecated, If you could provide sample code for creation of content fragment in new pattern, that will be really helpful.

 

Thanks,

Vara Prasad M