KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > webservices > RemoteContentServiceImpl


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.webservices;
25
26 import java.io.ByteArrayInputStream JavaDoc;
27 import java.io.InputStream JavaDoc;
28 import java.util.ArrayList JavaDoc;
29 import java.util.Date JavaDoc;
30 import java.util.Iterator JavaDoc;
31 import java.util.List JavaDoc;
32 import java.util.Map JavaDoc;
33
34 import org.apache.log4j.Logger;
35 import org.dom4j.Document;
36 import org.dom4j.Element;
37 import org.infoglue.cms.controllers.kernel.impl.simple.ContentController;
38 import org.infoglue.cms.controllers.kernel.impl.simple.ContentControllerProxy;
39 import org.infoglue.cms.controllers.kernel.impl.simple.ContentStateController;
40 import org.infoglue.cms.controllers.kernel.impl.simple.ContentVersionController;
41 import org.infoglue.cms.controllers.kernel.impl.simple.ContentVersionControllerProxy;
42 import org.infoglue.cms.controllers.kernel.impl.simple.DigitalAssetController;
43 import org.infoglue.cms.controllers.kernel.impl.simple.PublicationController;
44 import org.infoglue.cms.controllers.kernel.impl.simple.UserControllerProxy;
45 import org.infoglue.cms.entities.content.ContentVO;
46 import org.infoglue.cms.entities.content.ContentVersionVO;
47 import org.infoglue.cms.entities.content.DigitalAssetVO;
48 import org.infoglue.cms.entities.publishing.PublicationVO;
49 import org.infoglue.cms.exception.SystemException;
50 import org.infoglue.cms.security.InfoGluePrincipal;
51 import org.infoglue.cms.util.dom.DOMBuilder;
52 import org.infoglue.cms.webservices.elements.RemoteAttachment;
53 import org.infoglue.deliver.util.webservices.DynamicWebserviceSerializer;
54
55
56 /**
57  * This class is responsible for letting an external application call InfoGlue
58  * API:s remotely. It handles api:s to manage contents and associated entities.
59  *
60  * @author Mattias Bogeblad
61  */

62
63 public class RemoteContentServiceImpl extends RemoteInfoGlueService
64 {
65     private final static Logger logger = Logger.getLogger(RemoteContentServiceImpl.class.getName());
66
67     /**
68      * The principal executing the workflow.
69      */

70     private InfoGluePrincipal principal;
71
72     private static ContentControllerProxy contentControllerProxy = ContentControllerProxy.getController();
73     private static ContentVersionControllerProxy contentVersionControllerProxy = ContentVersionControllerProxy.getController();
74     
75     /**
76      * Inserts a new Content including versions etc.
77      */

78     
79     public int createContent(final String JavaDoc principalName, ContentVO contentVO, int parentContentId, int contentTypeDefinitionId, int repositoryId)
80     {
81         int newContentId = 0;
82         
83         logger.info("***************************************");
84         logger.info("Creating content through webservice....");
85         logger.info("***************************************");
86         
87         logger.info("parentContentId:" + parentContentId);
88         logger.info("contentTypeDefinitionId:" + contentTypeDefinitionId);
89         logger.info("repositoryId:" + repositoryId);
90         
91         try
92         {
93             initializePrincipal(principalName);
94             ContentVO newContentVO = contentControllerProxy.acCreate(this.principal, new Integer JavaDoc(parentContentId), new Integer JavaDoc(contentTypeDefinitionId), new Integer JavaDoc(repositoryId), contentVO);
95             newContentId = newContentVO.getId().intValue();
96         }
97         catch(Exception JavaDoc e)
98         {
99             logger.error("En error occurred when we tried to create a new content:" + e.getMessage(), e);
100         }
101         
102         updateCaches();
103         
104         return newContentId;
105     }
106     
107     /**
108      * Inserts a new ContentVersion.
109      */

110     
111     public int createContentVersion(final String JavaDoc principalName, ContentVersionVO contentVersionVO, int contentId, int languageId)
112     {
113         int newContentVersionId = 0;
114         
115         logger.info("***************************************");
116         logger.info("Creating content through webservice....");
117         logger.info("***************************************");
118         
119         try
120         {
121             initializePrincipal(principalName);
122             ContentVersionVO newContentVersionVO = contentVersionControllerProxy.acCreate(this.principal, new Integer JavaDoc(contentId), new Integer JavaDoc(languageId), contentVersionVO);
123             newContentVersionId = newContentVersionVO.getId().intValue();
124         }
125         catch(Exception JavaDoc e)
126         {
127             logger.error("En error occurred when we tried to create a new contentVersion:" + e.getMessage(), e);
128         }
129         
130         updateCaches();
131
132         return newContentVersionId;
133     }
134     
135  
136     /**
137      * Inserts a new Content including versions etc.
138      */

139     
140     public Boolean JavaDoc createContents(final String JavaDoc principalName, final Object JavaDoc[] inputsArray/*List contents*/)
141     {
142         List JavaDoc newContentIdList = new ArrayList JavaDoc();
143         
144         logger.info("****************************************");
145         logger.info("Creating contents through webservice....");
146         logger.info("****************************************");
147         
148         logger.info("principalName:" + principalName);
149         logger.info("inputsArray:" + inputsArray);
150         //logger.warn("contents:" + contents);
151

152         try
153         {
154             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
155             List JavaDoc contents = (List JavaDoc) serializer.deserialize(inputsArray);
156             logger.info("contents:" + contents);
157
158             initializePrincipal(principalName);
159             Iterator JavaDoc contentIterator = contents.iterator();
160             while(contentIterator.hasNext())
161             {
162                 //String value = (String)contentIterator.next();
163
//logger.info("value:" + value);
164

165                 Map JavaDoc content = (Map JavaDoc)contentIterator.next();
166                 
167                 String JavaDoc name = (String JavaDoc)content.get("name");
168                 Integer JavaDoc contentTypeDefinitionId = (Integer JavaDoc)content.get("contentTypeDefinitionId");
169                 Integer JavaDoc repositoryId = (Integer JavaDoc)content.get("repositoryId");
170                 Integer JavaDoc parentContentId = (Integer JavaDoc)content.get("parentContentId");
171                 
172                 logger.info("name:" + name);
173                 logger.info("contentTypeDefinitionId:" + contentTypeDefinitionId);
174                 logger.info("repositoryId:" + repositoryId);
175                 logger.info("parentContentId:" + parentContentId);
176                 
177                 ContentVO contentVO = new ContentVO();
178                 contentVO.setName(name);
179                 contentVO.setContentTypeDefinitionId(contentTypeDefinitionId);
180                 contentVO.setRepositoryId(repositoryId);
181                 contentVO.setParentContentId(parentContentId);
182                 
183                 if(contentVO.getCreatorName() == null)
184                     contentVO.setCreatorName(this.principal.getName());
185                 
186                 ContentVO newContentVO = contentControllerProxy.acCreate(this.principal, contentVO.getParentContentId(), contentVO.getContentTypeDefinitionId(), contentVO.getRepositoryId(), contentVO);
187                 
188                 List JavaDoc contentVersions = (List JavaDoc)content.get("contentVersions");
189                 Iterator JavaDoc contentVersionIterator = contentVersions.iterator();
190                 while(contentVersionIterator.hasNext())
191                 {
192                     Map JavaDoc contentVersion = (Map JavaDoc)contentVersionIterator.next();
193                     
194                     Integer JavaDoc languageId = (Integer JavaDoc)contentVersion.get("languageId");
195                     Integer JavaDoc stateId = (Integer JavaDoc)contentVersion.get("stateId");
196                     
197                     logger.info("languageId:" + languageId);
198                     logger.info("stateId:" + stateId);
199
200                     ContentVersionVO contentVersionVO = new ContentVersionVO();
201                     contentVersionVO.setLanguageId(languageId);
202                     
203                     if(contentVersionVO.getVersionModifier() == null)
204                         contentVersionVO.setVersionModifier(this.principal.getName());
205                     
206                     Map JavaDoc attributes = (Map JavaDoc)contentVersion.get("contentVersionAttributes");
207                     
208                     DOMBuilder domBuilder = new DOMBuilder();
209                     Document document = domBuilder.createDocument();
210                     
211                     Element rootElement = domBuilder.addElement(document, "root");
212                     domBuilder.addAttribute(rootElement, "xmlns", "x-schema:Schema.xml");
213                     Element attributesRoot = domBuilder.addElement(rootElement, "attributes");
214                     
215                     Iterator JavaDoc attributesIterator = attributes.keySet().iterator();
216                     while(attributesIterator.hasNext())
217                     {
218                         String JavaDoc attributeName = (String JavaDoc)attributesIterator.next();
219                         String JavaDoc attributeValue = (String JavaDoc)attributes.get(attributeName);
220                         
221                         Element attribute = domBuilder.addElement(attributesRoot, attributeName);
222                         domBuilder.addCDATAElement(attribute, attributeValue);
223                     }
224
225                     contentVersionVO.setVersionValue(document.asXML());
226                     
227                     ContentVersionVO newContentVersionVO = contentVersionControllerProxy.acCreate(this.principal, newContentVO.getId(), languageId, contentVersionVO);
228                     Integer JavaDoc newContentVersionId = newContentVersionVO.getId();
229                     
230                     List JavaDoc digitalAssets = (List JavaDoc)contentVersion.get("digitalAssets");
231                     
232                     logger.info("digitalAssets:" + digitalAssets);
233                     if(digitalAssets != null)
234                     {
235                         Iterator JavaDoc digitalAssetIterator = digitalAssets.iterator();
236                         while(digitalAssetIterator.hasNext())
237                         {
238                             RemoteAttachment remoteAttachment = (RemoteAttachment)digitalAssetIterator.next();
239                             logger.info("digitalAssets in ws:" + remoteAttachment);
240                             
241                             DigitalAssetVO newAsset = new DigitalAssetVO();
242                             newAsset.setAssetContentType(remoteAttachment.getContentType());
243                             newAsset.setAssetKey(remoteAttachment.getName());
244                             newAsset.setAssetFileName(remoteAttachment.getFileName());
245                             newAsset.setAssetFilePath(remoteAttachment.getFilePath());
246                             newAsset.setAssetFileSize(new Integer JavaDoc(new Long JavaDoc(remoteAttachment.getBytes().length).intValue()));
247                             //is = new FileInputStream(renamedFile);
248
InputStream JavaDoc is = new ByteArrayInputStream JavaDoc(remoteAttachment.getBytes());
249         
250                             DigitalAssetController.create(newAsset, is, newContentVersionId);
251                         }
252                     }
253                     
254                     //Should we also change state on newly created content version?
255
if(stateId != null && !stateId.equals(ContentVersionVO.WORKING_STATE))
256                     {
257                         List JavaDoc events = new ArrayList JavaDoc();
258                         ContentStateController.changeState(newContentVersionId, stateId, "Remote update from deliver", false, this.principal, newContentVO.getId(), events);
259                     
260                         if(stateId.equals(ContentVersionVO.PUBLISHED_STATE))
261                         {
262                             PublicationVO publicationVO = new PublicationVO();
263                             publicationVO.setName("Direct publication by " + this.principal.getName());
264                             publicationVO.setDescription("Direct publication from deliver");
265                             publicationVO.setRepositoryId(repositoryId);
266                             publicationVO = PublicationController.getController().createAndPublish(publicationVO, events, false, this.principal);
267                         }
268
269                     }
270                 }
271                 
272                 newContentIdList.add(newContentVO.getId());
273                 
274             }
275             logger.info("Done with contents..");
276
277         }
278         catch(Throwable JavaDoc e)
279         {
280             logger.error("En error occurred when we tried to create a new content:" + e.getMessage(), e);
281         }
282         
283         updateCaches();
284
285         return new Boolean JavaDoc(true);
286     }
287
288     
289     /**
290      * Updates a content.
291      */

292     
293     public Boolean JavaDoc updateContent(final String JavaDoc principalName, final Object JavaDoc[] inputsArray)
294     {
295         List JavaDoc newContentIdList = new ArrayList JavaDoc();
296         
297         logger.info("****************************************");
298         logger.info("Updating content through webservice....");
299         logger.info("****************************************");
300         
301         logger.info("principalName:" + principalName);
302         logger.info("inputsArray:" + inputsArray);
303         //logger.warn("contents:" + contents);
304

305         try
306         {
307             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
308             Map JavaDoc content = (Map JavaDoc) serializer.deserialize(inputsArray);
309             logger.info("content:" + content);
310
311             initializePrincipal(principalName);
312             
313             Integer JavaDoc contentId = (Integer JavaDoc)content.get("contentId");
314             String JavaDoc name = (String JavaDoc)content.get("name");
315             Date JavaDoc publishDateTime = (Date JavaDoc)content.get("publishDateTime");
316             Date JavaDoc expireDateTime = (Date JavaDoc)content.get("expireDateTime");
317             
318             logger.info("contentId:" + contentId);
319             logger.info("name:" + name);
320             logger.info("publishDateTime:" + publishDateTime);
321             logger.info("expireDateTime:" + expireDateTime);
322             
323             ContentVO contentVO = ContentController.getContentController().getContentVOWithId(contentId);
324
325             if(name != null)
326                 contentVO.setName(name);
327
328             if(publishDateTime != null)
329                 contentVO.setPublishDateTime(publishDateTime);
330
331             if(expireDateTime != null)
332                 contentVO.setExpireDateTime(expireDateTime);
333
334             ContentVO newContentVO = contentControllerProxy.acUpdate(this.principal, contentVO, null);
335                
336             logger.info("Done with contents..");
337
338         }
339         catch(Throwable JavaDoc e)
340         {
341             logger.error("En error occurred when we tried to create a new content:" + e.getMessage(), e);
342         }
343         
344         updateCaches();
345
346         return new Boolean JavaDoc(true);
347     }
348
349     /**
350      * Updates a content.
351      */

352     
353     public Boolean JavaDoc updateContentVersion(final String JavaDoc principalName, final Object JavaDoc[] inputsArray)
354     {
355         List JavaDoc newContentIdList = new ArrayList JavaDoc();
356         
357         logger.info("****************************************");
358         logger.info("Updating content versions through webservice....");
359         logger.info("****************************************");
360         
361         logger.info("principalName:" + principalName);
362         logger.info("inputsArray:" + inputsArray);
363         //logger.warn("contents:" + contents);
364

365         try
366         {
367             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
368             Map JavaDoc contentVersion = (Map JavaDoc) serializer.deserialize(inputsArray);
369             logger.info("contentVersion:" + contentVersion);
370
371             initializePrincipal(principalName);
372             
373             Integer JavaDoc contentVersionId = (Integer JavaDoc)contentVersion.get("contentVersionId");
374             Integer JavaDoc contentId = (Integer JavaDoc)contentVersion.get("contentId");
375             Integer JavaDoc languageId = (Integer JavaDoc)contentVersion.get("languageId");
376             Integer JavaDoc stateId = (Integer JavaDoc)contentVersion.get("stateId");
377             String JavaDoc versionComment = (String JavaDoc)contentVersion.get("versionComment");
378             
379             logger.info("contentVersionId:" + contentVersionId);
380             logger.info("contentId:" + contentId);
381             logger.info("languageId:" + languageId);
382             logger.info("stateId:" + stateId);
383             logger.info("versionComment:" + versionComment);
384
385             ContentVersionVO contentVersionVO = null;
386             if(contentVersionId != null)
387                 contentVersionVO = ContentVersionController.getContentVersionController().getContentVersionVOWithId(contentVersionId);
388             else
389                 contentVersionVO = ContentVersionController.getContentVersionController().getLatestActiveContentVersionVO(contentId, languageId);
390                 
391             if(contentVersionVO == null)
392                 return new Boolean JavaDoc(false);
393                 
394             contentVersionVO.setVersionComment(versionComment);
395             
396             Map JavaDoc attributes = (Map JavaDoc)contentVersion.get("contentVersionAttributes");
397             
398             if(attributes != null && attributes.size() > 0)
399             {
400                 DOMBuilder domBuilder = new DOMBuilder();
401                 Document document = domBuilder.createDocument();
402                 
403                 Element rootElement = domBuilder.addElement(document, "root");
404                 domBuilder.addAttribute(rootElement, "xmlns", "x-schema:Schema.xml");
405                 Element attributesRoot = domBuilder.addElement(rootElement, "attributes");
406                 
407                 Iterator JavaDoc attributesIterator = attributes.keySet().iterator();
408                 while(attributesIterator.hasNext())
409                 {
410                     String JavaDoc attributeName = (String JavaDoc)attributesIterator.next();
411                     String JavaDoc attributeValue = (String JavaDoc)attributes.get(attributeName);
412                     
413                     Element attribute = domBuilder.addElement(attributesRoot, attributeName);
414                     domBuilder.addCDATAElement(attribute, attributeValue);
415                 }
416
417                 contentVersionVO.setVersionValue(document.asXML());
418             }
419             
420             ContentVersionControllerProxy.getController().acUpdate(principal, contentId, languageId, contentVersionVO);
421             
422             //Assets now
423
List JavaDoc digitalAssets = (List JavaDoc)contentVersion.get("digitalAssets");
424             
425             if(digitalAssets != null)
426             {
427                 logger.info("digitalAssets:" + digitalAssets.size());
428                 
429                 Iterator JavaDoc digitalAssetIterator = digitalAssets.iterator();
430                 while(digitalAssetIterator.hasNext())
431                 {
432                     RemoteAttachment remoteAttachment = (RemoteAttachment)digitalAssetIterator.next();
433                     logger.info("digitalAssets in ws:" + remoteAttachment);
434                     
435                     DigitalAssetVO newAsset = new DigitalAssetVO();
436                     newAsset.setAssetContentType(remoteAttachment.getContentType());
437                     newAsset.setAssetKey(remoteAttachment.getName());
438                     newAsset.setAssetFileName(remoteAttachment.getFileName());
439                     newAsset.setAssetFilePath(remoteAttachment.getFilePath());
440                     newAsset.setAssetFileSize(new Integer JavaDoc(new Long JavaDoc(remoteAttachment.getBytes().length).intValue()));
441                     InputStream JavaDoc is = new ByteArrayInputStream JavaDoc(remoteAttachment.getBytes());
442     
443                     DigitalAssetController.create(newAsset, is, contentVersionVO.getContentVersionId());
444                 }
445             }
446             
447             //Should we also change state on newly created content version?
448
if(stateId != null && !stateId.equals(ContentVersionVO.WORKING_STATE))
449             {
450                 List JavaDoc events = new ArrayList JavaDoc();
451                 ContentStateController.changeState(contentVersionVO.getId(), stateId, "Remote update from deliver", false, this.principal, contentVersionVO.getContentId(), events);
452             
453                 if(stateId.equals(ContentVersionVO.PUBLISHED_STATE))
454                 {
455                     PublicationVO publicationVO = new PublicationVO();
456                     publicationVO.setName("Direct publication by " + this.principal.getName());
457                     publicationVO.setDescription("Direct publication from deliver");
458                     ContentVO contentVO = ContentController.getContentController().getContentVOWithId(contentVersionVO.getContentId());
459                     publicationVO.setRepositoryId(contentVO.getRepositoryId());
460                     publicationVO = PublicationController.getController().createAndPublish(publicationVO, events, false, this.principal);
461                 }
462
463             }
464             
465             logger.info("Done with contentVersion..");
466
467         }
468         catch(Throwable JavaDoc e)
469         {
470             logger.error("En error occurred when we tried to create a new content:" + e.getMessage(), e);
471         }
472         
473         updateCaches();
474
475         return new Boolean JavaDoc(true);
476     }
477
478     
479     
480     /**
481      * Deletes a digital asset.
482      */

483     
484     public Boolean JavaDoc deleteDigitalAsset(final String JavaDoc principalName, final Object JavaDoc[] inputsArray)
485     {
486         List JavaDoc newContentIdList = new ArrayList JavaDoc();
487         
488         logger.info("****************************************");
489         logger.info("Updating content through webservice....");
490         logger.info("****************************************");
491         
492         logger.info("principalName:" + principalName);
493         logger.info("inputsArray:" + inputsArray);
494         //logger.warn("contents:" + contents);
495

496         try
497         {
498             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
499             Map JavaDoc digitalAsset = (Map JavaDoc) serializer.deserialize(inputsArray);
500             logger.info("digitalAsset:" + digitalAsset);
501
502             initializePrincipal(principalName);
503             
504             Integer JavaDoc contentVersionId = (Integer JavaDoc)digitalAsset.get("contentVersionId");
505             Integer JavaDoc contentId = (Integer JavaDoc)digitalAsset.get("contentId");
506             Integer JavaDoc languageId = (Integer JavaDoc)digitalAsset.get("languageId");
507             String JavaDoc assetKey = (String JavaDoc)digitalAsset.get("assetKey");
508             
509             logger.info("contentVersionId:" + contentVersionId);
510             logger.info("contentId:" + contentId);
511             logger.info("languageId:" + languageId);
512             logger.info("assetKey:" + assetKey);
513             
514             ContentVersionController.getContentVersionController().deleteDigitalAsset(contentId, languageId, assetKey);
515                
516             logger.info("Done with contents..");
517
518         }
519         catch(Throwable JavaDoc e)
520         {
521             logger.error("En error occurred when we tried to delete a digitalAsset:" + e.getMessage(), e);
522         }
523         
524         updateCaches();
525
526         return new Boolean JavaDoc(true);
527     }
528
529     /**
530      * Deletes a content.
531      */

532     
533     public Boolean JavaDoc deleteContent(final String JavaDoc principalName, final Object JavaDoc[] inputsArray)
534     {
535         List JavaDoc newContentIdList = new ArrayList JavaDoc();
536         
537         logger.info("****************************************");
538         logger.info("Updating content through webservice....");
539         logger.info("****************************************");
540         
541         logger.info("principalName:" + principalName);
542         logger.info("inputsArray:" + inputsArray);
543         //logger.warn("contents:" + contents);
544

545         try
546         {
547             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
548             Map JavaDoc digitalAsset = (Map JavaDoc) serializer.deserialize(inputsArray);
549             logger.info("digitalAsset:" + digitalAsset);
550
551             initializePrincipal(principalName);
552             
553             Integer JavaDoc contentId = (Integer JavaDoc)digitalAsset.get("contentId");
554             
555             logger.info("contentId:" + contentId);
556             
557             ContentVO contentVO = new ContentVO();
558             contentVO.setContentId(contentId);
559             
560             ContentController.getContentController().delete(contentVO);
561                
562             logger.info("Done with contents..");
563
564         }
565         catch(Throwable JavaDoc e)
566         {
567             logger.error("En error occurred when we tried to delete a digitalAsset:" + e.getMessage(), e);
568         }
569         
570         updateCaches();
571
572         return new Boolean JavaDoc(true);
573     }
574
575     /**
576      * Deletes a content.
577      */

578     
579     public Boolean JavaDoc deleteContentVersion(final String JavaDoc principalName, final Object JavaDoc[] inputsArray)
580     {
581         List JavaDoc newContentIdList = new ArrayList JavaDoc();
582         
583         logger.info("****************************************");
584         logger.info("Updating content through webservice....");
585         logger.info("****************************************");
586         
587         logger.info("principalName:" + principalName);
588         logger.info("inputsArray:" + inputsArray);
589         //logger.warn("contents:" + contents);
590

591         try
592         {
593             final DynamicWebserviceSerializer serializer = new DynamicWebserviceSerializer();
594             Map JavaDoc digitalAsset = (Map JavaDoc) serializer.deserialize(inputsArray);
595             logger.info("digitalAsset:" + digitalAsset);
596
597             initializePrincipal(principalName);
598             
599             Integer JavaDoc contentVersionId = (Integer JavaDoc)digitalAsset.get("contentVersionId");
600             
601             logger.info("contentVersionId:" + contentVersionId);
602             ContentVersionVO contentVersionVO = new ContentVersionVO();
603             contentVersionVO.setContentVersionId(contentVersionId);
604             
605             ContentVersionController.getContentVersionController().delete(contentVersionVO);
606                
607             logger.info("Done with contents..");
608
609         }
610         catch(Throwable JavaDoc e)
611         {
612             logger.error("En error occurred when we tried to delete a digitalAsset:" + e.getMessage(), e);
613         }
614         
615         updateCaches();
616
617         return new Boolean JavaDoc(true);
618     }
619
620     
621     /**
622      * Checks if the principal exists and if the principal is allowed to create the workflow.
623      *
624      * @param userName the name of the user.
625      * @param workflowName the name of the workflow to create.
626      * @throws SystemException if the principal doesn't exists or doesn't have permission to create the workflow.
627      */

628     private void initializePrincipal(final String JavaDoc userName) throws SystemException
629     {
630         try
631         {
632             principal = UserControllerProxy.getController().getUser(userName);
633         }
634         catch(SystemException e)
635         {
636             throw e;
637         }
638         catch(Exception JavaDoc e)
639         {
640             throw new SystemException(e);
641         }
642         if(principal == null)
643         {
644             throw new SystemException("No such principal [" + userName + "].");
645         }
646     }
647
648
649 }
650
Popular Tags