KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > cruisecontrol > taglib > CurrentBuildStatusTag


1 /********************************************************************************
2  * CruiseControl, a Continuous Integration Toolkit
3  * Copyright (c) 2003, ThoughtWorks, Inc.
4  * 651 W Washington Ave. Suite 600
5  * Chicago, IL 60661 USA
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * + Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * + Redistributions in binary form must reproduce the above
16  * copyright notice, this list of conditions and the following
17  * disclaimer in the documentation and/or other materials provided
18  * with the distribution.
19  *
20  * + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
21  * names of its contributors may be used to endorse or promote
22  * products derived from this software without specific prior
23  * written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
29  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  ********************************************************************************/

37
38 package net.sourceforge.cruisecontrol.taglib;
39
40 import java.io.IOException JavaDoc;
41 import java.io.Writer JavaDoc;
42 import javax.servlet.jsp.JspException JavaDoc;
43
44 import net.sourceforge.cruisecontrol.BuildStatus;
45 import net.sourceforge.cruisecontrol.util.CCTagException;
46
47 /**
48  * JSP tag to display the current build status.
49  *
50  * @author Unknown
51  * @author <a HREF="mailto:jeffjensen@upstairstechnology.com">Jeff Jensen </a>
52  */

53 public class CurrentBuildStatusTag extends CruiseControlTagSupport {
54
55     private boolean insertBreaks = true;
56
57     public int doEndTag() throws JspException JavaDoc {
58         boolean isSingleProject = isSingleProject();
59         String JavaDoc logDir = getBaseLogDir();
60         String JavaDoc projectName = getProject();
61         String JavaDoc currentBuildFileName = getFileName();
62
63         String JavaDoc status = null;
64
65         if (insertBreaks) {
66             status = BuildStatus.getStatusHtml(isSingleProject, logDir, projectName, currentBuildFileName,
67                 BuildStatus.READ_ALL_LINES);
68         } else {
69             status = BuildStatus.getStatusPlain(isSingleProject, logDir, projectName, currentBuildFileName,
70                 BuildStatus.READ_ALL_LINES);
71         }
72
73         Writer JavaDoc out = getPageContext().getOut();
74
75         try {
76             out.write(status);
77         } catch (IOException JavaDoc e) {
78             err(e);
79             throw new CCTagException("Error writing status to JSP out: " + e.getMessage(), e);
80         }
81
82         return EVAL_PAGE;
83     }
84
85     public void setInsertBreaks(boolean insertBreaks) {
86         this.insertBreaks = insertBreaks;
87     }
88
89     private String JavaDoc getFileName() {
90         String JavaDoc currentBuildFileName = getContextParam("currentBuildStatusFile");
91         if (currentBuildFileName == null || currentBuildFileName.equals("")) {
92             err("CruiseControl: currentBuildStatusFile not defined in the web.xml");
93             return null;
94         }
95         return currentBuildFileName;
96     }
97 }
98
Popular Tags