KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > applications > managementtool > actions > ImportRepositoryAction


1 /* ===============================================================================
2  *
3  * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4  *
5  * ===============================================================================
6  *
7  * Copyright (C)
8  *
9  * This program is free software; you can redistribute it and/or modify it under
10  * the terms of the GNU General Public License version 2, as published by the
11  * Free Software Foundation. See the file LICENSE.html for more information.
12  *
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19  * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20  *
21  * ===============================================================================
22  */

23
24 package org.infoglue.cms.applications.managementtool.actions;
25
26 import java.io.BufferedReader JavaDoc;
27 import java.io.File JavaDoc;
28 import java.io.FileInputStream JavaDoc;
29 import java.io.InputStreamReader JavaDoc;
30 import java.util.ArrayList JavaDoc;
31 import java.util.Collection JavaDoc;
32 import java.util.HashMap JavaDoc;
33 import java.util.Iterator JavaDoc;
34 import java.util.List JavaDoc;
35 import java.util.Map JavaDoc;
36
37 import org.apache.log4j.Logger;
38 import org.exolab.castor.jdo.Database;
39 import org.exolab.castor.jdo.TransactionNotInProgressException;
40 import org.exolab.castor.mapping.Mapping;
41 import org.exolab.castor.xml.Unmarshaller;
42 import org.infoglue.cms.applications.common.actions.InfoGlueAbstractAction;
43 import org.infoglue.cms.controllers.kernel.impl.simple.AvailableServiceBindingController;
44 import org.infoglue.cms.controllers.kernel.impl.simple.CastorDatabaseService;
45 import org.infoglue.cms.controllers.kernel.impl.simple.ContentController;
46 import org.infoglue.cms.controllers.kernel.impl.simple.ContentTypeDefinitionController;
47 import org.infoglue.cms.controllers.kernel.impl.simple.LanguageController;
48 import org.infoglue.cms.controllers.kernel.impl.simple.ServiceDefinitionController;
49 import org.infoglue.cms.controllers.kernel.impl.simple.SiteNodeTypeDefinitionController;
50 import org.infoglue.cms.entities.content.Content;
51 import org.infoglue.cms.entities.content.ContentVersion;
52 import org.infoglue.cms.entities.content.DigitalAsset;
53 import org.infoglue.cms.entities.content.impl.simple.ContentImpl;
54 import org.infoglue.cms.entities.management.AvailableServiceBinding;
55 import org.infoglue.cms.entities.management.ContentTypeDefinition;
56 import org.infoglue.cms.entities.management.Language;
57 import org.infoglue.cms.entities.management.Repository;
58 import org.infoglue.cms.entities.management.RepositoryLanguage;
59 import org.infoglue.cms.entities.management.ServiceDefinition;
60 import org.infoglue.cms.entities.management.SiteNodeTypeDefinition;
61 import org.infoglue.cms.entities.management.impl.simple.AvailableServiceBindingImpl;
62 import org.infoglue.cms.entities.management.impl.simple.ContentTypeDefinitionImpl;
63 import org.infoglue.cms.entities.management.impl.simple.InfoGlueExportImpl;
64 import org.infoglue.cms.entities.management.impl.simple.LanguageImpl;
65 import org.infoglue.cms.entities.management.impl.simple.RepositoryImpl;
66 import org.infoglue.cms.entities.management.impl.simple.ServiceDefinitionImpl;
67 import org.infoglue.cms.entities.management.impl.simple.SiteNodeTypeDefinitionImpl;
68 import org.infoglue.cms.entities.structure.Qualifyer;
69 import org.infoglue.cms.entities.structure.ServiceBinding;
70 import org.infoglue.cms.entities.structure.SiteNode;
71 import org.infoglue.cms.entities.structure.SiteNodeVersion;
72 import org.infoglue.cms.entities.structure.impl.simple.ServiceBindingImpl;
73 import org.infoglue.cms.entities.structure.impl.simple.SiteNodeImpl;
74 import org.infoglue.cms.entities.structure.impl.simple.SiteNodeVersionImpl;
75 import org.infoglue.cms.exception.SystemException;
76 import org.infoglue.cms.util.CmsPropertyHandler;
77 import org.infoglue.cms.util.FileUploadHelper;
78
79 import webwork.action.ActionContext;
80
81 /**
82  * This class handles Exporting of a repository to an XML-file.
83  *
84  * @author mattias
85  */

86
87 public class ImportRepositoryAction extends InfoGlueAbstractAction
88 {
89     public final static Logger logger = Logger.getLogger(ImportRepositoryAction.class.getName());
90
91     private String JavaDoc onlyLatestVersions = "true";
92     
93     /**
94      * This shows the dialog before export.
95      * @return
96      * @throws Exception
97      */

98
99     public String JavaDoc doInput() throws Exception JavaDoc
100     {
101         return "input";
102     }
103     
104     /**
105      * This handles the actual importing.
106      */

107     
108     protected String JavaDoc doExecute() throws SystemException
109     {
110         Database db = CastorDatabaseService.getDatabase();
111         
112         try
113         {
114             //now restore the value and list what we get
115
File JavaDoc file = FileUploadHelper.getUploadedFile(ActionContext.getContext().getMultiPartRequest());
116             //File file = new File("C:/Program/Apache Software Foundation/Tomcat 5.5/webapps/infoglueCMS/digitalAssets/Import_1157890175468Export_TCS-DE_2006-09-07.xml");
117
if(file == null || !file.exists())
118                 throw new SystemException("The file upload must have gone bad as no file reached the import utility.");
119             
120             String JavaDoc encoding = "UTF-8";
121             int version = 1;
122             
123             //Looking up what kind of dialect this is.
124

125             FileInputStream JavaDoc fisTemp = new FileInputStream JavaDoc(file);
126             InputStreamReader JavaDoc readerTemp = new InputStreamReader JavaDoc(fisTemp, encoding);
127             BufferedReader JavaDoc bufferedReaderTemp = new BufferedReader JavaDoc(readerTemp);
128             String JavaDoc line = bufferedReaderTemp.readLine();
129             int index = 0;
130             while(line != null && index < 50)
131             {
132                 logger.info("line:" + line + '\n');
133                 if(line.indexOf("contentTypeDefinitionId") > -1)
134                 {
135                     logger.info("This was a new export...");
136                     version = 2;
137                     break;
138                 }
139                 line = bufferedReaderTemp.readLine();
140                 index++;
141             }
142             
143             bufferedReaderTemp.close();
144             readerTemp.close();
145             fisTemp.close();
146
147             Mapping map = new Mapping();
148             if(version == 1)
149             {
150                 logger.info("MappingFile:" + CastorDatabaseService.class.getResource("/xml_mapping_site.xml").toString());
151                 map.loadMapping(CastorDatabaseService.class.getResource("/xml_mapping_site.xml").toString());
152             }
153             else if(version == 2)
154             {
155                 logger.info("MappingFile:" + CastorDatabaseService.class.getResource("/xml_mapping_site_2.5.xml").toString());
156                 map.loadMapping(CastorDatabaseService.class.getResource("/xml_mapping_site_2.5.xml").toString());
157             }
158
159             // All ODMG database access requires a transaction
160
db.begin();
161             
162
163             //String encoding = "ISO-8859-1";
164
FileInputStream JavaDoc fis = new FileInputStream JavaDoc(file);
165             InputStreamReader JavaDoc reader = new InputStreamReader JavaDoc(fis, encoding);
166             //Reader reader = new FileReader(file);
167

168             Unmarshaller unmarshaller = new Unmarshaller(map);
169             unmarshaller.setWhitespacePreserve(true);
170             InfoGlueExportImpl infoGlueExportImplRead = (InfoGlueExportImpl)unmarshaller.unmarshal(reader);
171             Collection JavaDoc contentTypeDefinitions = infoGlueExportImplRead.getContentTypeDefinitions();
172             logger.info("Found " + contentTypeDefinitions.size() + " content type definitions");
173             
174             SiteNode readSiteNode = infoGlueExportImplRead.getRootSiteNode();
175             logger.info(readSiteNode.getName());
176             Content readContent = infoGlueExportImplRead.getRootContent();
177             logger.info(readContent.getName());
178
179             Repository repositoryRead = readSiteNode.getRepository();
180             logger.info(repositoryRead.getName());
181             readContent.setRepository((RepositoryImpl)repositoryRead);
182
183             db.create(repositoryRead);
184
185             Collection JavaDoc repositoryLanguages = repositoryRead.getRepositoryLanguages();
186             Iterator JavaDoc repositoryLanguagesIterator = repositoryLanguages.iterator();
187             while(repositoryLanguagesIterator.hasNext())
188             {
189                 RepositoryLanguage repositoryLanguage = (RepositoryLanguage)repositoryLanguagesIterator.next();
190                 Language originalLanguage = repositoryLanguage.getLanguage();
191                 
192                 Language language = LanguageController.getController().getLanguageWithCode(originalLanguage.getLanguageCode(), db);
193                 if(language == null)
194                 {
195                     db.create(originalLanguage);
196                     language = originalLanguage;
197                 }
198                 
199                 repositoryLanguage.setLanguage(language);
200                 repositoryLanguage.setRepository(repositoryRead);
201
202                 db.create(repositoryLanguage);
203                 
204                 logger.info("language:" + language);
205                 logger.info("language.getRepositoryLanguages():" + language.getRepositoryLanguages());
206                 language.getRepositoryLanguages().add(repositoryLanguage);
207             }
208             
209             readSiteNode.setRepository((RepositoryImpl)repositoryRead);
210
211             Map JavaDoc contentIdMap = new HashMap JavaDoc();
212             Map JavaDoc siteNodeIdMap = new HashMap JavaDoc();
213             
214             List JavaDoc allContents = new ArrayList JavaDoc();
215             createContents(readContent, contentIdMap, allContents, contentTypeDefinitions, version, db);
216             List JavaDoc allSiteNodes = new ArrayList JavaDoc();
217             createStructure(readSiteNode, contentIdMap, siteNodeIdMap, allSiteNodes, db);
218             
219             List JavaDoc allContentIds = new ArrayList JavaDoc();
220             Iterator JavaDoc allContentsIterator = allContents.iterator();
221             while(allContentsIterator.hasNext())
222             {
223                 Content content = (Content)allContentsIterator.next();
224                 allContentIds.add(content.getContentId());
225             }
226
227             db.commit();
228             db.close();
229                         
230             Iterator JavaDoc allContentIdsIterator = allContentIds.iterator();
231             while(allContentIdsIterator.hasNext())
232             {
233                 Integer JavaDoc contentId = (Integer JavaDoc)allContentIdsIterator.next();
234                 try
235                 {
236                     db = CastorDatabaseService.getDatabase();
237                     db.begin();
238     
239                     Content content = ContentController.getContentController().getContentWithId(contentId, db);
240                     updateContentVersions(content, contentIdMap, siteNodeIdMap);
241     
242                     db.commit();
243                 }
244                 catch(Exception JavaDoc e)
245                 {
246                     try
247                     {
248                         db.rollback();
249                     }
250                     catch(Exception JavaDoc e2) { e2.printStackTrace(); }
251                     logger.error("An error occurred when updating content version for content: " + e.getMessage(), e);
252                 }
253                 finally
254                 {
255                     db.close();
256                 }
257             }
258
259             //updateContentVersions(allContents, contentIdMap, siteNodeIdMap);
260

261             reader.close();
262             
263             //db.commit();
264
//db.close();
265

266         }
267         catch ( Exception JavaDoc e)
268         {
269             try
270             {
271                 db.rollback();
272                 db.close();
273             }
274             catch (Exception JavaDoc e1)
275             {
276                 logger.error("An error occurred when importing a repository: " + e.getMessage(), e);
277                 throw new SystemException("An error occurred when importing a repository: " + e.getMessage(), e);
278             }
279             
280             logger.error("An error occurred when importing a repository: " + e.getMessage(), e);
281             throw new SystemException("An error occurred when importing a repository: " + e.getMessage(), e);
282         }
283         
284         return "success";
285     }
286
287     
288     /**
289      * This method copies a sitenode and all it relations.
290      *
291      * @param siteNode
292      * @param db
293      * @throws Exception
294      */

295     private void createStructure(SiteNode siteNode, Map JavaDoc contentIdMap, Map JavaDoc siteNodeIdMap, List JavaDoc allSiteNodes, Database db) throws Exception JavaDoc
296     {
297         logger.info("siteNode:" + siteNode.getName());
298
299         Integer JavaDoc originalSiteNodeId = siteNode.getSiteNodeId();
300
301         logger.info("originalSiteNodeId:" + originalSiteNodeId);
302
303         SiteNodeTypeDefinition originalSiteNodeTypeDefinition = siteNode.getSiteNodeTypeDefinition();
304         SiteNodeTypeDefinition siteNodeTypeDefinition = null;
305         if(originalSiteNodeTypeDefinition != null)
306         {
307             logger.info("originalSiteNodeTypeDefinition:" + originalSiteNodeTypeDefinition);
308             siteNodeTypeDefinition = SiteNodeTypeDefinitionController.getController().getSiteNodeTypeDefinitionWithName(siteNode.getSiteNodeTypeDefinition().getName(), db, false);
309             logger.info("siteNodeTypeDefinition:" + siteNodeTypeDefinition);
310             if(siteNodeTypeDefinition == null)
311             {
312                 db.create(originalSiteNodeTypeDefinition);
313                 siteNodeTypeDefinition = originalSiteNodeTypeDefinition;
314             }
315             
316             siteNode.setSiteNodeTypeDefinition((SiteNodeTypeDefinitionImpl)siteNodeTypeDefinition);
317         }
318         
319         String JavaDoc mappedMetaInfoContentId = "-1";
320         if(siteNode.getMetaInfoContentId() != null)
321         {
322             if(contentIdMap.containsKey(siteNode.getMetaInfoContentId().toString()))
323                 mappedMetaInfoContentId = (String JavaDoc)contentIdMap.get(siteNode.getMetaInfoContentId().toString());
324             //System.out.println("siteNode meta info content id was:" + siteNode.getMetaInfoContentId() + " and is now " + mappedMetaInfoContentId);
325
}
326         siteNode.setMetaInfoContentId(new Integer JavaDoc(mappedMetaInfoContentId));
327         
328         db.create(siteNode);
329         
330         allSiteNodes.add(siteNode);
331             
332         Integer JavaDoc newSiteNodeId = siteNode.getSiteNodeId();
333         logger.info(originalSiteNodeId + ":" + newSiteNodeId);
334         siteNodeIdMap.put(originalSiteNodeId.toString(), newSiteNodeId.toString());
335         
336         Collection JavaDoc childSiteNodes = siteNode.getChildSiteNodes();
337         if(childSiteNodes != null)
338         {
339             Iterator JavaDoc childSiteNodesIterator = childSiteNodes.iterator();
340             while(childSiteNodesIterator.hasNext())
341             {
342                 SiteNode childSiteNode = (SiteNode)childSiteNodesIterator.next();
343                 childSiteNode.setRepository(siteNode.getRepository());
344                 childSiteNode.setParentSiteNode((SiteNodeImpl)siteNode);
345                 createStructure(childSiteNode, contentIdMap, siteNodeIdMap, allSiteNodes, db);
346             }
347         }
348
349         Collection JavaDoc siteNodeVersions = siteNode.getSiteNodeVersions();
350         
351         if(onlyLatestVersions.equalsIgnoreCase("true"))
352         {
353             logger.info("org siteNodeVersions:" + siteNodeVersions.size());
354             List JavaDoc selectedSiteNodeVersions = new ArrayList JavaDoc();
355             Iterator JavaDoc realSiteNodeVersionsIterator = siteNodeVersions.iterator();
356             while(realSiteNodeVersionsIterator.hasNext())
357             {
358                 SiteNodeVersion siteNodeVersion = (SiteNodeVersion)realSiteNodeVersionsIterator.next();
359                 Iterator JavaDoc selectedSiteNodeVersionsIterator = selectedSiteNodeVersions.iterator();
360                 boolean addVersion = true;
361                 while(selectedSiteNodeVersionsIterator.hasNext())
362                 {
363                     SiteNodeVersion currentSiteNodeVersion = (SiteNodeVersion)selectedSiteNodeVersionsIterator.next();
364                     if(siteNodeVersion.getIsActive().booleanValue() && siteNodeVersion.getSiteNodeVersionId().intValue() > currentSiteNodeVersion.getSiteNodeVersionId().intValue())
365                     {
366                         logger.info("A later version was found... removing this one..");
367                         selectedSiteNodeVersionsIterator.remove();
368                         addVersion = true;
369                     }
370                 }
371     
372                 if(addVersion)
373                     selectedSiteNodeVersions.add(siteNodeVersion);
374             }
375             
376             siteNodeVersions = selectedSiteNodeVersions;
377         }
378
379         Iterator JavaDoc siteNodeVersionsIterator = siteNodeVersions.iterator();
380         while(siteNodeVersionsIterator.hasNext())
381         {
382             SiteNodeVersion siteNodeVersion = (SiteNodeVersion)siteNodeVersionsIterator.next();
383             
384             Collection JavaDoc serviceBindings = siteNodeVersion.getServiceBindings();
385
386             siteNodeVersion.setOwningSiteNode((SiteNodeImpl)siteNode);
387             
388             db.create(siteNodeVersion);
389             
390             Iterator JavaDoc serviceBindingsIterator = serviceBindings.iterator();
391             while(serviceBindingsIterator.hasNext())
392             {
393                 ServiceBinding serviceBinding = (ServiceBinding)serviceBindingsIterator.next();
394                 logger.info("serviceBinding:" + serviceBinding.getName());
395                 
396                 ServiceDefinition originalServiceDefinition = serviceBinding.getServiceDefinition();
397                 String JavaDoc serviceDefinitionName = originalServiceDefinition.getName();
398                 ServiceDefinition serviceDefinition = ServiceDefinitionController.getController().getServiceDefinitionWithName(serviceDefinitionName, db, false);
399                 if(serviceDefinition == null)
400                 {
401                     db.create(originalServiceDefinition);
402                     serviceDefinition = originalServiceDefinition;
403                     //availableServiceBinding.getServiceDefinitions().add(serviceDefinition);
404
}
405                 
406                 serviceBinding.setServiceDefinition((ServiceDefinitionImpl)serviceDefinition);
407
408                 AvailableServiceBinding originalAvailableServiceBinding = serviceBinding.getAvailableServiceBinding();
409                 String JavaDoc availableServiceBindingName = originalAvailableServiceBinding.getName();
410                 logger.info("availableServiceBindingName:" + availableServiceBindingName);
411                 AvailableServiceBinding availableServiceBinding = AvailableServiceBindingController.getController().getAvailableServiceBindingWithName(availableServiceBindingName, db, false);
412                 if(availableServiceBinding == null)
413                 {
414                     logger.info("There was no availableServiceBinding registered under:" + availableServiceBindingName);
415                     logger.info("originalAvailableServiceBinding:" + originalAvailableServiceBinding.getName() + ":" + originalAvailableServiceBinding.getIsInheritable());
416                     db.create(originalAvailableServiceBinding);
417                     availableServiceBinding = originalAvailableServiceBinding;
418                     logger.info("Notifying:" + siteNodeTypeDefinition.getName() + " about the new availableServiceBinding " + availableServiceBinding.getName());
419                     if(siteNodeTypeDefinition != null)
420                     {
421                         siteNodeTypeDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
422                         serviceDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
423                         availableServiceBinding.getSiteNodeTypeDefinitions().add((SiteNodeTypeDefinitionImpl)siteNodeTypeDefinition);
424                         availableServiceBinding.getServiceDefinitions().add((ServiceDefinitionImpl)serviceDefinition);
425                     }
426                 }
427                 else
428                 {
429                     if(siteNodeTypeDefinition != null && !siteNodeTypeDefinition.getAvailableServiceBindings().contains(availableServiceBinding))
430                     {
431                         siteNodeTypeDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
432                         availableServiceBinding.getSiteNodeTypeDefinitions().add(siteNodeTypeDefinition);
433                     }
434                 }
435                 
436                 serviceBinding.setAvailableServiceBinding((AvailableServiceBindingImpl)availableServiceBinding);
437                 
438                 
439                 Collection JavaDoc qualifyers = serviceBinding.getBindingQualifyers();
440                 Iterator JavaDoc qualifyersIterator = qualifyers.iterator();
441                 while(qualifyersIterator.hasNext())
442                 {
443                     Qualifyer qualifyer = (Qualifyer)qualifyersIterator.next();
444                     qualifyer.setServiceBinding((ServiceBindingImpl)serviceBinding);
445                     
446                     String JavaDoc entityName = qualifyer.getName();
447                     String JavaDoc entityId = qualifyer.getValue();
448                     
449                     if(entityName.equalsIgnoreCase("contentId"))
450                     {
451                         String JavaDoc mappedContentId = (String JavaDoc)contentIdMap.get(entityId);
452                         qualifyer.setValue((mappedContentId == null) ? entityId : mappedContentId);
453                     }
454                     else if(entityName.equalsIgnoreCase("siteNodeId"))
455                     {
456                         String JavaDoc mappedSiteNodeId = (String JavaDoc)siteNodeIdMap.get(entityId);
457                         qualifyer.setValue((mappedSiteNodeId == null) ? entityId : mappedSiteNodeId);
458                     }
459                 }
460
461                 serviceBinding.setSiteNodeVersion((SiteNodeVersionImpl)siteNodeVersion);
462
463                 db.create(serviceBinding);
464
465             }
466         }
467         
468     }
469
470
471     /**
472      * This method copies a content and all it relations.
473      *
474      * @param siteNode
475      * @param db
476      * @throws Exception
477      */

478     
479     private List JavaDoc createContents(Content content, Map JavaDoc idMap, List JavaDoc allContents, Collection JavaDoc contentTypeDefinitions, int version, Database db) throws Exception JavaDoc
480     {
481         Integer JavaDoc originalContentId = content.getContentId();
482         
483         if(version == 2)
484         {
485             Integer JavaDoc contentTypeDefinitionId = ((ContentImpl)content).getContentTypeDefinitionId();
486             if(contentTypeDefinitionId != null)
487             {
488                 ContentTypeDefinition originalContentTypeDefinition = null;
489                 Iterator JavaDoc contentTypeDefinitionsIterator = contentTypeDefinitions.iterator();
490                 while(contentTypeDefinitionsIterator.hasNext())
491                 {
492                     ContentTypeDefinition contentTypeDefinitionCandidate = (ContentTypeDefinition)contentTypeDefinitionsIterator.next();
493                     if(contentTypeDefinitionCandidate.getId().intValue() == contentTypeDefinitionId.intValue())
494                     {
495                         originalContentTypeDefinition = contentTypeDefinitionCandidate;
496                         break;
497                     }
498                 }
499                 
500                 if(originalContentTypeDefinition != null)
501                 {
502                     ContentTypeDefinition contentTypeDefinition = ContentTypeDefinitionController.getController().getContentTypeDefinitionWithName(originalContentTypeDefinition.getName(), db);
503                     if(contentTypeDefinition == null)
504                     {
505                         db.create(originalContentTypeDefinition);
506                         contentTypeDefinition = originalContentTypeDefinition;
507                     }
508                 
509                     content.setContentTypeDefinition((ContentTypeDefinitionImpl)contentTypeDefinition);
510                 }
511             }
512         }
513         else if(version == 1)
514         {
515             ContentTypeDefinition originalContentTypeDefinition = content.getContentTypeDefinition();
516             if(originalContentTypeDefinition != null)
517             {
518                 ContentTypeDefinition contentTypeDefinition = ContentTypeDefinitionController.getController().getContentTypeDefinitionWithName(originalContentTypeDefinition.getName(), db);
519                 if(contentTypeDefinition == null)
520                 {
521                     db.create(originalContentTypeDefinition);
522                     contentTypeDefinition = originalContentTypeDefinition;
523                 }
524                 
525                 content.setContentTypeDefinition((ContentTypeDefinitionImpl)contentTypeDefinition);
526             }
527         }
528         
529         logger.info("Creating content:" + content.getName());
530         db.create(content);
531         
532         allContents.add(content);
533         
534         Integer JavaDoc newContentId = content.getContentId();
535         idMap.put(originalContentId.toString(), newContentId.toString());
536         
537         Collection JavaDoc contentVersions = content.getContentVersions();
538         
539         if(onlyLatestVersions.equalsIgnoreCase("true"))
540         {
541             logger.info("org contentVersions:" + contentVersions.size());
542             List JavaDoc selectedContentVersions = new ArrayList JavaDoc();
543             Iterator JavaDoc realContentVersionsIterator = contentVersions.iterator();
544             while(realContentVersionsIterator.hasNext())
545             {
546                 ContentVersion contentVersion = (ContentVersion)realContentVersionsIterator.next();
547                 Iterator JavaDoc selectedContentVersionsIterator = selectedContentVersions.iterator();
548                 boolean addLanguageVersion = true;
549                 boolean noLanguageVersionFound = true;
550                 while(selectedContentVersionsIterator.hasNext())
551                 {
552                     ContentVersion currentContentVersion = (ContentVersion)selectedContentVersionsIterator.next();
553                     logger.info("" + currentContentVersion.getLanguage().getLanguageCode() + "=" + contentVersion.getLanguage().getLanguageCode());
554                     if(currentContentVersion.getLanguage().getLanguageCode().equals(contentVersion.getLanguage().getLanguageCode()))
555                     {
556                         noLanguageVersionFound = false;
557                         
558                         logger.info("" + contentVersion.getIsActive() + "=" + contentVersion.getLanguage().getLanguageCode());
559                         if(contentVersion.getIsActive().booleanValue() && contentVersion.getContentVersionId().intValue() > currentContentVersion.getContentVersionId().intValue())
560                         {
561                             logger.info("A later version was found... removing this one..");
562                             selectedContentVersionsIterator.remove();
563                             addLanguageVersion = true;
564                         }
565                     }
566                 }
567     
568                 if(addLanguageVersion || noLanguageVersionFound)
569                     selectedContentVersions.add(contentVersion);
570             }
571             
572             contentVersions = selectedContentVersions;
573         }
574         
575         logger.info("new contentVersions:" + contentVersions.size());
576         //Collection contentVersions = content.getContentVersions();
577
Iterator JavaDoc contentVersionsIterator = contentVersions.iterator();
578         while(contentVersionsIterator.hasNext())
579         {
580             ContentVersion contentVersion = (ContentVersion)contentVersionsIterator.next();
581             Language language = LanguageController.getController().getLanguageWithCode(contentVersion.getLanguage().getLanguageCode(), db);
582             logger.info("Creating contentVersion for language:" + contentVersion.getLanguage().getLanguageCode() + " on content " + content.getName());
583
584             contentVersion.setOwningContent((ContentImpl)content);
585             contentVersion.setLanguage((LanguageImpl)language);
586             
587             Collection JavaDoc digitalAssets = contentVersion.getDigitalAssets();
588             if(digitalAssets != null)
589             {
590                 List JavaDoc initialDigitalAssets = new ArrayList JavaDoc();
591                     
592                 Iterator JavaDoc digitalAssetsIterator = digitalAssets.iterator();
593                 while(digitalAssetsIterator.hasNext())
594                 {
595                     DigitalAsset digitalAsset = (DigitalAsset)digitalAssetsIterator.next();
596                     
597                     List JavaDoc initialContentVersions = new ArrayList JavaDoc();
598                     initialContentVersions.add(contentVersion);
599                     digitalAsset.setContentVersions(initialContentVersions);
600     
601                     db.create(digitalAsset);
602                     
603                     initialDigitalAssets.add(digitalAsset);
604                 }
605                 
606                 contentVersion.setDigitalAssets(initialDigitalAssets);
607             }
608
609             db.create(contentVersion);
610         }
611         
612         Collection JavaDoc childContents = content.getChildren();
613         if(childContents != null)
614         {
615             Iterator JavaDoc childContentsIterator = childContents.iterator();
616             while(childContentsIterator.hasNext())
617             {
618                 Content childContent = (Content)childContentsIterator.next();
619                 childContent.setRepository(content.getRepository());
620                 childContent.setParentContent((ContentImpl)content);
621                 createContents(childContent, idMap, allContents, contentTypeDefinitions, version, db);
622             }
623         }
624         
625         return allContents;
626     }
627
628
629     /**
630      * This method updates all the bindings in content-versions to reflect the move.
631      */

632     /*
633     private void updateContentVersions(List allContents, Map contentIdMap, Map siteNodeIdMap)
634     {
635         logger.info("allContents:" + allContents.size());
636         Iterator allContentsIterator = allContents.iterator();
637         while(allContentsIterator.hasNext())
638         {
639             Content content = (Content)allContentsIterator.next();
640             
641             logger.info("content:" + content.getName());
642             Collection contentVersions = content.getContentVersions();
643             
644             if(onlyLatestVersions.equalsIgnoreCase("true"))
645             {
646                 logger.info("org contentVersions:" + contentVersions.size());
647                 List selectedContentVersions = new ArrayList();
648                 Iterator realContentVersionsIterator = contentVersions.iterator();
649                 while(realContentVersionsIterator.hasNext())
650                 {
651                     ContentVersion contentVersion = (ContentVersion)realContentVersionsIterator.next();
652                     Iterator selectedContentVersionsIterator = selectedContentVersions.iterator();
653                     boolean addLanguageVersion = true;
654                     boolean noLanguageVersionFound = true;
655                     while(selectedContentVersionsIterator.hasNext())
656                     {
657                         ContentVersion currentContentVersion = (ContentVersion)selectedContentVersionsIterator.next();
658                         logger.info("" + currentContentVersion.getLanguage().getLanguageCode() + "=" + contentVersion.getLanguage().getLanguageCode());
659                         if(currentContentVersion.getLanguage().getLanguageCode().equals(contentVersion.getLanguage().getLanguageCode()))
660                         {
661                             noLanguageVersionFound = false;
662                             
663                             logger.info("" + contentVersion.getIsActive() + "=" + contentVersion.getLanguage().getLanguageCode());
664                             if(contentVersion.getIsActive().booleanValue() && contentVersion.getContentVersionId().intValue() > currentContentVersion.getContentVersionId().intValue())
665                             {
666                                 logger.info("A later version was found... removing this one..");
667                                 selectedContentVersionsIterator.remove();
668                                 addLanguageVersion = true;
669                             }
670                         }
671                     }
672         
673                     if(addLanguageVersion || noLanguageVersionFound)
674                         selectedContentVersions.add(contentVersion);
675                 }
676                 
677                 contentVersions = selectedContentVersions;
678             }
679
680             
681             Iterator contentVersionIterator = contentVersions.iterator();
682             while(contentVersionIterator.hasNext())
683             {
684                 ContentVersion contentVersion = (ContentVersion)contentVersionIterator.next();
685                 String contentVersionValue = contentVersion.getVersionValue();
686
687                 contentVersionValue = contentVersionValue.replaceAll("contentId=\"", "contentId=\"old_");
688                 contentVersionValue = contentVersionValue.replaceAll("\\?contentId=", "\\?contentId=old_");
689                 contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(", "getInlineAssetUrl\\(old_");
690                 contentVersionValue = contentVersionValue.replaceAll("languageId,", "languageId,old_");
691                 contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"", "entity=\"Content\" entityId=\"old_");
692                 contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>", "entity='Content'><id>old_");
693
694                 contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"", "siteNodeId=\"old_");
695                 //if(contentVersionValue.indexOf("getPageUrl") > -1)
696                 // System.out.println("contentVersionValue:" + contentVersionValue);
697                 
698                 contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\((\\d)", "getPageUrl\\(old_$1");
699                 
700                 //if(contentVersionValue.indexOf("getPageUrl") > -1)
701                 // System.out.println("contentVersionValue:" + contentVersionValue);
702                 
703                 contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"", "entity=\"SiteNode\" entityId=\"old_");
704                 contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>", "entity='SiteNode'><id>old_");
705                 
706                 //logger.info("contentVersionValue before:" + contentVersionValue);
707                 
708                 Iterator contentIdMapIterator = contentIdMap.keySet().iterator();
709                 while (contentIdMapIterator.hasNext())
710                 {
711                     String oldContentId = (String)contentIdMapIterator.next();
712                     String newContentId = (String)contentIdMap.get(oldContentId);
713                     
714                     //logger.info("Replacing all:" + oldContentId + " with " + newContentId);
715                     
716                     contentVersionValue = contentVersionValue.replaceAll("contentId=\"old_" + oldContentId + "\"", "contentId=\"" + newContentId + "\"");
717                     contentVersionValue = contentVersionValue.replaceAll("\\?contentId=old_" + oldContentId + "&", "\\?contentId=" + newContentId + "&");
718                     contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(old_" + oldContentId + ",", "getInlineAssetUrl\\(" + newContentId + ",");
719                     contentVersionValue = contentVersionValue.replaceAll("languageId,old_" + oldContentId + "\\)", "languageId," + newContentId + "\\)");
720                     contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"old_" + oldContentId + "\"", "entity=\"Content\" entityId=\"" + newContentId + "\"");
721                     contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>old_" + oldContentId + "</id>", "entity='Content'><id>" + newContentId + "</id>");
722                     //contentVersionValue = contentVersionValue.replaceAll("<id>" + oldContentId + "</id>", "<id>" + newContentId + "</id>");
723                 }
724                 
725                 Iterator siteNodeIdMapIterator = siteNodeIdMap.keySet().iterator();
726                 while (siteNodeIdMapIterator.hasNext())
727                 {
728                     String oldSiteNodeId = (String)siteNodeIdMapIterator.next();
729                     String newSiteNodeId = (String)siteNodeIdMap.get(oldSiteNodeId);
730                     
731                     //logger.info("Replacing all:" + oldSiteNodeId + " with " + newSiteNodeId);
732                     
733                     contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"old_" + oldSiteNodeId + "\"", "siteNodeId=\"" + newSiteNodeId + "\"");
734                     contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\(old_" + oldSiteNodeId + ",", "getPageUrl\\(" + newSiteNodeId + ",");
735                     contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"old_" + oldSiteNodeId + "\"", "entity=\"SiteNode\" entityId=\"" + newSiteNodeId + "\"");
736                     contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>old_" + oldSiteNodeId + "</id>", "entity='SiteNode'><id>" + newSiteNodeId + "</id>");
737                 }
738                 
739                 //logger.info("contentVersionValue after:" + contentVersionValue);
740                 
741                 //Now replace all occurrances of old as they should never be there.
742                 contentVersionValue = contentVersionValue.replaceAll("old_", "");
743
744                 logger.info("new contentVersionValue:" + contentVersionValue);
745                 contentVersion.setVersionValue(contentVersionValue);
746             }
747         }
748     }
749     */

750
751     /**
752      * This method updates all the bindings in content-versions to reflect the move.
753      */

754     private void updateContentVersions(Content content, Map JavaDoc contentIdMap, Map JavaDoc siteNodeIdMap) throws Exception JavaDoc
755     {
756         logger.info("content:" + content.getName());
757
758         Collection JavaDoc contentVersions = content.getContentVersions();
759             
760         if(onlyLatestVersions.equalsIgnoreCase("true"))
761         {
762             logger.info("org contentVersions:" + contentVersions.size());
763             List JavaDoc selectedContentVersions = new ArrayList JavaDoc();
764             Iterator JavaDoc realContentVersionsIterator = contentVersions.iterator();
765             while(realContentVersionsIterator.hasNext())
766             {
767                 ContentVersion contentVersion = (ContentVersion)realContentVersionsIterator.next();
768                 Iterator JavaDoc selectedContentVersionsIterator = selectedContentVersions.iterator();
769                 boolean addLanguageVersion = true;
770                 boolean noLanguageVersionFound = true;
771                 while(selectedContentVersionsIterator.hasNext())
772                 {
773                     ContentVersion currentContentVersion = (ContentVersion)selectedContentVersionsIterator.next();
774                     logger.info("" + currentContentVersion.getLanguage().getLanguageCode() + "=" + contentVersion.getLanguage().getLanguageCode());
775                     if(currentContentVersion.getLanguage().getLanguageCode().equals(contentVersion.getLanguage().getLanguageCode()))
776                     {
777                         noLanguageVersionFound = false;
778                         
779                         logger.info("" + contentVersion.getIsActive() + "=" + contentVersion.getLanguage().getLanguageCode());
780                         if(contentVersion.getIsActive().booleanValue() && contentVersion.getContentVersionId().intValue() > currentContentVersion.getContentVersionId().intValue())
781                         {
782                             logger.info("A later version was found... removing this one..");
783                             selectedContentVersionsIterator.remove();
784                             addLanguageVersion = true;
785                         }
786                     }
787                 }
788     
789                 if(addLanguageVersion || noLanguageVersionFound)
790                     selectedContentVersions.add(contentVersion);
791             }
792             
793             contentVersions = selectedContentVersions;
794         }
795
796         
797         Iterator JavaDoc contentVersionIterator = contentVersions.iterator();
798         while(contentVersionIterator.hasNext())
799         {
800             ContentVersion contentVersion = (ContentVersion)contentVersionIterator.next();
801             String JavaDoc contentVersionValue = contentVersion.getVersionValue();
802
803             contentVersionValue = contentVersionValue.replaceAll("contentId=\"", "contentId=\"oldContentId_");
804             contentVersionValue = contentVersionValue.replaceAll("\\?contentId=", "\\?contentId=oldContentId_");
805             contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(", "getInlineAssetUrl\\(oldContentId_");
806             contentVersionValue = contentVersionValue.replaceAll("languageId,", "languageId,oldContentId_");
807             contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"", "entity=\"Content\" entityId=\"oldContentId_");
808             //contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>", "entity='Content'><id>oldContentId_");
809
contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"", "siteNodeId=\"oldSiteNodeId_");
810             contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\((\\d)", "getPageUrl\\(oldSiteNodeId_$1");
811             contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"", "entity=\"SiteNode\" entityId=\"oldSiteNodeId_");
812             //contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>", "entity='SiteNode'><id>old_");
813

814             contentVersionValue = this.prepareAllRelations(contentVersionValue);
815                             
816             
817             //logger.info("contentVersionValue before:" + contentVersionValue);
818

819             Iterator JavaDoc contentIdMapIterator = contentIdMap.keySet().iterator();
820             while (contentIdMapIterator.hasNext())
821             {
822                 String JavaDoc oldContentId = (String JavaDoc)contentIdMapIterator.next();
823                 String JavaDoc newContentId = (String JavaDoc)contentIdMap.get(oldContentId);
824                 
825                 //logger.info("Replacing all:" + oldContentId + " with " + newContentId);
826

827                 contentVersionValue = contentVersionValue.replaceAll("contentId=\"oldContentId_" + oldContentId + "\"", "contentId=\"" + newContentId + "\"");
828                 contentVersionValue = contentVersionValue.replaceAll("\\?contentId=oldContentId_" + oldContentId + "&", "\\?contentId=" + newContentId + "&");
829                 contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(oldContentId_" + oldContentId + ",", "getInlineAssetUrl\\(" + newContentId + ",");
830                 contentVersionValue = contentVersionValue.replaceAll("languageId,oldContentId_" + oldContentId + "\\)", "languageId," + newContentId + "\\)");
831                 contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"oldContentId_" + oldContentId + "\"", "entity=\"Content\" entityId=\"" + newContentId + "\"");
832                 contentVersionValue = contentVersionValue.replaceAll("<id>oldContentId_" + oldContentId + "</id>", "<id>" + newContentId + "</id>");
833                 //contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>old_" + oldContentId + "</id>", "entity='Content'><id>" + newContentId + "</id>");
834
//contentVersionValue = contentVersionValue.replaceAll("<id>" + oldContentId + "</id>", "<id>" + newContentId + "</id>");
835
}
836             
837             Iterator JavaDoc siteNodeIdMapIterator = siteNodeIdMap.keySet().iterator();
838             while (siteNodeIdMapIterator.hasNext())
839             {
840                 String JavaDoc oldSiteNodeId = (String JavaDoc)siteNodeIdMapIterator.next();
841                 String JavaDoc newSiteNodeId = (String JavaDoc)siteNodeIdMap.get(oldSiteNodeId);
842                 
843                 //logger.info("Replacing all:" + oldSiteNodeId + " with " + newSiteNodeId);
844

845                 contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"oldSiteNodeId_" + oldSiteNodeId + "\"", "siteNodeId=\"" + newSiteNodeId + "\"");
846                 contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\(oldSiteNodeId_" + oldSiteNodeId + ",", "getPageUrl\\(" + newSiteNodeId + ",");
847                 contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"oldSiteNodeId_" + oldSiteNodeId + "\"", "entity=\"SiteNode\" entityId=\"" + newSiteNodeId + "\"");
848                 //contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>old_" + oldSiteNodeId + "</id>", "entity='SiteNode'><id>" + newSiteNodeId + "</id>");
849
contentVersionValue = contentVersionValue.replaceAll("<id>oldSiteNodeId_" + oldSiteNodeId + "</id>", "<id>" + newSiteNodeId + "</id>");
850             }
851             
852             //logger.info("contentVersionValue after:" + contentVersionValue);
853

854             //Now replace all occurrances of old as they should never be there.
855
contentVersionValue = contentVersionValue.replaceAll("oldContentId_", "");
856             contentVersionValue = contentVersionValue.replaceAll("oldSiteNodeId_", "");
857
858             logger.info("new contentVersionValue:" + contentVersionValue);
859             contentVersion.setVersionValue(contentVersionValue);
860         }
861     }
862
863     private String JavaDoc prepareAllRelations(String JavaDoc xml) throws Exception JavaDoc
864     {
865         StringBuffer JavaDoc newXML = new StringBuffer JavaDoc();
866         
867         logger.info("xml: " + xml);
868         
869         String JavaDoc after = xml;
870         String JavaDoc before = "";
871         String JavaDoc qualifyer = "";
872         boolean changed = false;
873         
874         int startIndex = xml.indexOf("<qualifyer");
875         while(startIndex > -1)
876         {
877             int stopIndex = xml.indexOf("</qualifyer>", startIndex);
878             if(stopIndex > -1)
879             {
880                 changed = true;
881                 before = xml.substring(0, startIndex);
882                 after = xml.substring(stopIndex + 12);
883                 qualifyer = xml.substring(startIndex, stopIndex + 12);
884                 //logger.info("startIndex: " + startIndex);
885
//System.out.println("stopIndex: " + stopIndex);
886
//System.out.println("before: " + before);
887
//System.out.println("after: " + after);
888
//System.out.println("qualifyer: " + qualifyer);
889

890                 String JavaDoc newQualifyer = qualifyer;
891                 
892                 if(qualifyer.indexOf("entity='Content'") > 0)
893                     newQualifyer = qualifyer.replaceAll("<id>", "<id>oldContentId_");
894                 else if(qualifyer.indexOf("entity='SiteNode'") > 0)
895                     newQualifyer = qualifyer.replaceAll("<id>", "<id>oldSiteNodeId_");
896                     
897                 newXML.append(before);
898                 newXML.append(newQualifyer);
899                 //System.out.println("newXML:" + newXML);
900
xml = after;
901             }
902             else
903             {
904                 throw new Exception JavaDoc("Error in xml - qualifyer tag broken in " + xml);
905             }
906             
907             startIndex = xml.indexOf("<qualifyer");
908         }
909
910         newXML.append(after);
911         
912         if(changed)
913             logger.info("newXML:" + newXML);
914         
915         return newXML.toString();
916     }
917     
918     public String JavaDoc getOnlyLatestVersions() {
919         return onlyLatestVersions;
920     }
921
922     public void setOnlyLatestVersions(String JavaDoc onlyLatestVersions) {
923         this.onlyLatestVersions = onlyLatestVersions;
924     }
925
926     /*
927         private void updateContentVersions(List allContents, Map contentIdMap, Map siteNodeIdMap)
928     {
929         logger.info("allContents:" + allContents.size());
930         Iterator allContentsIterator = allContents.iterator();
931         while(allContentsIterator.hasNext())
932         {
933             Content content = (Content)allContentsIterator.next();
934             
935             logger.info("content:" + content);
936             
937             Iterator contentVersionIterator = content.getContentVersions().iterator();
938             while(contentVersionIterator.hasNext())
939             {
940                 ContentVersion contentVersion = (ContentVersion)contentVersionIterator.next();
941                 String contentVersionValue = contentVersion.getVersionValue();
942
943                 contentVersionValue = contentVersionValue.replaceAll("contentId=\"" + oldContentId + "\"", "contentId=\"" + newContentId + "\"");
944                 contentVersionValue = contentVersionValue.replaceAll("contentId=" + oldContentId + "&", "contentId=" + newContentId + "&");
945                 contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(" + oldContentId + ",", "getInlineAssetUrl\\(" + newContentId + ",");
946                 contentVersionValue = contentVersionValue.replaceAll("languageId," + oldContentId + "\\)", "languageId," + newContentId + "\\)");
947                 contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"" + oldContentId + "\"", "entity=\"Content\" entityId=\"" + newContentId + "\"");
948                 contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>" + oldContentId + "</id>", "entity='Content'><id>" + newContentId + "</id>");
949
950                 contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"" + oldSiteNodeId + "\"", "siteNodeId=\"" + newSiteNodeId + "\"");
951                 contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\(" + oldSiteNodeId + ",", "getPageUrl\\(" + newSiteNodeId + ",");
952                 contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"" + oldSiteNodeId + "\"", "entity=\"SiteNode\" entityId=\"" + newSiteNodeId + "\"");
953                 contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>" + oldSiteNodeId + "</id>", "entity='SiteNode'><id>" + newSiteNodeId + "</id>");
954                 
955                 logger.info("contentVersionValue before:" + contentVersionValue);
956                 
957                 Iterator contentIdMapIterator = contentIdMap.keySet().iterator();
958                 while (contentIdMapIterator.hasNext())
959                 {
960                     String oldContentId = (String)contentIdMapIterator.next();
961                     String newContentId = (String)contentIdMap.get(oldContentId);
962                     
963                     logger.info("Replacing all:" + oldContentId + " with " + newContentId);
964                     
965                     contentVersionValue = contentVersionValue.replaceAll("contentId=\"" + oldContentId + "\"", "contentId=\"" + newContentId + "\"");
966                     contentVersionValue = contentVersionValue.replaceAll("contentId=" + oldContentId + "&", "contentId=" + newContentId + "&");
967                     contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(" + oldContentId + ",", "getInlineAssetUrl\\(" + newContentId + ",");
968                     contentVersionValue = contentVersionValue.replaceAll("languageId," + oldContentId + "\\)", "languageId," + newContentId + "\\)");
969                     contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"" + oldContentId + "\"", "entity=\"Content\" entityId=\"" + newContentId + "\"");
970                     contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>" + oldContentId + "</id>", "entity='Content'><id>" + newContentId + "</id>");
971                     //contentVersionValue = contentVersionValue.replaceAll("<id>" + oldContentId + "</id>", "<id>" + newContentId + "</id>");
972                 }
973                 
974                 Iterator siteNodeIdMapIterator = siteNodeIdMap.keySet().iterator();
975                 while (siteNodeIdMapIterator.hasNext())
976                 {
977                     String oldSiteNodeId = (String)siteNodeIdMapIterator.next();
978                     String newSiteNodeId = (String)siteNodeIdMap.get(oldSiteNodeId);
979                     
980                     logger.info("Replacing all:" + oldSiteNodeId + " with " + newSiteNodeId);
981                     
982                     contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"" + oldSiteNodeId + "\"", "siteNodeId=\"" + newSiteNodeId + "\"");
983                     contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\(" + oldSiteNodeId + ",", "getPageUrl\\(" + newSiteNodeId + ",");
984                     contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"" + oldSiteNodeId + "\"", "entity=\"SiteNode\" entityId=\"" + newSiteNodeId + "\"");
985                     contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>" + oldSiteNodeId + "</id>", "entity='SiteNode'><id>" + newSiteNodeId + "</id>");
986                 }
987                 
988                 logger.info("contentVersionValue after:" + contentVersionValue);
989
990                 logger.info("new contentVersionValue:" + contentVersionValue);
991                 contentVersion.setVersionValue(contentVersionValue);
992             }
993         }
994     }
995     */
}
996
Popular Tags