1 7 package org.mmbase.applications.packaging.projects.creators; 8 9 import java.io.FileOutputStream ; 10 import java.util.Date ; 11 import java.util.jar.JarOutputStream ; 12 import java.util.jar.Manifest ; 13 14 import org.mmbase.applications.packaging.ProviderManager; 15 import org.mmbase.applications.packaging.projects.Target; 16 import org.mmbase.applications.packaging.projects.packageStep; 17 import org.mmbase.util.XMLEntityResolver; 18 19 24 public class EditorWizardCreator extends BasicCreator implements CreatorInterface { 25 26 29 public final static String DTD_PACKAGING_EDITOR_WIZARD_1_0 = "packaging_editor_wizard_1_0.dtd"; 30 33 public final static String PUBLIC_ID_PACKAGING_EDITOR_WIZARD_1_0 = "-//MMBase//DTD packaging_editor_wizard config 1.0//EN"; 34 35 36 39 public static void registerPublicIDs() { 40 XMLEntityResolver.registerPublicID(PUBLIC_ID_PACKAGING_EDITOR_WIZARD_1_0, "DTD_EDITOR_WIZARD_HTML_1_0", EditorWizardCreator.class); 41 } 42 43 44 47 public EditorWizardCreator() { 48 cl = EditorWizardCreator.class; 49 prefix = "packaging_editor_wizard"; 50 } 51 52 53 60 public boolean createPackage(Target target, int newversion) { 61 62 clearPackageSteps(); 63 64 packageStep step = getNextPackageStep(); 66 step.setUserFeedBack("editor/wizard packager started"); 67 68 String basedir = target.getBaseDir() + getItemStringValue(target, "basedir"); 69 String include = getItemStringValue(target, "include"); 70 String exclude = getItemStringValue(target, "exclude"); 71 72 step = getNextPackageStep(); 73 step.setUserFeedBack("used basedir : " + basedir); 74 step = getNextPackageStep(); 75 step.setUserFeedBack("used include : " + include); 76 step = getNextPackageStep(); 77 step.setUserFeedBack("used exclude : " + exclude); 78 79 String newfilename = getBuildPath() + getName(target).replace(' ', '_') + "@" + getMaintainer(target) + "_editor_wizard_" + newversion; 80 try { 81 JarOutputStream jarfile = new JarOutputStream (new FileOutputStream (newfilename + ".tmp"), new Manifest ()); 82 83 step = getNextPackageStep(); 84 step.setUserFeedBack("creating package.xml file..."); 85 createPackageMetaFile(jarfile, target, newversion); 86 step.setUserFeedBack("creating package.xml file...done"); 87 step = getNextPackageStep(); 88 step.setUserFeedBack("creating depends.xml file..."); 89 createDependsMetaFile(jarfile, target); 90 step.setUserFeedBack("creating depends.xml file...done"); 91 92 int filecount = addFiles(jarfile, basedir, include, exclude, "editor", "wizard"); 93 if (filecount == 0) { 94 step = getNextPackageStep(); 95 step.setUserFeedBack("did't add any wizard files, no files found"); 96 step.setType(packageStep.TYPE_WARNING); 97 } 98 jarfile.close(); 99 } catch (Exception e) { 100 e.printStackTrace(); 101 } 102 103 104 if (getErrorCount() == 0) { 106 if (renameTempFile(newfilename)) { 107 updatePackageTime(target, new Date (), newversion); 108 target.save(); 109 } 110 } 111 112 if (target.getPublishState()) { 114 ProviderManager.resetSleepCounter(); 115 step=getNextPackageStep(); 116 step.setUserFeedBack("publishing to provider : "+target.getPublishProvider()); 117 step=getNextPackageStep(); 118 step.setUserFeedBack("sending file : "+target.getId()+" ..."); 119 if (target.publish(newversion,step)) { 120 step.setUserFeedBack("sending file : "+target.getId()+" ... done"); 121 } else { 122 step.setUserFeedBack("sending file : "+target.getId()+" ... failed"); 123 } 124 } 125 126 step = getNextPackageStep(); 127 step.setUserFeedBack("editor/wizard packager ended : " + getErrorCount() + " errors and " + getWarningCount() + " warnings"); 128 return true; 129 } 130 131 132 138 public boolean decodeItems(Target target) { 139 super.decodeItems(target); 140 decodeStringItem(target, "include"); 141 decodeStringItem(target, "basedir"); 142 decodeStringItem(target, "exclude"); 143 return true; 144 } 145 146 147 153 public String getXMLFile(Target target) { 154 String body = getDefaultXMLHeader(target); 155 body += getDefaultXMLMetaInfo(target); 156 body += "\t<basedir>" + getItemStringValue(target, "basedir") + "</basedir>\n"; 157 body += "\t<include>" + getItemStringValue(target, "include") + "</include>\n"; 158 body += "\t<exclude>" + getItemStringValue(target, "exclude") + "</exclude>\n"; 159 body += getPackageDependsXML(target); 160 body += getRelatedPeopleXML("initiators", "initiator", target); 161 body += getRelatedPeopleXML("supporters", "supporter", target); 162 body += getRelatedPeopleXML("developers", "developer", target); 163 body += getRelatedPeopleXML("contacts", "contact", target); 164 if (target.getPublishProvider()!=null) { 165 if (target.getPublishState()) { 166 body+="\t<publishprovider name=\""+target.getPublishProvider()+"\" state=\"active\" sharepassword=\""+target.getPublishSharePassword()+"\" />\n"; 167 } else { 168 body+="\t<publishprovider name=\""+target.getPublishProvider()+"\" state=\"inactive\" sharepassword=\""+target.getPublishSharePassword()+"\" />\n"; 169 } 170 } 171 body += getDefaultXMLFooter(target); 172 return body; 173 } 174 175 176 181 public void setDefaults(Target target) { 182 target.setItem("basedir", "mmbase/edit/wizard/"); 183 target.setItem("include", "*"); 184 target.setItem("exclude", "/CVS/"); 185 } 186 187 public String getDefaultTargetName() { 188 return "editwizard"; 189 } 190 191 } 192 193 | Popular Tags |