This is a very straightforward demonstration JSP that will transactionally checking a FileAsset content using the 2.2 starter site content schema. The content constructed as a Hashmap that is used to create the new File which is then checked in using standard ContentletAPI methods.
The example also demonstrates how to checkin a piece of content with a Binary Field as well.
<%
response.setContentType("text/plain");
// User to check in as
User user = APILocator.getUserAPI().getSystemUser();
// respect CMS Anonymous permissions
boolean respectFrontendRoles = false;
// Host on which to place the content
Host host = APILocator.getHostAPI().findDefaultHost(user, respectFrontendRoles);
// Folder on which to place the content, we will use the images / folder
Folder folder = APILocator.getFolderAPI().findFolderByPath("/images/", host, user, respectFrontendRoles);
// Language of the content
Language lang = APILocator.getLanguageAPI().getDefaultLanguage();
//Structure to checkin
Structure struc = StructureFactory.getStructureByVelocityVarName("FileAsset");
try{
// begin transaction
HibernateUtil.startTransaction();
File f = new File("/tmp/tv.png");
Map m = new HashMap();
m.put("stInode", struc.getInode());
m.put("host", host.getIdentifier());
m.put("folder", folder.getInode()); // You need the inode of the folder (folders are not versioned)
m.put("languageId", lang.getId());
m.put("sortOrder", new Long(0));
m.put("title", f.getName());
m.put("fileName", f.getName());
// binary field, pass the (local) file, which will be copied into the content repository
m.put("fileAsset", f);
// create a new piece of content backed by the map created above
Contentlet content = new Contentlet(m);
// check in the content
content= APILocator.getContentletAPI().checkin(content,user, respectFrontendRoles);
out.print("checkin contentlet: " + f.getName());
// publish the content
APILocator.getContentletAPI().publish(content, user, respectFrontendRoles);
out.println(" published: " + f.getName());
// commit transaction
HibernateUtil.commitTransaction();
}
catch(Exception e){
out.println(e);
HibernateUtil.rollbackTransaction();
}
%>
<%@page import="com.dotmarketing.db.HibernateUtil"%>
<%@page import="java.io.File"%>
<%@page import="com.dotmarketing.portlets.languagesmanager.model.Language"%>
<%@page import="com.dotmarketing.portlets.structure.factories.StructureFactory"%>
<%@page import="com.dotmarketing.portlets.structure.model.Structure"%>
<%@page import="com.dotmarketing.portlets.folders.model.Folder"%>
<%@page import="com.dotmarketing.beans.Host"%>
<%@page import="com.liferay.portal.model.User"%>
<%@page import="com.dotmarketing.business.APILocator"%>
<%@page import="com.dotmarketing.portlets.contentlet.model.Contentlet"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>