//END TEST
String names = "";
Repository repository = RepositoryController.getController().getRepositoryWithId(repositoryId, db);
SiteNode siteNode = SiteNodeController.getController().getRootSiteNode(repositoryId, db);
Content content = ContentController.getContentController().getRootContent(repositoryId, db);
InterceptionPointVO interceptionPointVO = InterceptionPointController.getController().getInterceptionPointVOWithName("Repository.Read", db);
if(interceptionPointVO != null)
allAccessRights.addAll(AccessRightController.getController().getAccessRightListOnlyReadOnly(interceptionPointVO.getId(), repository.getId().toString(), db));
interceptionPointVO = InterceptionPointController.getController().getInterceptionPointVOWithName("Repository.Write", db);
if(interceptionPointVO != null)
allAccessRights.addAll(AccessRightController.getController().getAccessRightListOnlyReadOnly(interceptionPointVO.getId(), repository.getId().toString(), db));
interceptionPointVO = InterceptionPointController.getController().getInterceptionPointVOWithName("Repository.ReadForBinding", db);
if(interceptionPointVO != null)
allAccessRights.addAll(AccessRightController.getController().getAccessRightListOnlyReadOnly(interceptionPointVO.getId(), repository.getId().toString(), db));
ExportRepositoryAction.getContentPropertiesAndAccessRights(ps, allContentProperties, allAccessRights, content, db);
ExportRepositoryAction.getSiteNodePropertiesAndAccessRights(ps, allSiteNodeProperties, allAccessRights, siteNode, db);
siteNodes.add(siteNode);
contents.add(content);
names = names + "_" + repository.getName();
allRepositoryProperties.putAll(OptimizedExportController.getRepositoryProperties(ps, repositoryId));
List contentTypeDefinitions = ContentTypeDefinitionController.getController().getContentTypeDefinitionList(db);
List categories = CategoryController.getController().getAllActiveCategories();
InfoGlueExportImpl infoGlueExportImpl = new InfoGlueExportImpl();
VisualFormatter visualFormatter = new VisualFormatter();
names = new VisualFormatter().replaceNonAscii(names, '_');
String fileName = "RepositoryCopy_" + names + "_" + visualFormatter.formatDate(new Date(), "yyyy-MM-dd_HHmm") + ".xml";
String filePath = CmsPropertyHandler.getDigitalAssetPath();
String fileSystemName = filePath + File.separator + fileName;
String encoding = "UTF-8";
file = new File(fileSystemName);
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos);
OutputStreamWriter osw = new OutputStreamWriter(bos, encoding);
Marshaller marshaller = new Marshaller(osw);
marshaller.setMapping(map);
marshaller.setEncoding(encoding);
DigitalAssetBytesHandler.setMaxSize(-1);
infoGlueExportImpl.getRootContent().addAll(contents);
infoGlueExportImpl.getRootSiteNode().addAll(siteNodes);
infoGlueExportImpl.setContentTypeDefinitions(new ArrayList());
infoGlueExportImpl.setCategories(new ArrayList());
infoGlueExportImpl.setRepositoryProperties(allRepositoryProperties);
infoGlueExportImpl.setContentProperties(allContentProperties);
infoGlueExportImpl.setSiteNodeProperties(allSiteNodeProperties);
infoGlueExportImpl.setAccessRights(allAccessRights);
marshaller.marshal(infoGlueExportImpl);
osw.flush();
osw.close();
db.commit();
db.close();
db = CastorDatabaseService.getDatabase();
db.begin();
Map contentIdMap = new HashMap();
Map siteNodeIdMap = new HashMap();
List allContentIds = new ArrayList();
Map<String,String> replaceMap = new HashMap<String,String>();
Properties properties = new Properties();
try
{
properties.load(new ByteArrayInputStream(replacements.getBytes("ISO-8859-1")));
Iterator propertySetIterator = properties.keySet().iterator();
while(propertySetIterator.hasNext())
{
String key = (String)propertySetIterator.next();
String value = properties.getProperty(key);
replaceMap.put(key, value);
}
}
catch(Exception e)
{
logger.error("Error loading properties from string. Reason:" + e.getMessage());
e.printStackTrace();
}
ImportController.getController().importRepository(db, map, file, encoding, 2, onlyLatestVersions, true, contentIdMap, siteNodeIdMap, allContentIds, replaceMap, false);
db.commit();
db.close();
Iterator allContentIdsIterator = allContentIds.iterator();
while(allContentIdsIterator.hasNext())
{
Integer contentId = (Integer)allContentIdsIterator.next();
try
{
db = CastorDatabaseService.getDatabase();
db.begin();
Content createdContent = ContentController.getContentController().getContentWithId(contentId, db);
ImportController.getController().updateContentVersions(createdContent, contentIdMap, siteNodeIdMap, onlyLatestVersions, replaceMap);
db.commit();
}
catch(Exception e)