KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > applications > packaging > projects > creators > EditorWizardCreator


1 /*
2  * This software is OSI Certified Open Source Software.
3  * OSI Certified is a certification mark of the Open Source Initiative.
4  * The license (Mozilla version 1.0) can be read at the MMBase site.
5  * See http://www.MMBase.org/license
6  */

7 package org.mmbase.applications.packaging.projects.creators;
8
9 import java.io.FileOutputStream JavaDoc;
10 import java.util.Date JavaDoc;
11 import java.util.jar.JarOutputStream JavaDoc;
12 import java.util.jar.Manifest JavaDoc;
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 /**
20  * EditorWizardPackage, Handler for editwizards packages
21  *
22  * @author Daniel Ockeloen (MMBased)
23  */

24 public class EditorWizardCreator extends BasicCreator implements CreatorInterface {
25
26     /**
27      * Description of the Field
28      */

29     public final static String JavaDoc DTD_PACKAGING_EDITOR_WIZARD_1_0 = "packaging_editor_wizard_1_0.dtd";
30     /**
31      * Description of the Field
32      */

33     public final static String JavaDoc PUBLIC_ID_PACKAGING_EDITOR_WIZARD_1_0 = "-//MMBase//DTD packaging_editor_wizard config 1.0//EN";
34
35
36     /**
37      * Description of the Method
38      */

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     /**
45      *Constructor for the EditorWizardCreator object
46      */

47     public EditorWizardCreator() {
48         cl = EditorWizardCreator.class;
49         prefix = "packaging_editor_wizard";
50     }
51
52
53     /**
54      * Description of the Method
55      *
56      * @param target Description of the Parameter
57      * @param newversion Description of the Parameter
58      * @return Description of the Return Value
59      */

60     public boolean createPackage(Target target, int newversion) {
61
62         clearPackageSteps();
63
64         // step1
65
packageStep step = getNextPackageStep();
66         step.setUserFeedBack("editor/wizard packager started");
67
68         String JavaDoc basedir = target.getBaseDir() + getItemStringValue(target, "basedir");
69         String JavaDoc include = getItemStringValue(target, "include");
70         String JavaDoc 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 JavaDoc newfilename = getBuildPath() + getName(target).replace(' ', '_') + "@" + getMaintainer(target) + "_editor_wizard_" + newversion;
80         try {
81             JarOutputStream JavaDoc jarfile = new JarOutputStream JavaDoc(new FileOutputStream JavaDoc(newfilename + ".tmp"), new Manifest JavaDoc());
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 JavaDoc e) {
100             e.printStackTrace();
101         }
102
103
104         // update the build file to reflect the last build, should only be done if no errors
105
if (getErrorCount() == 0) {
106         if (renameTempFile(newfilename)) {
107                 updatePackageTime(target, new Date JavaDoc(), newversion);
108                 target.save();
109         }
110         }
111
112     // do we need to send this to a publish provider ?
113
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     /**
133      * Description of the Method
134      *
135      * @param target Description of the Parameter
136      * @return Description of the Return Value
137      */

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     /**
148      * Gets the xMLFile attribute of the EditorWizardCreator object
149      *
150      * @param target Description of the Parameter
151      * @return The xMLFile value
152      */

153     public String JavaDoc getXMLFile(Target target) {
154         String JavaDoc 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     /**
177      * Sets the defaults attribute of the EditorWizardCreator object
178      *
179      * @param target The new defaults value
180      */

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 JavaDoc getDefaultTargetName() {
188         return "editwizard";
189   }
190
191 }
192
193
Popular Tags