Sorry , its not java backed , but script based webservice
Few methods as below for java class :
private void updateInteractionStatus(NodeRef node ,String msg , String interactionId)
{
log.debug("updateInteractionStatus : :" );
if(!nodeService.hasAspect(node, ExtContentModel.ASPECT_INTERACTION_INFO))
{
log.debug("updateInteractionStatus : adding aspect :" );
Map<QName, Serializable> aspectProps = new HashMap<QName, Serializable>();
aspectProps.put(ExtContentModel.PROP_INTERACTION_STATUS, msg);
aspectProps.put(ExtContentModel.PROP_INTERACTIONID, interactionId);
aspectProps.put(ExtContentModel.PROP_INTERACTION_TYPE, CREATE_INTERACTION_TYPE);
nodeService.addAspect(node, ExtContentModel.ASPECT_INTERACTION_INFO, aspectProps);
}
else
{
log.debug("updateInteractionStatus : setting aspect :" );
// serviceRegistry.getAuthenticationService().authenticate("admin","admin".toCharArray());
Map<QName, Serializable> props = nodeService.getProperties(node);
props.put(ExtContentModel.PROP_INTERACTION_STATUS, msg);
props.put(ExtContentModel.PROP_INTERACTIONID, interactionId);
props.put(ExtContentModel.PROP_INTERACTION_TYPE, CREATE_INTERACTION_TYPE);
nodeService.setProperties(node, props);
}
}
/**
* Method to process CreateInteraction calls for Exbo documents
*/
public void processFailedExboDocs()
{
try
{
System.out.println("DocumentUploadScriptAction processFailedExboDocs>>");
ResultSet docResultSet =serviceRegistry.getSearchService().
query(storeRef,
SearchService.LANGUAGE_LUCENE,
"PATH:\"/app:company_home/st:sites/cm:customersupport/cm:documentLibrary/cm:BASE/cm:INVALID/cm:EXBO//*\" OR PATH:\"/app:company_home/st:sites/cm:customersupport/cm:documentLibrary/cm:BASE/cm:INCOMING/cm:EXBO//*\" OR PATH:\"/app:company_home/st:sites/cm:customersupport/cm:documentLibrary/cm:BASE/cm:TO_BE_ARCHIVED/cm:EXBO//*\""
);
List<NodeRef> nodeRefs = docResultSet.getNodeRefs();
createInteractionRetrail(nodeRefs );
}
catch(Exception e)
{
e.printStackTrace();
}
}
——————————————————————————–
CreateInteractionWS.get.js
validationProcessor.processFailedExboDocs(); // validationProcessor is subclass of BaseScopableProcessorExtension
——————————————————————————–
CreateInteractionWS.get.desc.xml
<webscript>
<shortname>Archieve</shortname>
<description>Document List Action - Backup document(s)</description>
<url>/CreateNewInteraction</url>
<format default="html">argument</format>
<authentication>user</authentication>
</webscript>
——————————————————————————-
CreateInteractionWS.get.html.ftl
<html>
<body>
DataCorrection >> Update metadata / movement done successfully.
<p>Hello ${person.properties.userName}</p>
</body>
</html>