Hi @bruce_fernandes
You can write a servlet that exposes the end-point in AEM author that takes the payload and/or references to publish to publish instance. So that allows you to call the end-point from Workfront Fusion.
For reference, check the below example:
package com.example.core.servlets;
import com.day.cq.replication.Agent;
import com.day.cq.replication.ReplicationActionType;
import com.day.cq.replication.Replicator;
import com.day.cq.replication.ReplicationOptions;
import com.day.cq.replication.ReplicationStatus;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.api.servlets.ServletResolverConstants;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.Map;
@Component(
service = Servlet.class,
property = {
ServletResolverConstants.SLING_SERVLET_PATHS + "=/bin/publishcontent",
ServletResolverConstants.SLING_SERVLET_METHODS + "=POST"
}
)
public class PublishContentServlet extends SlingAllMethodsServlet {
@Reference
private Replicator replicator;
@Override
protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
String contentPath = request.getParameter("contentPath");
if (contentPath == null || contentPath.isEmpty()) {
response.setStatus(SlingHttpServletResponse.SC_BAD_REQUEST);
response.getWriter().write("Error: Missing contentPath parameter.");
return;
}
try {
// Publish content
replicator.replicate(request.getResourceResolver().adaptTo(Session.class),
ReplicationActionType.ACTIVATE, contentPath);
response.setStatus(SlingHttpServletResponse.SC_OK);
response.getWriter().write("Content published successfully: " + contentPath);
} catch (Exception e) {
response.setStatus(SlingHttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write("Error publishing content: " + e.getMessage());
}
}
}
Thanks,
Lokesh