1 34 35 package com.opencms.legacy; 36 37 import org.opencms.file.CmsObject; 38 import org.opencms.file.CmsProperty; 39 import org.opencms.file.CmsPropertyDefinition; 40 import org.opencms.file.CmsResource; 41 import org.opencms.file.CmsResourceFilter; 42 import org.opencms.i18n.CmsMessageContainer; 43 import org.opencms.importexport.CmsExport; 44 import org.opencms.importexport.CmsImportExportException; 45 import org.opencms.main.CmsException; 46 import org.opencms.main.CmsLog; 47 import org.opencms.main.OpenCms; 48 import org.opencms.report.I_CmsReport; 49 import org.opencms.util.CmsDateUtil; 50 import org.opencms.util.CmsXmlSaxWriter; 51 52 import com.opencms.defaults.master.*; 53 54 import java.io.IOException ; 55 import java.io.OutputStreamWriter ; 56 import java.io.Serializable ; 57 import java.lang.reflect.Constructor ; 58 import java.lang.reflect.InvocationTargetException ; 59 import java.util.Arrays ; 60 import java.util.Enumeration ; 61 import java.util.HashSet ; 62 import java.util.Iterator ; 63 import java.util.List ; 64 import java.util.Set ; 65 import java.util.Vector ; 66 import java.util.zip.ZipEntry ; 67 68 import org.apache.commons.logging.Log; 69 70 import org.dom4j.Document; 71 import org.dom4j.DocumentHelper; 72 import org.dom4j.Element; 73 import org.dom4j.io.SAXWriter; 74 import org.xml.sax.SAXException ; 75 76 87 public class CmsExportModuledata extends CmsExport implements Serializable { 88 89 90 private static final long serialVersionUID = -8416442909693060452L; 91 92 93 public static String C_EXPORT_TAG_MASTER = "master"; 94 95 96 public static String C_EXPORT_TAG_MASTER_ACCESSFLAGS = "access_flags"; 97 98 99 public static String C_EXPORT_TAG_MASTER_CHANNELNAME = "channelname"; 100 101 102 public static String C_EXPORT_TAG_MASTER_CHANNELREL = "channelrelations"; 103 104 105 public static String C_EXPORT_TAG_MASTER_CREATEDATE = "create_date"; 106 107 108 public static String C_EXPORT_TAG_MASTER_DATABIG = "data_big_"; 109 110 111 public static String C_EXPORT_TAG_MASTER_DATADATE = "data_date_"; 112 113 114 public static String C_EXPORT_TAG_MASTER_DATAINT = "data_int_"; 115 116 117 public static String C_EXPORT_TAG_MASTER_DATAMEDIUM = "data_medium_"; 118 119 120 public static String C_EXPORT_TAG_MASTER_DATAREFERENCE = "data_reference_"; 121 122 123 public static String C_EXPORT_TAG_MASTER_DATASET = "dataset"; 124 125 126 public static String C_EXPORT_TAG_MASTER_DATASMALL = "data_small_"; 127 128 129 public static String C_EXPORT_TAG_MASTER_FEEDFILENAME = "feed_filename"; 130 131 132 public static String C_EXPORT_TAG_MASTER_FEEDID = "feed_id"; 133 134 135 public static String C_EXPORT_TAG_MASTER_FEEDREFERENCE = "feed_reference"; 136 137 138 public static String C_EXPORT_TAG_MASTER_FLAGS = "flags"; 139 140 141 public static String C_EXPORT_TAG_MASTER_GROUP = "group_name"; 142 143 144 public static String C_EXPORT_TAG_MASTER_ID = "master_id"; 145 146 147 public static String C_EXPORT_TAG_MASTER_MEDIA = "media"; 148 149 150 public static String C_EXPORT_TAG_MASTER_MEDIASET = "mediaset"; 151 152 153 public static String C_EXPORT_TAG_MASTER_PUBLICATIONDATE = "publication_date"; 154 155 156 public static String C_EXPORT_TAG_MASTER_PURGEDATE = "purge_date"; 157 158 159 public static String C_EXPORT_TAG_MASTER_SUBID = "sub_id"; 160 161 162 public static String C_EXPORT_TAG_MASTER_TITLE = "title"; 163 164 165 public static String C_EXPORT_TAG_MASTER_USER = "user_name"; 166 167 168 public static String C_EXPORT_TAG_MASTERS = "masters"; 169 170 171 public static String C_EXPORT_TAG_MEDIA_CONTENT = "media_content"; 172 173 174 public static String C_EXPORT_TAG_MEDIA_DESCRIPTION = "media_description"; 175 176 177 public static String C_EXPORT_TAG_MEDIA_HEIGHT = "media_height"; 178 179 180 public static String C_EXPORT_TAG_MEDIA_MIMETYPE = "media_mimetype"; 181 182 183 public static String C_EXPORT_TAG_MEDIA_NAME = "media_name"; 184 185 186 public static String C_EXPORT_TAG_MEDIA_POSITION = "media_position"; 187 188 189 public static String C_EXPORT_TAG_MEDIA_SIZE = "media_size"; 190 191 192 public static String C_EXPORT_TAG_MEDIA_TITLE = "media_title"; 193 194 195 public static String C_EXPORT_TAG_MEDIA_TYPE = "media_type"; 196 197 198 public static String C_EXPORT_TAG_MEDIA_WIDTH = "media_width"; 199 200 201 private static final Log LOG = CmsLog.getLog(CmsExportModuledata.class); 202 203 204 private Set m_exportedChannelIds; 205 206 207 private Vector m_exportedMasters = new Vector (); 208 209 220 public CmsExportModuledata( 221 CmsObject cms, 222 String exportFile, 223 String [] resourcesToExport, 224 String [] modulesToExport, 225 I_CmsReport report) 226 throws CmsImportExportException { 227 228 setCms(cms); 229 setReport(report); 230 setExportFileName(exportFile); 231 setExportedChannelIds(new HashSet ()); 232 233 getCms().getRequestContext().saveSiteRoot(); 235 236 Element exportNode; 238 try { 239 exportNode = openExportFile(); 240 241 getReport().println( 243 Messages.get().container(Messages.RPT_EXPORT_CHANNELS_BEGIN_0), 244 I_CmsReport.FORMAT_HEADLINE); 245 246 getCms().getRequestContext().setSiteRoot(CmsResource.VFS_FOLDER_CHANNELS); 247 exportAllResources(exportNode, Arrays.asList(resourcesToExport)); 249 getReport().println( 250 Messages.get().container(Messages.RPT_EXPORT_CHANNELS_END_0), 251 I_CmsReport.FORMAT_HEADLINE); 252 253 Vector modules = new Vector (); 255 Vector moduleNames = new Vector (); 256 for (int i = 0; i < modulesToExport.length; i++) { 257 String modName = modulesToExport[i]; 258 if (modName != null && !"".equals(modName)) { 259 moduleNames.addElement(modulesToExport[i]); 260 } 261 } 262 263 List moduleExportables = CmsLegacyModuleAction.getLegacyModulePublishClasses(); 264 if (moduleNames.size() == 0) { 267 if (resourcesToExport.length > 0) { 268 Iterator modElements = moduleExportables.iterator(); 269 while (modElements.hasNext()) { 270 modules.add(modElements.next()); 271 } 272 } 273 } else { 274 modules = moduleNames; 275 } 276 277 Enumeration enumModules = modules.elements(); 279 while (enumModules.hasMoreElements()) { 280 String classname = (String )enumModules.nextElement(); 282 exportCos(exportNode, classname, getExportedChannelIds()); 283 } 284 285 closeExportFile(exportNode); 287 288 } catch (CmsException e) { 289 getReport().println(e); 290 291 CmsMessageContainer message = Messages.get().container( 292 Messages.ERR_COS_IMPORTEXPORT_ERROR_EXPORTING_TO_FILE_1, 293 getExportFileName()); 294 if (LOG.isDebugEnabled()) { 295 LOG.debug(message, e); 296 } 297 298 throw new CmsImportExportException(message, e); 299 } catch (SAXException se) { 300 getReport().println(se); 301 302 CmsMessageContainer message = Messages.get().container( 303 Messages.ERR_COS_IMPORTEXPORT_ERROR_EXPORTING_TO_FILE_1, 304 getExportFileName()); 305 if (LOG.isDebugEnabled()) { 306 LOG.debug(message, se); 307 } 308 309 throw new CmsImportExportException(message, se); 310 } catch (IOException ioe) { 311 getReport().println(ioe); 312 313 CmsMessageContainer message = Messages.get().container( 314 Messages.ERR_COS_IMPORTEXPORT_ERROR_EXPORTING_TO_FILE_1, 315 getExportFileName()); 316 if (LOG.isDebugEnabled()) { 317 LOG.debug(message, ioe); 318 } 319 320 throw new CmsImportExportException(message, ioe); 321 } finally { 322 getCms().getRequestContext().restoreSiteRoot(); 324 } 325 } 326 327 330 protected void addChildResources(String folderName) throws CmsImportExportException, IOException , SAXException { 331 332 try { 333 String channelId = getCms().readFolder(folderName, CmsResourceFilter.IGNORE_EXPIRATION).getResourceId().toString(); 335 if (channelId != null) { 336 getExportedChannelIds().add(channelId); 337 } 338 339 super.addChildResources(folderName); 341 } catch (CmsImportExportException e) { 342 343 throw e; 344 } catch (CmsException e) { 345 346 CmsMessageContainer message = Messages.get().container( 347 Messages.ERR_COS_IMPORTEXPORT_ERROR_ADDING_CHILD_RESOURCES_1, 348 folderName); 349 if (LOG.isDebugEnabled()) { 350 LOG.debug(message, e); 351 } 352 353 throw new CmsImportExportException(message, e); 354 } 355 } 356 357 362 protected Set getExportedChannelIds() { 363 364 return m_exportedChannelIds; 365 } 366 367 370 protected String getExportNodeName() { 371 372 return com.opencms.core.I_CmsConstants.C_EXPORT_TAG_MODULEXPORT; 373 } 374 375 378 protected String getResourceNodeName() { 379 380 return "channels"; 381 } 382 383 386 protected boolean isIgnoredProperty(CmsProperty property) { 387 388 if (property == null) { 389 return true; 390 } 391 return CmsPropertyDefinition.PROPERTY_CHANNELID.equals(property.getName()); 393 } 394 395 400 protected void setExportedChannelIds(Set exportedChannelIds) { 401 402 m_exportedChannelIds = exportedChannelIds; 403 } 404 405 415 private void exportCos(Element parent, String classname, Set exportedChannelIds) throws CmsException, SAXException { 416 417 getReport().println( 419 Messages.get().container(Messages.RPT_EXPORT_MODULE_BEGIN_1, classname), 420 I_CmsReport.FORMAT_HEADLINE); 421 422 Iterator keys = exportedChannelIds.iterator(); 423 int subId = getContentDefinition(classname, new Class [] {CmsObject.class}, new Object [] {getCms()}).getSubId(); 425 int masterNr = 1; 427 428 Element masters = parent.addElement(C_EXPORT_TAG_MASTERS); 429 getSaxWriter().writeOpen(masters); 430 431 while (keys.hasNext()) { 432 String channelId = (String )keys.next(); 433 try { 434 Vector allDatasets = new Vector (); 435 allDatasets = (Vector )Class.forName(classname).getMethod( 437 "readAllByChannel", 438 new Class [] {CmsObject.class, String .class, Integer .class}).invoke( 439 null, 440 new Object [] {getCms(), channelId, new Integer (subId)}); 441 442 for (int i = 0; i < allDatasets.size(); i++) { 443 CmsMasterDataSet curDataset = (CmsMasterDataSet)allDatasets.elementAt(i); 444 if (!m_exportedMasters.contains("" + curDataset.m_masterId)) { 445 exportCosModule(masters, classname, curDataset, masterNr, subId); 446 m_exportedMasters.add("" + curDataset.m_masterId); 447 masterNr++; 448 } 449 } 450 } catch (InvocationTargetException e) { 451 getReport().println(e); 452 if (CmsLog.getLog(this).isErrorEnabled()) { 453 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 454 } 455 } catch (NoSuchMethodException e) { 456 getReport().println(e); 457 if (CmsLog.getLog(this).isErrorEnabled()) { 458 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 459 } 460 } catch (IllegalArgumentException e) { 461 getReport().println(e); 462 if (CmsLog.getLog(this).isErrorEnabled()) { 463 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 464 } 465 } catch (SecurityException e) { 466 getReport().println(e); 467 if (CmsLog.getLog(this).isErrorEnabled()) { 468 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 469 } 470 } catch (IllegalAccessException e) { 471 getReport().println(e); 472 if (CmsLog.getLog(this).isErrorEnabled()) { 473 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 474 } 475 } catch (ClassNotFoundException e) { 476 getReport().println(e); 477 if (CmsLog.getLog(this).isErrorEnabled()) { 478 CmsLog.getLog(this).error("Error exporting COS data for channel id " + channelId, e); 479 } 480 } 481 } 482 483 getSaxWriter().writeClose(masters); 484 parent.remove(masters); 485 486 getReport().println( 487 Messages.get().container(Messages.RPT_EXPORT_MODULE_END_0, classname), 488 I_CmsReport.FORMAT_HEADLINE); 489 } 490 491 503 private void exportCosModule(Element parent, String classname, CmsMasterDataSet dataset, int masterNr, int subId) 504 throws CmsException, SAXException { 505 506 508 getReport().print( 509 Messages.get().container(Messages.RPT_EXPORT_WITH_ID_2, dataset.m_title, dataset.m_masterId), 510 I_CmsReport.FORMAT_NOTE); 511 512 String dataSetFile = "dataset_" + subId + "_" + masterNr + ".xml"; 514 CmsMasterContent content = getContentDefinition( 516 classname, 517 new Class [] {CmsObject.class, CmsMasterDataSet.class}, 518 new Object [] {getCms(), dataset}); 519 Element master = parent.addElement(C_EXPORT_TAG_MASTER); 521 522 master.addElement(C_EXPORT_TAG_MASTER_SUBID).addText(Integer.toString(subId)); 523 master.addElement(C_EXPORT_TAG_MASTER_DATASET).addText(dataSetFile); 526 exportCosModuleData(dataset, dataSetFile, masterNr, subId); 527 Element channelrel = master.addElement(C_EXPORT_TAG_MASTER_CHANNELREL); 529 Vector moduleChannels = content.getChannels(); 530 for (int i = 0; i < moduleChannels.size(); i++) { 531 String channelname = (String )moduleChannels.elementAt(i); 532 channelrel.addElement(C_EXPORT_TAG_MASTER_CHANNELNAME).addText(channelname); 533 } 534 Element mediaset = master.addElement(C_EXPORT_TAG_MASTER_MEDIASET); 536 Vector moduleMedia = content.getMedia(); 537 for (int i = 0; i < moduleMedia.size(); i++) { 538 String mediaFile = "media_" + subId + "_" + masterNr + "_" + i + ".xml"; 541 mediaset.addElement(C_EXPORT_TAG_MASTER_MEDIA).addText(mediaFile); 542 exportCosModuleMedia((CmsMasterMedia)moduleMedia.elementAt(i), mediaFile, masterNr, subId, i); 543 } 544 digestElement(parent, master); 546 getReport().println( 547 org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_OK_0), 548 I_CmsReport.FORMAT_OK); 549 } 550 551 562 private void exportCosModuleData(CmsMasterDataSet dataset, String filename, int masterNr, int subId) 563 throws CmsException { 564 565 Document doc = DocumentHelper.createDocument(); 567 Element data = doc.addElement(com.opencms.core.I_CmsConstants.C_EXPORT_TAG_MODULEXPORT).addElement( 568 C_EXPORT_TAG_MASTER_DATASET); 569 570 String ownerName = ""; 573 try { 574 ownerName = getCms().readUser(dataset.m_userId).getName(); 575 } catch (CmsException e) { 576 if (CmsLog.getLog(this).isErrorEnabled()) { 577 CmsLog.getLog(this).error("Unable to read user with id " + dataset.m_userId, e); 578 } 579 } 580 String groupName = ""; 582 try { 583 groupName = getCms().readGroup(dataset.m_groupId).getName(); 584 } catch (CmsException e) { 585 if (CmsLog.getLog(this).isErrorEnabled()) { 586 CmsLog.getLog(this).error("Unable to read group with id " + dataset.m_groupId, e); 587 } 588 } 589 590 data.addElement(C_EXPORT_TAG_MASTER_ID).addText(dataset.m_masterId.toString()); 591 data.addElement(C_EXPORT_TAG_MASTER_USER).addText(ownerName); 592 data.addElement(C_EXPORT_TAG_MASTER_GROUP).addText(groupName); 593 data.addElement(C_EXPORT_TAG_MASTER_ACCESSFLAGS).addText(Integer.toString(dataset.m_accessFlags)); 594 data.addElement(C_EXPORT_TAG_MASTER_PUBLICATIONDATE).addText( 595 CmsDateUtil.getDateTimeShort(dataset.m_publicationDate)); 596 data.addElement(C_EXPORT_TAG_MASTER_PURGEDATE).addText(CmsDateUtil.getDateTimeShort(dataset.m_purgeDate)); 597 data.addElement(C_EXPORT_TAG_MASTER_FLAGS).addText(Integer.toString(dataset.m_flags)); 598 data.addElement(C_EXPORT_TAG_MASTER_FEEDID).addText(Integer.toString(dataset.m_feedId)); 599 data.addElement(C_EXPORT_TAG_MASTER_FEEDREFERENCE).addText(Integer.toString(dataset.m_feedReference)); 600 data.addElement(C_EXPORT_TAG_MASTER_FEEDFILENAME).addText( 601 dataset.m_feedFilename != null ? dataset.m_feedFilename : ""); 602 data.addElement(C_EXPORT_TAG_MASTER_TITLE).addCDATA(dataset.m_title != null ? dataset.m_title : ""); 603 604 for (int i = 0; i < dataset.m_dataBig.length; i++) { 606 String value = dataset.m_dataBig[i]; 607 String dataFile = new String (); 608 if (value != null && !"".equals(value)) { 609 dataFile = "databig_" + subId + "_" + masterNr + "_" + i + ".dat"; 611 writeExportFile(dataFile, value.getBytes()); 612 } 613 data.addElement(C_EXPORT_TAG_MASTER_DATABIG + i).addText(dataFile); 614 } 615 for (int i = 0; i < dataset.m_dataMedium.length; i++) { 617 String value = dataset.m_dataMedium[i]; 618 String dataFile = new String (); 619 if (value != null && !"".equals(value)) { 620 dataFile = "datamedium_" + subId + "_" + masterNr + "_" + i + ".dat"; 622 writeExportFile(dataFile, value.getBytes()); 623 } 624 data.addElement(C_EXPORT_TAG_MASTER_DATAMEDIUM + i).addText(dataFile); 625 } 626 for (int i = 0; i < dataset.m_dataSmall.length; i++) { 628 String value = dataset.m_dataSmall[i]; 629 String dataFile = new String (); 630 if (value != null && !"".equals(value)) { 631 dataFile = "datasmall_" + subId + "_" + masterNr + "_" + i + ".dat"; 633 writeExportFile(dataFile, value.getBytes()); 634 } 635 data.addElement(C_EXPORT_TAG_MASTER_DATASMALL + i).addText(dataFile); 636 } 637 for (int i = 0; i < dataset.m_dataInt.length; i++) { 639 String value = "" + dataset.m_dataInt[i]; 640 data.addElement(C_EXPORT_TAG_MASTER_DATAINT + i).addText(value); 641 } 642 for (int i = 0; i < dataset.m_dataReference.length; i++) { 644 String value = "" + dataset.m_dataReference[i]; 645 data.addElement(C_EXPORT_TAG_MASTER_DATAREFERENCE + i).addText(value); 646 } 647 for (int i = 0; i < dataset.m_dataDate.length; i++) { 649 String value = CmsDateUtil.getDateTimeShort(dataset.m_dataDate[i]); 650 data.addElement(C_EXPORT_TAG_MASTER_DATADATE + i).addText(value); 651 } 652 653 try { 654 ZipEntry entry = new ZipEntry (filename); 656 getExportZipStream().putNextEntry(entry); 657 CmsXmlSaxWriter saxHandler = new CmsXmlSaxWriter( 659 new OutputStreamWriter (getExportZipStream()), 660 OpenCms.getSystemInfo().getDefaultEncoding()); 661 (new SAXWriter(saxHandler, saxHandler)).write(doc); 663 getExportZipStream().closeEntry(); 665 } catch (SAXException e) { 666 getReport().println(e); 667 if (CmsLog.getLog(this).isErrorEnabled()) { 668 CmsLog.getLog(this).error("Unable to write ZIP dataset file " + filename, e); 669 } 670 throw new CmsLegacyException(CmsLegacyException.C_UNKNOWN_EXCEPTION, e); 671 } catch (IOException e) { 672 getReport().println(e); 673 if (CmsLog.getLog(this).isErrorEnabled()) { 674 CmsLog.getLog(this).error("Unable to write ZIP dataset file " + filename, e); 675 } 676 throw new CmsLegacyException(CmsLegacyException.C_UNKNOWN_EXCEPTION, e); 677 } 678 } 679 680 691 private void exportCosModuleMedia(CmsMasterMedia media, String filename, int masterNr, int subId, int mediaId) 692 throws CmsException { 693 694 Document doc = DocumentHelper.createDocument(); 696 Element data = doc.addElement(com.opencms.core.I_CmsConstants.C_EXPORT_TAG_MODULEXPORT); 697 Element em = data.addElement(C_EXPORT_TAG_MASTER_MEDIA); 699 em.addElement(C_EXPORT_TAG_MEDIA_POSITION).addText(Integer.toString(media.getPosition())); 701 em.addElement(C_EXPORT_TAG_MEDIA_WIDTH).addText(Integer.toString(media.getWidth())); 702 em.addElement(C_EXPORT_TAG_MEDIA_HEIGHT).addText(Integer.toString(media.getHeight())); 703 em.addElement(C_EXPORT_TAG_MEDIA_SIZE).addText(Integer.toString(media.getSize())); 704 em.addElement(C_EXPORT_TAG_MEDIA_MIMETYPE).addText(media.getMimetype() != null ? media.getMimetype() : ""); 705 em.addElement(C_EXPORT_TAG_MEDIA_TYPE).addText(Integer.toString(media.getType())); 706 em.addElement(C_EXPORT_TAG_MEDIA_TITLE).addCDATA(media.getTitle() != null ? media.getTitle() : ""); 707 em.addElement(C_EXPORT_TAG_MEDIA_NAME).addCDATA(media.getName() != null ? media.getName() : ""); 708 em.addElement(C_EXPORT_TAG_MEDIA_DESCRIPTION).addCDATA( 709 media.getDescription() != null ? media.getDescription() : ""); 710 String contentFilename = "mediacontent_" + subId + "_" + masterNr + "_" + mediaId + ".dat"; 712 em.addElement(C_EXPORT_TAG_MEDIA_CONTENT).addText(contentFilename); 713 writeExportFile(contentFilename, media.getMedia()); 714 try { 715 ZipEntry entry = new ZipEntry (filename); 717 getExportZipStream().putNextEntry(entry); 718 CmsXmlSaxWriter saxHandler = new CmsXmlSaxWriter( 720 new OutputStreamWriter (getExportZipStream()), 721 OpenCms.getSystemInfo().getDefaultEncoding()); 722 (new SAXWriter(saxHandler, saxHandler)).write(doc); 724 getExportZipStream().closeEntry(); 726 } catch (SAXException e) { 727 getReport().println(e); 728 if (CmsLog.getLog(this).isErrorEnabled()) { 729 CmsLog.getLog(this).error("Unable to write ZIP media content file " + contentFilename, e); 730 } 731 throw new CmsLegacyException(CmsLegacyException.C_UNKNOWN_EXCEPTION, e); 732 } catch (IOException e) { 733 getReport().println(e); 734 if (CmsLog.getLog(this).isErrorEnabled()) { 735 CmsLog.getLog(this).error("Unable to write ZIP media content file " + contentFilename, e); 736 } 737 throw new CmsLegacyException(CmsLegacyException.C_UNKNOWN_EXCEPTION, e); 738 } 739 } 740 741 750 private CmsMasterContent getContentDefinition(String classname, Class [] classes, Object [] objects) { 751 752 CmsMasterContent cd = null; 753 try { 754 Class cdClass = Class.forName(classname); 755 Constructor co = cdClass.getConstructor(classes); 756 cd = (CmsMasterContent)co.newInstance(objects); 757 } catch (InvocationTargetException e) { 758 getReport().println(e); 759 if (CmsLog.getLog(this).isErrorEnabled()) { 760 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 761 } 762 } catch (NoSuchMethodException e) { 763 getReport().println(e); 764 if (CmsLog.getLog(this).isErrorEnabled()) { 765 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 766 } 767 } catch (InstantiationException e) { 768 getReport().println(e); 769 if (CmsLog.getLog(this).isErrorEnabled()) { 770 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 771 } 772 } catch (ClassNotFoundException e) { 773 getReport().println(e); 774 if (CmsLog.getLog(this).isErrorEnabled()) { 775 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 776 } 777 } catch (IllegalArgumentException e) { 778 getReport().println(e); 779 if (CmsLog.getLog(this).isErrorEnabled()) { 780 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 781 } 782 } catch (IllegalAccessException e) { 783 getReport().println(e); 784 if (CmsLog.getLog(this).isErrorEnabled()) { 785 CmsLog.getLog(this).error("Error generating instance for class " + classname, e); 786 } 787 } 788 return cd; 789 } 790 791 797 private void writeExportFile(String filename, byte[] content) { 798 799 try { 800 ZipEntry entry = new ZipEntry (filename); 802 getExportZipStream().putNextEntry(entry); 803 getExportZipStream().write(content); 804 getExportZipStream().closeEntry(); 805 } catch (IOException ioex) { 806 getReport().println(ioex); 807 if (CmsLog.getLog(this).isErrorEnabled()) { 808 CmsLog.getLog(this).error("Unable to write ZIP for filename " + filename, ioex); 809 } 810 } 811 } 812 } | Popular Tags |