From Chris Falzone - an example of importing content in dotCMS (1.7) using the ContentletAPI
package com.cfalzone.jobs;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.dotmarketing.business.APILocator;
import com.dotmarketing.cache.FieldsCache;
import com.dotmarketing.cache.StructureCache;
import com.dotmarketing.cms.factories.PublicUserFactory;
import com.dotmarketing.portlets.contentlet.business.ContentletAPI;
import com.dotmarketing.portlets.contentlet.model.Contentlet;
import com.dotmarketing.portlets.languagesmanager.business.LanguageAPI;
import com.dotmarketing.portlets.structure.model.Field;
import com.dotmarketing.portlets.structure.model.Structure;
import com.dotmarketing.util.Logger;
public class SimpleContentCreator implements Job {
@SuppressWarnings("unchecked")
public void execute(JobExecutionContext arg0) throws JobExecutionException {
Logger.info(this, "SimpleContentCreator Starting up");
/* Get the importStructure */
Structure importStructure = StructureCache.getStructureByType('Import Structure');
if (importStructure == null || importStructure.getName() == null) {
Logger.error(this, "Could not find the Import Structure: " + importStructureStr);
exit;
}
/* Get the Fields */
Field myField = null;
Field anotherField = null;
List fields = FieldsCache.getFieldsByStructureInode(importStructure.getInode());
for (Field f : fields) {
if (f.getVelocityVarName().equals('myField')) {
myField = f;
}
if (f.getVelocityVarName().equals('anotherField')) {
anotherField = f;
}
}
if (myField == null) {
Logger.error(this, "myField not found in " + importStructure.getName());
exit;
}
if (anotherField == null) {
Logger.error(this, "anotherField not found in " + importStructure.getName());
exit;
}
/* Create A New Contentlet */
Contentlet con2 = new Contentlet();
con2.setStructureInode(importStructure.getInode());
LanguageAPI lAPI = APILocator.getLanguageAPI();
con2.setArchived(false);
con2.setWorking(true);
con2.setLive(autoPub);
con2.setLanguageId(lAPI.getDefaultLanguage().getId());
conAPI.setContentletProperty(con2, myField, 'A Value');
conAPI.setContentletProperty(con2, anotherField, 'Another Value');
/* Now check the contentlet back in */
try {
conAPI.checkin(con2, PublicUserFactory.getSystemUser(), true);
} catch (Exception e) {
Logger.error(this, "Unable checkin the Contentlet. " + e.getMessage(), e);
exit;
}
Logger.info(this, "SimpleContentCreator Finished");
return;
}
}