pero 2005/07/01 04:46:51 Modified: catalina/src/share/org/apache/catalina/ant/jmx JMXAccessorCondition.java JMXAccessorTask.java Log: Add if and unless Fix docs Revision Changes Path 1.2 +103 -37 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorCondition.java Index: JMXAccessorCondition.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorCondition.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- JMXAccessorCondition.java 30 Jun 2005 13:01:27 -0000 1.1 +++ JMXAccessorCondition.java 1 Jul 2005 11:46:51 -0000 1.2 @@ -88,7 +88,9 @@ private String operation = "==" ; private String type = "long" ; private String ref = "jmx.server"; - + private String unlessCondition; + private String ifCondition; + // ----------------------------------------------------- Instance Info /** @@ -240,7 +242,41 @@ public void setRef(String refId) { this.ref = refId; } - + /** + * @return Returns the ifCondition. + */ + public String getIf() { + return ifCondition; + } + /** + * Only fail if a property of the given name exists in the current project. + * @param c property name + */ + public void setIf(String c) { + ifCondition = c; + } + /** + * @return Returns the unlessCondition. + */ + public String getUnless() { + return unlessCondition; + } + + /** + * Only fail if a property of the given name does not + * exist in the current project. + * @param c property name + */ + public void setUnless(String c) { + unlessCondition = c; + } + + /** + * Get JMXConnection (default look at <em>jmx.server</em> project reference from jmxOpen Task) + * @return active JMXConnection + * @throws MalformedURLException + * @throws IOException + */ protected MBeanServerConnection getJMXConnection() throws MalformedURLException, IOException { return JMXAccessorTask.accessJMXConnection( @@ -250,6 +286,7 @@ } /** + * Get value from MBeans attribute * @return */ protected String accessJMXValue() { @@ -264,7 +301,34 @@ return null; } - // This method evaluates the condition + /** + * test the if condition + * @return true if there is no if condition, or the named property exists + */ + protected boolean testIfCondition() { + if (ifCondition == null || "".equals(ifCondition)) { + return true; + } + return getProject().getProperty(ifCondition) != null; + } + + /** + * test the unless condition + * @return true if there is no unless condition, + * or there is a named property but it doesn't exist + */ + protected boolean testUnlessCondition() { + if (unlessCondition == null || "".equals(unlessCondition)) { + return true; + } + return getProject().getProperty(unlessCondition) == null; + } + + /** + * This method evaluates the condition + * It support for operation ">,>=,<,<=" the types <code>long</code> and <code>double</code>. + * @return expression <em>jmxValue</em> <em>operation</em> <em>value</em> + */ public boolean eval() { if (operation == null) { throw new BuildException("operation attribute is not set"); @@ -276,43 +340,45 @@ throw new BuildException( "Must specify a 'attribute', name for equals condition"); } - //FIXME check url or host/parameter - String jmxValue = accessJMXValue(); - String op = getOperation() ; - if(jmxValue != null) { - if("==".equals(op)) { - return jmxValue.equals(value); - } else if("!=".equals(op)) { - return !jmxValue.equals(value); - } else { - if("long".equals(type)) { - long jvalue = Long.parseLong(jmxValue); - long lvalue = Long.parseLong(value); - if(">".equals(op)) { - return jvalue > lvalue ; - } else if(">=".equals(op)) { - return jvalue >= lvalue ; - } else if("<".equals(op)) { - return jvalue < lvalue ; - } else if ("<=".equals(op)) { - return jvalue <= lvalue; - } - } else if("double".equals(type)) { - double jvalue = Double.parseDouble(jmxValue); - double dvalue = Double.parseDouble(value); - if(">".equals(op)) { - return jvalue > dvalue ; - } else if(">=".equals(op)) { - return jvalue >= dvalue ; - } else if("<".equals(op)) { - return jvalue < dvalue ; - } else if ("<=".equals(op)) { - return jvalue <= dvalue; + if (testIfCondition() && testUnlessCondition()) { + String jmxValue = accessJMXValue(); + if (jmxValue != null) { + String op = getOperation(); + if ("==".equals(op)) { + return jmxValue.equals(value); + } else if ("!=".equals(op)) { + return !jmxValue.equals(value); + } else { + if ("long".equals(type)) { + long jvalue = Long.parseLong(jmxValue); + long lvalue = Long.parseLong(value); + if (">".equals(op)) { + return jvalue > lvalue; + } else if (">=".equals(op)) { + return jvalue >= lvalue; + } else if ("<".equals(op)) { + return jvalue < lvalue; + } else if ("<=".equals(op)) { + return jvalue <= lvalue; + } + } else if ("double".equals(type)) { + double jvalue = Double.parseDouble(jmxValue); + double dvalue = Double.parseDouble(value); + if (">".equals(op)) { + return jvalue > dvalue; + } else if (">=".equals(op)) { + return jvalue >= dvalue; + } else if ("<".equals(op)) { + return jvalue < dvalue; + } else if ("<=".equals(op)) { + return jvalue <= dvalue; + } } } } + return false; } - return false; + return true; } } 1.3 +1 -7 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java Index: JMXAccessorTask.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JMXAccessorTask.java 30 Jun 2005 13:01:27 -0000 1.2 +++ JMXAccessorTask.java 1 Jul 2005 11:46:51 -0000 1.3 @@ -285,12 +285,6 @@ public String getUnless() { return unlessCondition; } - /** - * @param unlessCondition The unlessCondition to set. - */ - public void setUnlessCondition(String unlessCondition) { - this.unlessCondition = unlessCondition; - } /** * Only fail if a property of the given name does not
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]