KickJava   Java API By Example, From Geeks To Geeks.

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


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  * DisplayHtmlPackage, Handler for html packages
21  *
22  * @author Daniel Ockeloen (MMBased)
23  */

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

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

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

39     public static void registerPublicIDs() {
40         XMLEntityResolver.registerPublicID(PUBLIC_ID_PACKAGING_DISPLAY_HTML_1_0, "DTD_PACKAGING_DISPLAY_HTML_1_0", DisplayHtmlCreator.class);
41     }
42
43
44     /**
45      *Constructor for the DisplayHtmlCreator object
46      */

47     public DisplayHtmlCreator() {
48         cl = DisplayHtmlCreator.class;
49         prefix = "packaging_display_html";
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("display/html 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) + "_display_html_" + 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, "display", "html");
93             if (filecount == 0) {
94                 step = getNextPackageStep();
95                 step.setUserFeedBack("did't add any display 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
113     // do we need to send this to a publish provider ?
114
if (target.getPublishState()) {
115                 ProviderManager.resetSleepCounter();
116             step=getNextPackageStep();
117             step.setUserFeedBack("publishing to provider : "+target.getPublishProvider());
118             step=getNextPackageStep();
119             step.setUserFeedBack("sending file : "+target.getId()+" ...");
120         if (target.publish(newversion,step)) {
121                 step.setUserFeedBack("sending file : "+target.getId()+" ... done");
122         } else {
123                 step.setUserFeedBack("sending file : "+target.getId()+" ... failed");
124         }
125     }
126
127         step = getNextPackageStep();
128         step.setUserFeedBack("display/html packager ended : " + getErrorCount() + " errors and " + getWarningCount() + " warnings");
129
130         return true;
131     }
132
133
134     /**
135      * Description of the Method
136      *
137      * @param target Description of the Parameter
138      * @return Description of the Return Value
139      */

140     public boolean decodeItems(Target target) {
141         super.decodeItems(target);
142         decodeStringItem(target, "include");
143         decodeStringItem(target, "basedir");
144         decodeStringItem(target, "exclude");
145         return true;
146     }
147
148
149     /**
150      * Gets the xMLFile attribute of the DisplayHtmlCreator object
151      *
152      * @param target Description of the Parameter
153      * @return The xMLFile value
154      */

155     public String JavaDoc getXMLFile(Target target) {
156         String JavaDoc body = getDefaultXMLHeader(target);
157         body += getDefaultXMLMetaInfo(target);
158         body += "\t<basedir>" + getItemStringValue(target, "basedir") + "</basedir>\n";
159         body += "\t<include>" + getItemStringValue(target, "include") + "</include>\n";
160         body += "\t<exclude>" + getItemStringValue(target, "exclude") + "</exclude>\n";
161         body += getPackageDependsXML(target);
162         body += getRelatedPeopleXML("initiators", "initiator", target);
163         body += getRelatedPeopleXML("supporters", "supporter", target);
164         body += getRelatedPeopleXML("developers", "developer", target);
165         body += getRelatedPeopleXML("contacts", "contact", target);
166     if (target.getPublishProvider()!=null) {
167         if (target.getPublishState()) {
168             body+="\t<publishprovider name=\""+target.getPublishProvider()+"\" state=\"active\" sharepassword=\""+target.getPublishSharePassword()+"\" />\n";
169         } else {
170             body+="\t<publishprovider name=\""+target.getPublishProvider()+"\" state=\"inactive\" sharepassword=\""+target.getPublishSharePassword()+"\" />\n";
171         }
172     }
173         body += getDefaultXMLFooter(target);
174         return body;
175     }
176
177
178     /**
179      * Sets the defaults attribute of the DisplayHtmlCreator object
180      *
181      * @param target The new defaults value
182      */

183     public void setDefaults(Target target) {
184         target.setItem("basedir", "templates/jsp/");
185         target.setItem("include", "*");
186         target.setItem("exclude", "/CVS/");
187     }
188
189   public String JavaDoc getDefaultTargetName() {
190         return "html";
191   }
192
193 }
194
195
Popular Tags