1 23 24 package com.sun.enterprise.ddgenerator.sun; 25 26 27 import java.io.IOException ; 28 import java.io.OutputStream ; 29 import java.util.Iterator ; 30 31 import javax.enterprise.deploy.shared.ModuleType ; 32 33 import com.sun.enterprise.deployment.Application; 34 import com.sun.enterprise.deployment.archivist.ApplicationArchivist; 35 import com.sun.enterprise.deployment.archivist.Archivist; 36 import com.sun.enterprise.deployment.archivist.ArchivistFactory; 37 import com.sun.enterprise.deployment.BundleDescriptor; 38 import com.sun.enterprise.deployment.deploy.shared.AbstractArchive; 39 import com.sun.enterprise.deployment.io.DeploymentDescriptorFile; 40 import com.sun.enterprise.deployment.util.ModuleDescriptor; 41 import com.sun.enterprise.deployment.WebBundleDescriptor; 42 43 49 public class DescriptorArchivist { 50 51 52 public DescriptorArchivist() { 53 } 54 55 60 public void write(Application application, AbstractArchive out) 61 throws IOException 62 { 63 if (application.isVirtual()) { 64 ModuleDescriptor aModule = (ModuleDescriptor) application.getModules().next(); 65 Archivist moduleArchivist = ArchivistFactory.getArchivistForType(aModule.getModuleType()); 66 write(aModule.getDescriptor(), moduleArchivist, out); 67 } else { 68 70 for (Iterator modules = application.getModules();modules.hasNext();) { 72 ModuleDescriptor aModule = (ModuleDescriptor) modules.next(); 73 Archivist moduleArchivist = ArchivistFactory.getArchivistForType(aModule.getModuleType()); 74 if (aModule.getAlternateDescriptor()!=null) { 75 String runtimeDDPath = "sun-" + aModule.getAlternateDescriptor(); 77 DeploymentDescriptorFile ddFile = moduleArchivist.getConfigurationDDFile(); 78 if (ddFile!=null) { 79 OutputStream os = out.putNextEntry(runtimeDDPath); 80 ddFile.write(aModule.getDescriptor(), os); 81 out.closeEntry(); 82 } 83 } else { 84 AbstractArchive moduleArchive = out.getEmbeddedArchive(aModule.getArchiveUri()); 85 write(aModule.getDescriptor(), moduleArchivist, moduleArchive); 86 } 87 } 88 89 ApplicationArchivist archivist = new ApplicationArchivist(); 91 archivist.setDescriptor(application); 92 archivist.writeRuntimeDeploymentDescriptors(out); 93 } 94 } 95 96 101 public void write(BundleDescriptor bundle, AbstractArchive out) 102 throws IOException 103 { 104 Archivist archivist = ArchivistFactory.getArchivistForArchive(out); 105 write(bundle, archivist, out); 106 } 107 108 114 protected void write(BundleDescriptor bundle, Archivist archivist, AbstractArchive out) 115 throws IOException 116 { 117 118 archivist.setDescriptor(bundle); 119 archivist.writeRuntimeDeploymentDescriptors(out); 120 121 if (bundle.getModuleType().equals(ModuleType.WAR)) { 125 WebBundleDescriptor webBundle = (WebBundleDescriptor) bundle; 126 if (webBundle.hasWebServices()) { 127 archivist.writeStandardDeploymentDescriptors(out); 128 } 129 } 130 } 131 } 132 | Popular Tags |