00001
00027 package org.objectweb.jonas.ant.jonasbase;
00028
00029 import org.objectweb.jonas.ant.JOnASBaseTask;
00030
00035 public class Carol extends Tasks {
00036
00040 private static final String INFO = "[Carol] ";
00041
00045 private static final String PROTOCOLS_PROPERTY = "carol.protocols";
00046
00050 private static final String DEFAULT_PROTOCOLS = "jrmp";
00051
00055 private static final String DEFAULT_HOST = "localhost";
00056
00060 private static final String PROTOCOL_HEADER = "://";
00061
00065 private static final String DEFAULT_JRMP_PORT = "1099";
00066
00070 private static final String DEFAULT_JEREMIE_PORT = "2000";
00071
00075 private static final String DEFAULT_IIOP_PORT = "2001";
00076
00080 private static final String DEFAULT_CMI_PORT = "2002";
00081
00085 private static final String OPTIMIZATION_PROPERTY = "carol.jvm.rmi.local.call=";
00086
00090 private static final String OPTIMIZATION_OFF = OPTIMIZATION_PROPERTY + "false";
00091
00095 private static final String OPTIMIZATION_ON = OPTIMIZATION_PROPERTY + "true";
00096
00100 public Carol() {
00101 super();
00102 }
00103
00112 private void setURL(String protocolName, String hostName, String portNumber, String protocolUrl, String token) {
00113 String url = null;
00114
00115
00116 token = protocolName + PROTOCOL_HEADER + DEFAULT_HOST + ":" + token;
00117
00118 if (protocolUrl != null) {
00119 url = protocolUrl;
00120 } else {
00121 url = protocolName + PROTOCOL_HEADER + hostName + ":" + portNumber;
00122 }
00123 JReplace propertyReplace = new JReplace();
00124 propertyReplace.setLogInfo(INFO + "Setting URL for protocol '" + protocolName + "' to : " + url);
00125 propertyReplace.setConfigurationFile(JOnASBaseTask.CAROL_CONF_FILE);
00126 propertyReplace.setToken(token);
00127 propertyReplace.setValue(url);
00128 addTask(propertyReplace);
00129 }
00130
00135 public void setJrmpPort(String portNumber) {
00136 setURL("rmi", DEFAULT_HOST, portNumber, null, DEFAULT_JRMP_PORT);
00137 }
00138
00143 public void setJeremiePort(String portNumber) {
00144 setURL("jrmi", DEFAULT_HOST, portNumber, null, DEFAULT_JEREMIE_PORT);
00145 }
00146
00151 public void setIiopPort(String portNumber) {
00152 setURL("iiop", DEFAULT_HOST, portNumber, null, DEFAULT_IIOP_PORT);
00153 }
00154
00159 public void setCmiPort(String portNumber) {
00160 setURL("cmi", DEFAULT_HOST, portNumber, null, DEFAULT_CMI_PORT);
00161 }
00162
00167 public void setDefaultPort(String portNumber) {
00168 setJrmpPort(portNumber);
00169 setJeremiePort(portNumber);
00170 setIiopPort(portNumber);
00171 setCmiPort(portNumber);
00172 }
00173
00178 public void setProtocols(String protocols) {
00179 JReplace propertyReplace = new JReplace();
00180 propertyReplace.setConfigurationFile(JOnASBaseTask.CAROL_CONF_FILE);
00181 propertyReplace.setToken(PROTOCOLS_PROPERTY + "=" + DEFAULT_PROTOCOLS);
00182 propertyReplace.setValue(PROTOCOLS_PROPERTY + "=" + protocols);
00183 propertyReplace.setLogInfo(INFO + "Setting protocols to : " + protocols);
00184 addTask(propertyReplace);
00185 }
00186
00191 public void setJrmpOptimization(boolean enabled) {
00192
00193 if (!enabled) {
00194 return;
00195 }
00196 JReplace propertyReplace = new JReplace();
00197 propertyReplace.setConfigurationFile(JOnASBaseTask.CAROL_CONF_FILE);
00198 propertyReplace.setToken(OPTIMIZATION_OFF);
00199 propertyReplace.setValue(OPTIMIZATION_ON);
00200 propertyReplace.setLogInfo(INFO + "Enable JRMP optimization");
00201 addTask(propertyReplace);
00202 }
00203
00204 }