KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cmsinstaller > InitialDataInstaller


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.cmsinstaller;
25
26 import java.io.File JavaDoc;
27 import java.io.FileInputStream JavaDoc;
28 import java.io.FileReader JavaDoc;
29 import java.io.FileWriter JavaDoc;
30 import java.io.InputStreamReader JavaDoc;
31 import java.io.Reader JavaDoc;
32 import java.io.Writer JavaDoc;
33 import java.util.ArrayList JavaDoc;
34 import java.util.Collection JavaDoc;
35 import java.util.Date JavaDoc;
36 import java.util.HashMap JavaDoc;
37 import java.util.Iterator JavaDoc;
38 import java.util.List JavaDoc;
39 import java.util.Map JavaDoc;
40
41 import org.exolab.castor.jdo.Database;
42 import org.exolab.castor.jdo.JDO;
43 import org.exolab.castor.mapping.Mapping;
44 import org.exolab.castor.xml.Marshaller;
45 import org.exolab.castor.xml.Unmarshaller;
46 import org.infoglue.cms.applications.common.VisualFormatter;
47 import org.infoglue.cms.applications.common.actions.WebworkAbstractAction;
48 import org.infoglue.cms.controllers.kernel.impl.simple.AvailableServiceBindingController;
49 import org.infoglue.cms.controllers.kernel.impl.simple.CastorDatabaseService;
50 import org.infoglue.cms.controllers.kernel.impl.simple.CmsJDOCallback;
51 import org.infoglue.cms.controllers.kernel.impl.simple.ContentController;
52 import org.infoglue.cms.controllers.kernel.impl.simple.ContentTypeDefinitionController;
53 import org.infoglue.cms.controllers.kernel.impl.simple.LanguageController;
54 import org.infoglue.cms.controllers.kernel.impl.simple.RepositoryController;
55 import org.infoglue.cms.controllers.kernel.impl.simple.ServiceDefinitionController;
56 import org.infoglue.cms.controllers.kernel.impl.simple.SiteNodeController;
57 import org.infoglue.cms.controllers.kernel.impl.simple.SiteNodeTypeDefinitionController;
58 import org.infoglue.cms.entities.content.Content;
59 import org.infoglue.cms.entities.content.ContentVersion;
60 import org.infoglue.cms.entities.content.DigitalAsset;
61 import org.infoglue.cms.entities.content.impl.simple.ContentImpl;
62 import org.infoglue.cms.entities.content.impl.simple.DigitalAssetImpl;
63 import org.infoglue.cms.entities.management.AvailableServiceBinding;
64 import org.infoglue.cms.entities.management.ContentTypeDefinition;
65 import org.infoglue.cms.entities.management.Language;
66 import org.infoglue.cms.entities.management.Repository;
67 import org.infoglue.cms.entities.management.RepositoryLanguage;
68 import org.infoglue.cms.entities.management.ServiceDefinition;
69 import org.infoglue.cms.entities.management.SiteNodeTypeDefinition;
70 import org.infoglue.cms.entities.management.impl.simple.AvailableServiceBindingImpl;
71 import org.infoglue.cms.entities.management.impl.simple.ContentTypeDefinitionImpl;
72 import org.infoglue.cms.entities.management.impl.simple.InfoGlueExportImpl;
73 import org.infoglue.cms.entities.management.impl.simple.LanguageImpl;
74 import org.infoglue.cms.entities.management.impl.simple.RepositoryImpl;
75 import org.infoglue.cms.entities.management.impl.simple.ServiceDefinitionImpl;
76 import org.infoglue.cms.entities.management.impl.simple.SiteNodeTypeDefinitionImpl;
77 import org.infoglue.cms.entities.structure.Qualifyer;
78 import org.infoglue.cms.entities.structure.ServiceBinding;
79 import org.infoglue.cms.entities.structure.SiteNode;
80 import org.infoglue.cms.entities.structure.SiteNodeVersion;
81 import org.infoglue.cms.entities.structure.impl.simple.ServiceBindingImpl;
82 import org.infoglue.cms.entities.structure.impl.simple.SiteNodeImpl;
83 import org.infoglue.cms.entities.structure.impl.simple.SiteNodeVersionImpl;
84 import org.infoglue.cms.exception.SystemException;
85 import org.infoglue.cms.util.CmsPropertyHandler;
86 import org.infoglue.cms.util.FileUploadHelper;
87
88 /**
89 * This class handles Importing of a site from an XML-file.
90 *
91 * @author mattias
92 */

93
94 public class InitialDataInstaller
95 {
96     public Database getDatabase() throws Exception JavaDoc
97     {
98         try
99         {
100             JDO jdo = new JDO();
101             jdo.setDatabaseName("INFOGLUE_CMS");
102             File JavaDoc file = new File JavaDoc("localConfigs/database.xml");
103             //System.out.println("file:" + file);
104
jdo.setConfiguration(file.toString());
105             //jdo.setConfiguration(CastorDatabaseService.class.getResource("database.xml").toString());
106
jdo.setClassLoader(CastorDatabaseService.class.getClassLoader());
107             jdo.setCallbackInterceptor(new CmsJDOCallback() );
108             return jdo.getDatabase();
109         }
110         catch(Exception JavaDoc e)
111         {
112             e.printStackTrace();
113             throw e;
114         }
115     }
116     
117     /**
118      * This handles the actual importing.
119      */

120     
121     public void importRepository(File JavaDoc file) throws Exception JavaDoc
122     {
123         CmsPropertyHandler.setApplicationName("cms");
124         CmsPropertyHandler.setPropertyFile(new File JavaDoc("classes/cms.properties"));
125         
126         Database db = getDatabase();
127         
128         try
129         {
130             Mapping map = new Mapping();
131             File JavaDoc xmlMappingFile = new File JavaDoc("classes/xml_mapping_site.xml");
132             //System.out.println("MappingFile:" + xmlMappingFile.toString());
133
map.loadMapping(xmlMappingFile.toString());
134
135             // All ODMG database access requires a transaction
136
db.begin();
137             
138             //now restore the value and list what we get
139
String JavaDoc encoding = "UTF-8";
140             FileInputStream JavaDoc fis = new FileInputStream JavaDoc(file);
141             InputStreamReader JavaDoc reader = new InputStreamReader JavaDoc(fis, encoding);
142             //Reader reader = new FileReader(file);
143

144             Unmarshaller unmarshaller = new Unmarshaller(map);
145             unmarshaller.setWhitespacePreserve(true);
146             InfoGlueExportImpl infoGlueExportImplRead = (InfoGlueExportImpl)unmarshaller.unmarshal(reader);
147             SiteNode readSiteNode = infoGlueExportImplRead.getRootSiteNode();
148             //System.out.println(readSiteNode.getName());
149
Content readContent = infoGlueExportImplRead.getRootContent();
150             //System.out.println(readContent.getName());
151

152             Repository repositoryRead = readSiteNode.getRepository();
153             System.out.println("Importing " + repositoryRead.getName());
154             readContent.setRepository((RepositoryImpl)repositoryRead);
155
156             db.create(repositoryRead);
157
158             Collection JavaDoc repositoryLanguages = repositoryRead.getRepositoryLanguages();
159             Iterator JavaDoc repositoryLanguagesIterator = repositoryLanguages.iterator();
160             while(repositoryLanguagesIterator.hasNext())
161             {
162                 RepositoryLanguage repositoryLanguage = (RepositoryLanguage)repositoryLanguagesIterator.next();
163                 Language originalLanguage = repositoryLanguage.getLanguage();
164                 
165                 Language language = LanguageController.getController().getLanguageWithName(originalLanguage.getName(), db);
166                 if(language == null)
167                 {
168                     db.create(originalLanguage);
169                     language = originalLanguage;
170                 }
171                 
172                 repositoryLanguage.setLanguage(language);
173                 repositoryLanguage.setRepository(repositoryRead);
174
175                 db.create(repositoryLanguage);
176                 
177                 //System.out.println("language:" + language);
178
//System.out.println("language.getRepositoryLanguages():" + language.getRepositoryLanguages());
179
language.getRepositoryLanguages().add(repositoryLanguage);
180             }
181             
182             readSiteNode.setRepository((RepositoryImpl)repositoryRead);
183
184             Map JavaDoc contentIdMap = new HashMap JavaDoc();
185             Map JavaDoc siteNodeIdMap = new HashMap JavaDoc();
186             //createContents(readContent, contentIdMap, db);
187
//createStructure(readSiteNode, contentIdMap, siteNodeIdMap, db);
188

189             List JavaDoc allContents = new ArrayList JavaDoc();
190             createContents(readContent, contentIdMap, allContents, db);
191             //System.out.println("contentIdMap:" + contentIdMap.size() + ":" + contentIdMap.containsKey("83"));
192
List JavaDoc allSiteNodes = new ArrayList JavaDoc();
193             createStructure(readSiteNode, contentIdMap, siteNodeIdMap, allSiteNodes, db);
194             
195             updateContentVersions(allContents, contentIdMap, siteNodeIdMap);
196             reader.close();
197             
198             db.commit();
199             
200             db.begin();
201             SiteNodeTypeDefinition siteNodeTypeDefinition = SiteNodeTypeDefinitionController.getController().getSiteNodeTypeDefinitionWithName(readSiteNode.getSiteNodeTypeDefinition().getName(), db, false);
202             //System.out.println("isPersistent:" + db.isPersistent(siteNodeTypeDefinition));
203
//System.out.println("Bindings:" + siteNodeTypeDefinition.getAvailableServiceBindings().size());
204
Iterator JavaDoc availableServiceBindingsIterator = siteNodeTypeDefinition.getAvailableServiceBindings().iterator();
205             while(availableServiceBindingsIterator.hasNext())
206             {
207                 AvailableServiceBinding anAvailableServiceBinding = (AvailableServiceBinding)availableServiceBindingsIterator.next();
208                 //System.out.println("AvailableServiceBinding:" + anAvailableServiceBinding.getName() + ":" + anAvailableServiceBinding.getId());
209
}
210             db.commit();
211             
212             db.close();
213
214         }
215         catch ( Exception JavaDoc e)
216         {
217             e.printStackTrace();
218             db.rollback();
219             throw e;
220         }
221     }
222
223     
224     /**
225      * This method copies a sitenode and all it relations.
226      *
227      * @param siteNode
228      * @param db
229      * @throws Exception
230      */

231     private void createStructure(SiteNode siteNode, Map JavaDoc contentIdMap, Map JavaDoc siteNodeIdMap, List JavaDoc allSiteNodes, Database db) throws Exception JavaDoc
232     {
233         Integer JavaDoc originalSiteNodeId = siteNode.getSiteNodeId();
234         
235         SiteNodeTypeDefinition originalSiteNodeTypeDefinition = siteNode.getSiteNodeTypeDefinition();
236         SiteNodeTypeDefinition siteNodeTypeDefinition = SiteNodeTypeDefinitionController.getController().getSiteNodeTypeDefinitionWithName(siteNode.getSiteNodeTypeDefinition().getName(), db, false);
237         //System.out.println("isPersistent:" + db.isPersistent(siteNodeTypeDefinition));
238
if(siteNodeTypeDefinition == null)
239         {
240             //System.out.println("There was no siteNodeTypeDefinition with the name " + siteNode.getSiteNodeTypeDefinition().getName() + " so we create it.");
241
db.create(originalSiteNodeTypeDefinition);
242             siteNodeTypeDefinition = originalSiteNodeTypeDefinition;
243         }
244         
245         siteNode.setSiteNodeTypeDefinition((SiteNodeTypeDefinitionImpl)siteNodeTypeDefinition);
246         
247         String JavaDoc mappedMetaInfoContentId = (String JavaDoc)contentIdMap.get(siteNode.getMetaInfoContentId().toString());
248         //System.out.println("siteNode meta info content id was:" + siteNode.getMetaInfoContentId() + " and is now " + mappedMetaInfoContentId);
249
siteNode.setMetaInfoContentId(new Integer JavaDoc(mappedMetaInfoContentId));
250         
251         db.create(siteNode);
252
253         allSiteNodes.add(siteNode);
254         
255         Integer JavaDoc newSiteNodeId = siteNode.getSiteNodeId();
256         //System.out.println(originalSiteNodeId + ":" + newSiteNodeId);
257
siteNodeIdMap.put(originalSiteNodeId.toString(), newSiteNodeId.toString());
258         
259         Collection JavaDoc childSiteNodes = siteNode.getChildSiteNodes();
260         if(childSiteNodes != null)
261         {
262             Iterator JavaDoc childSiteNodesIterator = childSiteNodes.iterator();
263             while(childSiteNodesIterator.hasNext())
264             {
265                 SiteNode childSiteNode = (SiteNode)childSiteNodesIterator.next();
266                 childSiteNode.setRepository(siteNode.getRepository());
267                 childSiteNode.setParentSiteNode((SiteNodeImpl)siteNode);
268                 createStructure(childSiteNode, contentIdMap, siteNodeIdMap, allSiteNodes, db);
269             }
270         }
271
272         Collection JavaDoc siteNodeVersions = siteNode.getSiteNodeVersions();
273         Iterator JavaDoc siteNodeVersionsIterator = siteNodeVersions.iterator();
274         while(siteNodeVersionsIterator.hasNext())
275         {
276             SiteNodeVersion siteNodeVersion = (SiteNodeVersion)siteNodeVersionsIterator.next();
277             
278             Collection JavaDoc serviceBindings = siteNodeVersion.getServiceBindings();
279
280             siteNodeVersion.setOwningSiteNode((SiteNodeImpl)siteNode);
281             
282             db.create(siteNodeVersion);
283             
284             Iterator JavaDoc serviceBindingsIterator = serviceBindings.iterator();
285             while(serviceBindingsIterator.hasNext())
286             {
287                 ServiceBinding serviceBinding = (ServiceBinding)serviceBindingsIterator.next();
288
289                 ServiceDefinition originalServiceDefinition = serviceBinding.getServiceDefinition();
290                 String JavaDoc serviceDefinitionName = originalServiceDefinition.getName();
291 // //System.out.println("serviceDefinitionName:" + serviceDefinitionName);
292
ServiceDefinition serviceDefinition = ServiceDefinitionController.getController().getServiceDefinitionWithName(serviceDefinitionName, db, false);
293                 if(serviceDefinition == null)
294                 {
295                     db.create(originalServiceDefinition);
296                     serviceDefinition = originalServiceDefinition;
297                     //availableServiceBinding.getServiceDefinitions().add(serviceDefinition);
298
}
299                 
300                 serviceBinding.setServiceDefinition((ServiceDefinitionImpl)serviceDefinition);
301
302                 AvailableServiceBinding originalAvailableServiceBinding = serviceBinding.getAvailableServiceBinding();
303                 String JavaDoc availableServiceBindingName = originalAvailableServiceBinding.getName();
304                 //System.out.println("availableServiceBindingName:" + availableServiceBindingName);
305
AvailableServiceBinding availableServiceBinding = AvailableServiceBindingController.getController().getAvailableServiceBindingWithName(availableServiceBindingName, db, false);
306                 //System.out.println("availableServiceBinding:" + availableServiceBinding);
307
if(availableServiceBinding == null)
308                 {
309                     //System.out.println("There was no availableServiceBinding registered under:" + availableServiceBindingName);
310
db.create(originalAvailableServiceBinding);
311                     availableServiceBinding = originalAvailableServiceBinding;
312                     //System.out.println("Notifying:" + siteNodeTypeDefinition.getName() + " about the new availableServiceBinding " + availableServiceBinding.getName());
313
siteNodeTypeDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
314                     serviceDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
315                     availableServiceBinding.getSiteNodeTypeDefinitions().add((SiteNodeTypeDefinitionImpl)siteNodeTypeDefinition);
316                     availableServiceBinding.getServiceDefinitions().add((ServiceDefinitionImpl)serviceDefinition);
317                 }
318                 else
319                 {
320                     if(!siteNodeTypeDefinition.getAvailableServiceBindings().contains(availableServiceBinding))
321                     {
322                         siteNodeTypeDefinition.getAvailableServiceBindings().add((AvailableServiceBindingImpl)availableServiceBinding);
323                         availableServiceBinding.getSiteNodeTypeDefinitions().add(siteNodeTypeDefinition);
324                     }
325                 }
326                 
327                 //System.out.println("Bindings:" + siteNodeTypeDefinition.getAvailableServiceBindings().size());
328
Iterator JavaDoc availableServiceBindingsIterator = siteNodeTypeDefinition.getAvailableServiceBindings().iterator();
329                 while(availableServiceBindingsIterator.hasNext())
330                 {
331                     AvailableServiceBinding anAvailableServiceBinding = (AvailableServiceBinding)availableServiceBindingsIterator.next();
332                     //System.out.println("AvailableServiceBinding:" + anAvailableServiceBinding.getName() + ":" + anAvailableServiceBinding.getId());
333
}
334                 
335                 serviceBinding.setAvailableServiceBinding((AvailableServiceBindingImpl)availableServiceBinding);
336                 
337                 
338                 Collection JavaDoc qualifyers = serviceBinding.getBindingQualifyers();
339                 Iterator JavaDoc qualifyersIterator = qualifyers.iterator();
340                 while(qualifyersIterator.hasNext())
341                 {
342                     Qualifyer qualifyer = (Qualifyer)qualifyersIterator.next();
343                     qualifyer.setServiceBinding((ServiceBindingImpl)serviceBinding);
344                     
345                     String JavaDoc entityName = qualifyer.getName();
346                     String JavaDoc entityId = qualifyer.getValue();
347                     
348                     if(entityName.equalsIgnoreCase("contentId"))
349                     {
350                         String JavaDoc mappedContentId = (String JavaDoc)contentIdMap.get(entityId);
351                         qualifyer.setValue(mappedContentId);
352                     }
353                     else if(entityName.equalsIgnoreCase("siteNodeId"))
354                     {
355                         String JavaDoc mappedSiteNodeId = (String JavaDoc)siteNodeIdMap.get(entityId);
356                         qualifyer.setValue(mappedSiteNodeId);
357                     }
358                 }
359
360                 serviceBinding.setSiteNodeVersion((SiteNodeVersionImpl)siteNodeVersion);
361
362                 db.create(serviceBinding);
363
364             }
365         }
366         
367     }
368
369
370     /**
371      * This method copies a content and all it relations.
372      *
373      * @param siteNode
374      * @param db
375      * @throws Exception
376      */

377     private void createContents(Content content, Map JavaDoc idMap, List JavaDoc allContents, Database db) throws Exception JavaDoc
378     {
379         Integer JavaDoc originalContentId = content.getContentId();
380         
381         ContentTypeDefinition originalContentTypeDefinition = content.getContentTypeDefinition();
382         if(originalContentTypeDefinition != null)
383         {
384             ContentTypeDefinition contentTypeDefinition = ContentTypeDefinitionController.getController().getContentTypeDefinitionWithName(originalContentTypeDefinition.getName(), db);
385             if(contentTypeDefinition == null)
386             {
387                 db.create(originalContentTypeDefinition);
388                 contentTypeDefinition = originalContentTypeDefinition;
389             }
390             
391             content.setContentTypeDefinition((ContentTypeDefinitionImpl)contentTypeDefinition);
392         }
393         
394         db.create(content);
395
396         allContents.add(content);
397         
398         Integer JavaDoc newContentId = content.getContentId();
399         System.out.println("content:" + originalContentId + "(" + content.getName() + ")-->" + newContentId);
400         idMap.put(originalContentId.toString(), newContentId.toString());
401         
402         Collection JavaDoc contentVersions = content.getContentVersions();
403         Iterator JavaDoc contentVersionsIterator = contentVersions.iterator();
404         while(contentVersionsIterator.hasNext())
405         {
406             ContentVersion contentVersion = (ContentVersion)contentVersionsIterator.next();
407             Language language = LanguageController.getController().getLanguageWithName(contentVersion.getLanguage().getName(), db);
408
409             contentVersion.setOwningContent((ContentImpl)content);
410             contentVersion.setLanguage((LanguageImpl)language);
411
412             Collection JavaDoc digitalAssets = contentVersion.getDigitalAssets();
413             if(digitalAssets != null)
414             {
415                 List JavaDoc initialDigitalAssets = new ArrayList JavaDoc();
416                     
417                 Iterator JavaDoc digitalAssetsIterator = digitalAssets.iterator();
418                 while(digitalAssetsIterator.hasNext())
419                 {
420                     DigitalAsset digitalAsset = (DigitalAsset)digitalAssetsIterator.next();
421                     
422                     //((DigitalAssetImpl)digitalAsset).dumpAsset(digitalAsset.getAssetFileName() + "_bytes");
423
//((DigitalAssetImpl)digitalAsset).dumpAssetFromBlob(digitalAsset.getAssetFileName() + "_blob");
424

425                     List JavaDoc initialContentVersions = new ArrayList JavaDoc();
426                     initialContentVersions.add(contentVersion);
427                     digitalAsset.setContentVersions(initialContentVersions);
428     
429                     db.create(digitalAsset);
430                     
431                     initialDigitalAssets.add(digitalAsset);
432                 }
433                 
434                 contentVersion.setDigitalAssets(initialDigitalAssets);
435             }
436
437             db.create(contentVersion);
438         }
439         
440         Collection JavaDoc childContents = content.getChildren();
441         if(childContents != null)
442         {
443             Iterator JavaDoc childContentsIterator = childContents.iterator();
444             while(childContentsIterator.hasNext())
445             {
446                 Content childContent = (Content)childContentsIterator.next();
447                 childContent.setRepository(content.getRepository());
448                 childContent.setParentContent((ContentImpl)content);
449                 createContents(childContent, idMap, allContents, db);
450             }
451         }
452     }
453
454     /**
455      * This method updates all the bindings in content-versions to reflect the move.
456      */

457     private void updateContentVersions(List JavaDoc allContents, Map JavaDoc contentIdMap, Map JavaDoc siteNodeIdMap)
458     {
459         //System.out.println("allContents:" + allContents.size());
460
Iterator JavaDoc allContentsIterator = allContents.iterator();
461         boolean debug = false;
462         
463         while(allContentsIterator.hasNext())
464         {
465             Content content = (Content)allContentsIterator.next();
466             if(content.getName().indexOf("officestand2") > -1 || content.getName().indexOf("Startpage article") > -1)
467                 //debug = true;
468
debug = false;
469             else
470                 debug = false;
471             
472             Iterator JavaDoc contentVersionIterator = content.getContentVersions().iterator();
473             while(contentVersionIterator.hasNext())
474             {
475                 ContentVersion contentVersion = (ContentVersion)contentVersionIterator.next();
476                 String JavaDoc contentVersionValue = contentVersion.getVersionValue();
477                 if(debug)
478                     System.out.println(contentVersionValue);
479                 
480                 Iterator JavaDoc contentIdMapIterator = contentIdMap.keySet().iterator();
481                 while (contentIdMapIterator.hasNext())
482                 {
483                     String JavaDoc oldContentId = (String JavaDoc)contentIdMapIterator.next();
484                     String JavaDoc newContentId = (String JavaDoc)contentIdMap.get(oldContentId);
485                     if(debug)
486                         System.out.println("replacing " + oldContentId + "-->" + newContentId);
487                     contentVersionValue = contentVersionValue.replaceAll("contentId=\"" + oldContentId + "\"", "contentId=\"" + newContentId + "\"");
488                     contentVersionValue = contentVersionValue.replaceAll("contentId=" + oldContentId + "&", "contentId=" + newContentId + "&");
489                     contentVersionValue = contentVersionValue.replaceAll("getInlineAssetUrl\\(" + oldContentId + ",", "getInlineAssetUrl\\(" + newContentId + ",");
490                     contentVersionValue = contentVersionValue.replaceAll("languageId," + oldContentId + "\\)", "languageId," + newContentId + "\\)");
491                     contentVersionValue = contentVersionValue.replaceAll("entity=\"Content\" entityId=\"" + oldContentId + "\"", "entity=\"Content\" entityId=\"" + newContentId + "\"");
492                     contentVersionValue = contentVersionValue.replaceAll("entity='Content'><id>" + oldContentId + "</id>", "entity='Content'><id>" + newContentId + "</id>");
493                     //contentVersionValue = contentVersionValue.replaceAll("<id>" + oldContentId + "</id>", "<id>" + newContentId + "</id>");
494
}
495                 
496                 Iterator JavaDoc siteNodeIdMapIterator = siteNodeIdMap.keySet().iterator();
497                 while (siteNodeIdMapIterator.hasNext())
498                 {
499                     String JavaDoc oldSiteNodeId = (String JavaDoc)siteNodeIdMapIterator.next();
500                     String JavaDoc newSiteNodeId = (String JavaDoc)siteNodeIdMap.get(oldSiteNodeId);
501                     contentVersionValue = contentVersionValue.replaceAll("siteNodeId=\"" + oldSiteNodeId + "\"", "siteNodeId=\"" + newSiteNodeId + "\"");
502                     contentVersionValue = contentVersionValue.replaceAll("getPageUrl\\(" + oldSiteNodeId + ",", "getPageUrl\\(" + newSiteNodeId + ",");
503                     contentVersionValue = contentVersionValue.replaceAll("entity=\"SiteNode\" entityId=\"" + oldSiteNodeId + "\"", "entity=\"SiteNode\" entityId=\"" + newSiteNodeId + "\"");
504                     contentVersionValue = contentVersionValue.replaceAll("entity='SiteNode'><id>" + oldSiteNodeId + "</id>", "entity='SiteNode'><id>" + newSiteNodeId + "</id>");
505                 }
506                 
507                 //System.out.println("new contentVersionValue:" + contentVersionValue);
508
contentVersion.setVersionValue(contentVersionValue);
509             }
510         }
511     }
512     
513 }
514
Popular Tags