01: /*
02: * ChainBuilder ESB
03: * Visual Enterprise Integration
04: *
05: * Copyright (C) 2008 Bostech Corporation
06: *
07: * This program is free software; you can redistribute it and/or modify it
08: * under the terms of the GNU General Public License as published by the
09: * Free Software Foundation; either version 2 of the License, or (at your option)
10: * any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15: * for more details.
16: *
17: * You should have received a copy of the GNU General Public License along with
18: * this program; if not, write to the Free Software Foundation, Inc.,
19: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20: *
21: *
22: * $Id$
23: */
24: package com.bostechcorp.cbesb.build.ant;
25:
26: import java.io.File;
27: import java.io.IOException;
28:
29: import org.apache.tools.ant.BuildException;
30: import org.apache.tools.ant.Task;
31:
32: import com.bostechcorp.cbesb.build.ant.util.UpToDateCache;
33:
34: public class IsProjectUpToDateTask extends Task {
35:
36: private String cacheFile;
37: private String projectName;
38: private String returnProperty;
39:
40: public IsProjectUpToDateTask() {
41:
42: }
43:
44: public void setCacheFile(String cacheFile) {
45: this .cacheFile = cacheFile;
46: }
47:
48: public void setProjectName(String projectName) {
49: this .projectName = projectName;
50: }
51:
52: public void setReturnProperty(String returnProperty) {
53: this .returnProperty = returnProperty;
54: }
55:
56: public void execute() throws BuildException {
57: if (cacheFile == null) {
58: throw new BuildException(
59: "Missing required cacheFile attribute.");
60: }
61: if (projectName == null) {
62: throw new BuildException(
63: "Missing required projectName attribute.");
64: }
65: if (returnProperty == null) {
66: throw new BuildException(
67: "Missing required returnProperty attribute.");
68: }
69: File cache = new File(cacheFile);
70: UpToDateCache upToDateCache = new UpToDateCache(cache);
71: try {
72: boolean status = upToDateCache
73: .isProjectUpToDate(projectName);
74: getProject().setProperty(returnProperty,
75: Boolean.toString(status));
76: } catch (IOException e) {
77: throw new BuildException("Exception accessing cache file: "
78: + e.getLocalizedMessage());
79: }
80: }
81: }
|