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());
this.repositoryId = parentContent.getRepositoryId();
//String encoding = "ISO-8859-1";
logger.debug("file:" + file.exists() + ":" + file.getPath());
FileInputStream fis = new FileInputStream(file);
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");
Collection<Language> languages = infoGlueExportImplRead.getLanguages();
logger.info("Found " + languages.size() + " languages");
Map categoryIdMap = new HashMap();
Map contentTypeIdMap = new HashMap();
importCategories(categories, null, categoryIdMap, db);
updateContentTypeDefinitions(contentTypeDefinitions, categoryIdMap);
Map<Integer,Language> languageIdMap = new HashMap<Integer,Language>();
logger.info("languages:" + languages);
for(Language lang : languages)
{
languageIdMap.put(lang.getId(), lang);
}
List readContents = infoGlueExportImplRead.getRootContent();
Map contentIdMap = new HashMap();
Map siteNodeIdMap = new HashMap();
List allContents = new ArrayList();
Iterator readContentsIterator = readContents.iterator();
while(readContentsIterator.hasNext())
{
Content readContent = (Content)readContentsIterator.next();
readContent.setRepository((RepositoryImpl)parentContent.getRepository());
readContent.setParentContent((ContentImpl)parentContent);
createContents(readContent, contentIdMap, contentTypeIdMap, languageIdMap, allContents, Collections.unmodifiableCollection(contentTypeDefinitions), categoryIdMap, version, db);
parentContent.getChildren().add(readContent);
}
List allContentIds = new ArrayList();
Iterator allContentsIterator = allContents.iterator();
while(allContentsIterator.hasNext())
{
Content content = (Content)allContentsIterator.next();
allContentIds.add(content.getContentId());
}
db.commit();
db.close();
Iterator allContentIdsIterator = allContentIds.iterator();
while(allContentIdsIterator.hasNext())
{
Integer contentId = (Integer)allContentIdsIterator.next();
try
{
db = CastorDatabaseService.getDatabase();
db.begin();
Content content = ContentController.getContentController().getContentWithId(contentId, db);
updateContentVersions(content, contentIdMap, siteNodeIdMap);
db.commit();
}
catch(Exception e)