map.loadMapping(CastorDatabaseService.class.getResource("/xml_mapping_content_2.5.xml").toString());
// All ODMG database access requires a transaction
db.begin();
Content parentContent = ContentController.getContentController().getContentWithId(parentContentId, db);
logger.info("parentContent:" + parentContent.getName());
Integer repositoryId = parentContent.getRepositoryId();
//String encoding = "ISO-8859-1";
FileInputStream fis = new FileInputStream(contentFile);
InputStreamReader reader = new InputStreamReader(fis, encoding);
//Reader reader = new FileReader(file);
Unmarshaller unmarshaller = new Unmarshaller(map);
unmarshaller.setWhitespacePreserve(true);
unmarshaller.setValidation(false);
InfoGlueExportImpl infoGlueExportImplRead = (InfoGlueExportImpl)unmarshaller.unmarshal(reader);
Collection contentTypeDefinitions = infoGlueExportImplRead.getContentTypeDefinitions();
logger.info("Found " + contentTypeDefinitions.size() + " content type definitions");
Collection categories = infoGlueExportImplRead.getCategories();
logger.info("Found " + categories.size() + " categories");
Map categoryIdMap = new HashMap();
Map contentTypeIdMap = new HashMap();
importCategories(categories, null, categoryIdMap, db);
updateContentTypeDefinitions(contentTypeDefinitions, categoryIdMap);
List<Content> readContents = infoGlueExportImplRead.getRootContent();
Map contentIdMap = new HashMap();
Map siteNodeIdMap = new HashMap();
List<Content> allContents = new ArrayList<Content>();
String suffix = "";
LanguageVO languageVO = getPreferredLanguageForContent(parentContent);
if (languageVO != null)
{
suffix = LabelController.getController(languageVO.getLocale()).getString("tool.contenttool.importContent.suffix");
}
Iterator<Content> readContentsIterator = readContents.iterator();
while(readContentsIterator.hasNext())
{
Content readContent = readContentsIterator.next();
readContent.setRepository((RepositoryImpl)parentContent.getRepository());
readContent.setParentContent((ContentImpl)parentContent);
createContents(readContent, contentIdMap, contentTypeIdMap, allContents, Collections.unmodifiableCollection(contentTypeDefinitions), categoryIdMap, version, db, onlyLatestVersions, suffix);
parentContent.getChildren().add(readContent);
}
List<Integer> allContentIds = new ArrayList<Integer>();
Iterator<Content> allContentsIterator = allContents.iterator();
while(allContentsIterator.hasNext())
{
Content content = allContentsIterator.next();
allContentIds.add(content.getContentId());
}
db.commit();
db.close();
Iterator<Integer> allContentIdsIterator = allContentIds.iterator();
while(allContentIdsIterator.hasNext())
{
Integer contentId = allContentIdsIterator.next();
try
{
db = CastorDatabaseService.getDatabase();
db.begin();
Content content = ContentController.getContentController().getContentWithId(contentId, db);
updateContentVersions(content, contentIdMap, siteNodeIdMap, onlyLatestVersions);
db.commit();
}
catch(Exception e)