1 23 24 27 28 package com.sun.enterprise.ddgenerator.sun; 29 30 import java.io.File ; 31 import java.io.FileInputStream ; 32 import java.util.*; 33 34 import com.sun.enterprise.deployment.*; 35 import com.sun.enterprise.deployment.archivist.*; 36 import com.sun.enterprise.deployment.deploy.shared.FileArchive; 37 import com.sun.enterprise.deployment.interfaces.*; 38 39 44 45 public class Application implements DDGenerator { 46 47 private com.sun.enterprise.deployment.Application application = null; 48 private String applicationDirectory = null; 49 50 public Application() { 51 } 52 53 public Application(com.sun.enterprise.deployment.Application application, 54 String applicationDirectory) { 55 this.application = application; 56 this.applicationDirectory = applicationDirectory; 57 } 58 59 public void setApplicationDirectory(String applicationDirectory) { 60 this.applicationDirectory = applicationDirectory; 61 } 62 63 public void setDescriptor(com.sun.enterprise.deployment.Descriptor descriptor) { 64 this.application = (com.sun.enterprise.deployment.Application) descriptor; 65 } 66 67 public void generate() { 68 69 if (application == null) return; 70 71 java.util.Set ejbBundleDescriptors = application.getEjbBundleDescriptors(); 72 73 75 boolean generate = false; 76 77 for(Iterator it=ejbBundleDescriptors.iterator(); it.hasNext(); ) { 78 EjbBundleDescriptor ejbBundleDescriptor = (EjbBundleDescriptor) it.next(); 79 com.sun.enterprise.ddgenerator.sun.EjbModule ejbModule = 80 new com.sun.enterprise.ddgenerator.sun.EjbModule(ejbBundleDescriptor, 81 applicationDirectory); 82 if (! ejbModule.hasSunDescriptor()) { 83 generate = true; 84 } 85 } 86 87 if (generate == false) return; 88 89 91 for(Iterator it=ejbBundleDescriptors.iterator(); it.hasNext(); ) { 92 EjbBundleDescriptor ejbBundleDescriptor = (EjbBundleDescriptor) it.next(); 93 com.sun.enterprise.ddgenerator.sun.EjbModule ejbModule = 94 new com.sun.enterprise.ddgenerator.sun.EjbModule(ejbBundleDescriptor, 95 applicationDirectory); 96 ejbModule.backupSunDescriptor(); 97 } 98 99 101 for(Iterator it=ejbBundleDescriptors.iterator(); it.hasNext(); ) { 102 EjbBundleDescriptor ejbBundleDescriptor = (EjbBundleDescriptor) it.next(); 103 com.sun.enterprise.ddgenerator.sun.EjbModule ejbModule = 104 new com.sun.enterprise.ddgenerator.sun.EjbModule(ejbBundleDescriptor, 105 applicationDirectory); 106 ejbModule.generate(); 107 } 108 109 111 java.util.Vector ejbRefDescriptorsV = application.getEjbReferenceDescriptors(); 112 113 if (ejbRefDescriptorsV == null) { 114 save(); 115 return; 116 } 117 118 int ejbRefDescriptorsSize = ejbRefDescriptorsV.size(); 119 120 for (int i=0; i<ejbRefDescriptorsSize; i++) { 121 EjbReferenceDescriptor ejbRefDescriptor = 122 (EjbReferenceDescriptor) ejbRefDescriptorsV.get(i); 123 updateEjbRefDescriptorJndiName(ejbRefDescriptor, ejbBundleDescriptors); 124 } 125 126 128 save(); 129 130 } 131 132 private void updateEjbRefDescriptorJndiName(EjbReferenceDescriptor ejbRefDescriptor, 133 java.util.Set ejbBundleDescriptors) { 134 135 for(Iterator it=ejbBundleDescriptors.iterator(); it.hasNext(); ) { 136 137 EjbBundleDescriptor ejbBundleDescriptor = (EjbBundleDescriptor) it.next(); 138 139 java.util.Set ejbDescriptors = ejbBundleDescriptor.getEjbs(); 140 141 for (Iterator jt = ejbDescriptors.iterator(); jt.hasNext();) { 142 143 EjbDescriptor ejbDescriptor = (EjbDescriptor) jt.next(); 144 if ((ejbDescriptor.getHomeClassName()).equals(ejbRefDescriptor.getHomeClassName())) { 145 ejbRefDescriptor.setJndiName(ejbDescriptor.getJndiName()); 146 return; 147 } 148 } 149 } 150 151 } 152 153 private void save() { 154 155 FileArchive in = new FileArchive(); 156 157 try { 158 in.open(applicationDirectory); 159 } catch (java.io.IOException ioe) { 160 } 161 162 DescriptorArchivist archivist = new DescriptorArchivist(); 163 164 try { 165 archivist.write(application, in); 166 } catch (java.io.IOException ioe) { 167 } 168 169 } 170 171 public static void main (String args[]) { 172 173 String appDir = "/home/sreeni/TEMP/stateless-converter_1"; 174 175 System.out.println("Application"); 176 177 System.out.println("Press enter to continue ..."); 178 try { 179 System.in.read(); 180 } catch (java.io.IOException ioe) { 181 } 182 183 FileArchive in = new FileArchive(); 184 185 try { 186 in.open(appDir); 187 } catch (java.io.IOException ioe) { 188 } 189 190 191 ApplicationArchivist archivist = new ApplicationArchivist(); 192 archivist.setXMLValidation(false); 193 archivist.setClassLoader(null); 194 com.sun.enterprise.deployment.Application application = null; 195 try { 196 application = (com.sun.enterprise.deployment.Application) archivist.open(in); 197 } catch (java.io.IOException ioe) { 198 } catch (org.xml.sax.SAXParseException saxpe) { 199 } 200 201 com.sun.enterprise.ddgenerator.sun.Application app = 202 new com.sun.enterprise.ddgenerator.sun.Application(application, appDir); 203 204 app.generate(); 205 } 206 207 } 208 | Popular Tags |