001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 2005-2006 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * Initial developer: Benoit Pelletier
022: * --------------------------------------------------------------------------
023: * $Id: CarolCluster.java 7936 2006-01-25 17:00:15Z sauthieg $
024: * --------------------------------------------------------------------------
025: */package org.objectweb.jonas.ant.cluster;
026:
027: import java.io.File;
028: import java.util.Iterator;
029:
030: import org.objectweb.jonas.ant.jonasbase.BaseTaskItf;
031: import org.objectweb.jonas.ant.jonasbase.Carol;
032:
033: /**
034: * Define CarolCluster task
035: * @author Benoit Pelletier
036: */
037: public class CarolCluster extends ClusterTasks {
038:
039: /**
040: * Info for the logger
041: */
042: private static final String INFO = "[CarolCluster] ";
043:
044: /**
045: * ports range
046: */
047: private String[] portRange = null;
048:
049: /**
050: * protocols
051: */
052: private String protocols = null;
053:
054: /**
055: * multicast addr
056: */
057: private String mcastAddr = null;
058:
059: /**
060: * multicast port
061: */
062: private String mcastPort = null;
063:
064: /**
065: * jrmp optimization
066: */
067: private boolean jrmpOptimization = false;
068:
069: /**
070: * Default constructor
071: */
072: public CarolCluster() {
073: super ();
074: }
075:
076: /**
077: * Set protocols
078: * @param protocols protocols to set
079: */
080: public void setProtocols(String protocols) {
081: this .protocols = protocols;
082: }
083:
084: /**
085: * Set mcastAddr
086: * @param mcastAddr multicast address to set
087: */
088: public void setMcastAddr(String mcastAddr) {
089: this .mcastAddr = mcastAddr;
090: }
091:
092: /**
093: * Set mcastPort
094: * @param mcastPort multicast port to set
095: */
096: public void setMcastPort(String mcastPort) {
097: this .mcastPort = mcastPort;
098: }
099:
100: /**
101: * Set ports range
102: * @param portRange ports range
103: */
104: public void setPortRange(String portRange) {
105: this .portRange = portRange.split(",");
106:
107: }
108:
109: /**
110: * Set jrmp optimization
111: * @param jrmpOptimization jrmp optimization
112: */
113: public void setJrmpOptimization(boolean jrmpOptimization) {
114: this .jrmpOptimization = jrmpOptimization;
115:
116: }
117:
118: /**
119: * Generates the carol tasks for each JOnAS's instances
120: */
121: public void generatesTasks() {
122:
123: int portInd = 0;
124:
125: for (int i = getDestDirSuffixIndFirst(); i <= getDestDirSuffixIndLast(); i++) {
126:
127: String destDir = getDestDir(getDestDirPrefix(), i);
128:
129: // creation of the Carol tasks
130: Carol carol = new Carol();
131: log(INFO + "tasks generation for " + destDir);
132: carol.setDefaultPort(portRange[portInd]);
133: carol.setProtocols(protocols);
134: carol.setCmiMcastAddr(mcastAddr);
135: carol.setCmiMcastPort(mcastPort);
136:
137: carol.setJrmpOptimization(jrmpOptimization);
138:
139: // set destDir for each carol task
140: for (Iterator it = carol.getTasks().iterator(); it
141: .hasNext();) {
142: BaseTaskItf task = (BaseTaskItf) it.next();
143: task.setDestDir(new File(destDir));
144: }
145:
146: addTasks(carol);
147:
148: portInd++;
149:
150: }
151: }
152: }
|