001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Aurore PENAULT
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023: package salomeTMF_plug.cronExec;
024:
025: import java.util.ArrayList;
026: import java.util.Timer;
027: import java.util.TimerTask;
028:
029: import org.objectweb.salome_tmf.api.Util;
030: import org.objectweb.salome_tmf.api.data.ExecutionWrapper;
031: import org.objectweb.salome_tmf.data.Campaign;
032: import org.objectweb.salome_tmf.data.Execution;
033: import org.objectweb.salome_tmf.ihm.main.datawrapper.DataModel;
034: import org.objectweb.salome_tmf.ihm.main.datawrapper.TestMethods;
035:
036: /**
037: * TODO To change the template for this generated type comment go to
038: * Window - Preferences - Java - Code Style - Code Templates
039: */
040: public class ExecTask extends TimerTask {
041:
042: Timer pTimer;
043:
044: int nbOcc;
045:
046: int tmpNbOcc;
047:
048: int nbLastExecResult = -1;
049:
050: int nbWarning = 0;
051:
052: ArrayList execWrapperList;
053:
054: ArrayList execList;
055:
056: boolean stopOnError;
057:
058: /**
059: *
060: */
061: public ExecTask(ArrayList execWrapList, Timer timer,
062: int nbOccurences, boolean stopOnError) {
063: super ();
064:
065: pTimer = timer;
066: nbOcc = nbOccurences;
067: tmpNbOcc = 0;
068: execWrapperList = execWrapList;
069: this .stopOnError = stopOnError;
070: execList = null;
071: }
072:
073: /* (non-Javadoc)
074: * @see java.lang.Runnable#run()
075: */
076: public void run() {
077: ExecutionWrapper pExecutionWrapper;
078: if (tmpNbOcc >= nbOcc) {
079: pTimer.cancel();
080: DataModel.reloadFromBase(true);
081: return;
082: }
083:
084: if (tmpNbOcc == 0) {
085: DataModel.reloadFromBase(true);
086: int size = execWrapperList.size();
087: if (execList == null) {
088: execList = new ArrayList();
089: for (int i = 0; i < size; i++) {
090: Execution pExecution;
091: pExecutionWrapper = (ExecutionWrapper) execWrapperList
092: .get(i);
093: Campaign pCamp = DataModel.getCurrentProject()
094: .getCampaignFromModel(
095: pExecutionWrapper.getCampId());
096: pExecution = pCamp
097: .getExecutionFromModel(pExecutionWrapper
098: .getName());
099: execList.add(i, pExecution);
100: }
101: nbLastExecResult = ((Execution) execList.get(size - 1))
102: .getExecutionResultListFromModel().size();
103: }
104: } else {
105: int size = execList.size();
106: int tmp_nbLastExecResult = ((Execution) execList
107: .get(size - 1)).getExecutionResultListFromModel()
108: .size();
109: if (tmp_nbLastExecResult < nbLastExecResult) {
110: nbWarning++;
111: Util
112: .log("[ExecTask:run] Warning last schedule seem to be not finished");
113: if (nbWarning == 3) {
114: pTimer.cancel();
115: DataModel.reloadFromBase(true);
116: }
117: return;
118: } else {
119: nbWarning = 0;
120: }
121:
122: }
123:
124: /*
125: int size = execWrapperList.size();
126: if (execList == null){
127: execList = new ArrayList();
128: for (int i = 0 ; i< size ; i++ ) {
129: Execution pExecution;
130: pExecutionWrapper = (ExecutionWrapper) execWrapperList.get(i);
131: Campaign pCamp = TestData.getCampaign(pExecutionWrapper.getCampId());
132: pExecution = pCamp.getExecution(pExecutionWrapper.getName());
133: execList.add(i, pExecution);
134: }
135: nbLastExecResult = ((Execution)execList.get(size-1)).getExecutionResultList().size();
136: }
137: */
138:
139: TestMethods.runExecution(execList, null, stopOnError, false);
140: tmpNbOcc++;
141: nbLastExecResult++;
142:
143: if (nbOcc == 1)
144: pTimer.cancel();
145: }
146:
147: }
|