User: ejort Date: 02/03/15 12:26:39 Modified: src/main/javax/management AndQueryExp.java BetweenQueryExp.java BinaryComparisonQueryExp.java BinaryOpValueExp.java InQueryExp.java MBeanServerNotification.java MatchQueryExp.java NotQueryExp.java OrQueryExp.java Log: More tests, completed basic unit tests RelationService and Query Revision Changes Path 1.2 +7 -1 jmx/src/main/javax/management/AndQueryExp.java Index: AndQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/AndQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AndQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ AndQueryExp.java 15 Mar 2002 20:26:38 -0000 1.2 @@ -12,9 +12,15 @@ * An And Query Expression.<p> * * Returns true only when both expressions are true. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Fix the human readable expression + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class AndQueryExp implements QueryExp @@ -72,7 +78,7 @@ public String toString() { - return new String("(" +first.toString() + " && " + second.toString()) + ")"; + return new String("(" +first.toString() + ") && (" + second.toString()) + ")"; } // Protected --------------------------------------------------- 1.2 +8 -2 jmx/src/main/javax/management/BetweenQueryExp.java Index: BetweenQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/BetweenQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BetweenQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ BetweenQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -13,9 +13,15 @@ * * Returns true only when the test expression is between the lower and * upper bounds inclusive. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Fix the human readable expression + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class BetweenQueryExp implements QueryExp @@ -108,8 +114,8 @@ public String toString() { - return new String("(" +lower.toString() + " <= " + test.toString() + - " <= " + upper.toString()) + ")"; + return new String("(" +lower.toString() + ") <= (" + test.toString() + + ") <= (" + upper.toString()) + ")"; } // Protected --------------------------------------------------- 1.2 +33 -2 jmx/src/main/javax/management/BinaryComparisonQueryExp.java Index: BinaryComparisonQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/BinaryComparisonQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- BinaryComparisonQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ BinaryComparisonQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -7,10 +7,16 @@ package javax.management; /** - * A Binary Comparison query.<p> + * A Binary Comparison query. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Added human readable string representation. + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class BinaryComparisonQueryExp extends QueryExpSupport @@ -127,7 +133,32 @@ second.setMBeanServer(server); } - // Y overrides ------------------------------------------------- + // Object overrides -------------------------------------------- + + public String toString() + { + StringBuffer buffer = new StringBuffer(); + buffer.append("("); + buffer.append(first); + buffer.append(")"); + switch (operation) + { + case Query.GT: + buffer.append(" > "); break; + case Query.GE: + buffer.append(" >= "); break; + case Query.LT: + buffer.append(" < "); break; + case Query.LE: + buffer.append(" <= "); break; + case Query.EQ: + buffer.append(" == "); + } + buffer.append("("); + buffer.append(second); + buffer.append(")"); + return buffer.toString(); + } // Protected --------------------------------------------------- 1.3 +32 -3 jmx/src/main/javax/management/BinaryOpValueExp.java Index: BinaryOpValueExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/BinaryOpValueExp.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- BinaryOpValueExp.java 22 Feb 2002 16:44:32 -0000 1.2 +++ BinaryOpValueExp.java 15 Mar 2002 20:26:39 -0000 1.3 @@ -7,10 +7,16 @@ package javax.management; /** - * A Binary Operation that is an arguement to a query.<p> + * A Binary Operation that is an arguement to a query. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Added human readable string representation. + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ /*package*/ class BinaryOpValueExp extends ValueExpSupport @@ -104,7 +110,30 @@ second.setMBeanServer(server); } - // Y overrides ------------------------------------------------- + // Object overrides -------------------------------------------- + + public String toString() + { + StringBuffer buffer = new StringBuffer(); + buffer.append("("); + buffer.append(first); + buffer.append(")"); + switch (operation) + { + case Query.PLUS: + buffer.append(" + "); break; + case Query.MINUS: + buffer.append(" - "); break; + case Query.TIMES: + buffer.append(" * "); break; + case Query.DIV: + buffer.append(" / "); + } + buffer.append("("); + buffer.append(second); + buffer.append(")"); + return buffer.toString(); + } // Protected --------------------------------------------------- 1.2 +11 -3 jmx/src/main/javax/management/InQueryExp.java Index: InQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/InQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- InQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ InQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -12,9 +12,17 @@ * An In Query Expression.<p> * * Returns true only when any of the values are match. + * + * Returns true only when both expressions are true. + * + * <p><b>Revisions:</b> + * <p><b>20020315 Adrian Brock:</b> + * <ul> + * <li>Don't put ; on the end of if statements :-) + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class InQueryExp implements QueryExp @@ -68,21 +76,21 @@ if (calcTest instanceof NumberValueExp) { if (((NumberValueExp)calcTest).getDoubleValue() == - ((NumberValueExp)calcList).getDoubleValue()); + ((NumberValueExp)calcList).getDoubleValue()) return true; } // String else if (calcTest instanceof StringValueExp) { if (((StringValueExp)calcTest).toString().equals( - ((StringValueExp)calcList).toString())); + ((StringValueExp)calcList).toString())) return true; } // Single Value, includes Boolean else if (calcTest instanceof SingleValueExpSupport) { if (((SingleValueExpSupport)calcTest).getValue().equals( - ((SingleValueExpSupport)calcList).getValue())); + ((SingleValueExpSupport)calcList).getValue())) return true; } } 1.2 +74 -11 jmx/src/main/javax/management/MBeanServerNotification.java Index: MBeanServerNotification.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MBeanServerNotification.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MBeanServerNotification.java 5 Dec 2001 14:18:34 -0000 1.1 +++ MBeanServerNotification.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -1,25 +1,88 @@ /* - * LGPL + * JBoss, the OpenSource J2EE webOS + * + * Distributable under LGPL license. + * See terms of license at gnu.org. */ package javax.management; -public class MBeanServerNotification extends Notification { +/** + * A notification sent by the MBeanServer delegate when an MBean is + * registered or unregisterd.<p> + * + * NOTE: The values from the spec are wrong, the real values are<b> + * REGISTRATION_NOTIFICATION = "JMX.mbean.registered"<b> + * UNREGISTRATION_NOTIFICATION = "JMX.mbean.registered" + * + * <p><b>Revisions:</b> + * <p><b>20020315 Adrian Brock:</b> + * <ul> + * <li>Spec has wrong values for notification values + * </ul> + * + * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. + * @version $Revision: 1.2 $ + */ +public class MBeanServerNotification + extends Notification +{ + // Constants --------------------------------------------------- + + /** + * Notification type sent at MBean registration + */ + public static final java.lang.String REGISTRATION_NOTIFICATION = "JMX.mbean.registered"; + + /** + * Notification type sent at MBean registration + */ + public static final java.lang.String UNREGISTRATION_NOTIFICATION = "JMX.mbean.unregistered"; + + // Attributes -------------------------------------------------- + + /** + * The object name of the mbean being (un)registered + */ + private ObjectName mbeanName = null; - public static final java.lang.String REGISTRATION_NOTIFICATION = "jmx.mbean.registered"; - public static final java.lang.String UNREGISTRATION_NOTIFICATION = "jmx.mbean.unregistered"; + // Static ------------------------------------------------------ - // name of the mbean registered/unregistered - private ObjectName mbeanName = null; - - public MBeanServerNotification(String type, Object source, long sequenceNumber, ObjectName objectName) { - super(type, source, sequenceNumber); + // Constructors ------------------------------------------------ + + /** + * Construct a new MBeanServer notification + * + * @param type the type of notification to construct + * @param source the source of the notification + * @param sequence the sequence number of the notification + * @param objectName the object name of the mbean being (un)registered + */ + public MBeanServerNotification(String type, Object source, + long sequence, ObjectName objectName) + { + super(type, source, sequence); this.mbeanName = objectName; } + + // Public ------------------------------------------------------ - public ObjectName getMBeanName() { + /** + * Get the object name of the mbean being (un)registered + * + * @return the object name + */ + public ObjectName getMBeanName() + { return mbeanName; } + // X Implementation -------------------------------------------- -} + // Y Overrides ------------------------------------------------- + + // Protected --------------------------------------------------- + // Private ----------------------------------------------------- + + // Inner classes ----------------------------------------------- +} 1.3 +55 -28 jmx/src/main/javax/management/MatchQueryExp.java Index: MatchQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/MatchQueryExp.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MatchQueryExp.java 1 Mar 2002 19:25:57 -0000 1.2 +++ MatchQueryExp.java 15 Mar 2002 20:26:39 -0000 1.3 @@ -11,15 +11,16 @@ /** * A Match Query Expression.<p> * - * Returns true when an attribute value matches the string expression.<p> + * Returns true when an attribute value matches the string expression. * - * REVIEW: This implementation currently dynamic constructs a regular - * expression on every invocation of apply. Is this necessary? - * If spec allows dynamic patterns (I think it does) some - * caching of the regular expressions is required (NOT DONE). + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Fixed most of the escaping + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ */ /*package*/ class MatchQueryExp implements QueryExp @@ -38,6 +39,11 @@ */ StringValueExp string; + /** + * Regular Expression + */ + UncheckedRE re; + // Static ------------------------------------------------------ // Constructors ------------------------------------------------ @@ -52,34 +58,30 @@ { this.attr = attr; this.string = string; - } - - // Public ------------------------------------------------------ - - // QueryExp implementation ------------------------------------- - public boolean apply(ObjectName name) - throws BadStringOperationException, - BadBinaryOpValueExpException, - BadAttributeValueExpException, - InvalidApplicationException - { - ValueExp calcAttr = attr.apply(name); - ValueExp calcString = string.apply(name); - - if (calcAttr instanceof StringValueExp) + // Translate the pattern to a regexp + StringBuffer buffer = new StringBuffer(); + char[] chars = string.toString().toCharArray(); + boolean escaping = false; + for (int i=0; i < chars.length; i++) { - // Translate the pattern to a regexp (REVIEW: Caching required) - StringBuffer buffer = new StringBuffer(); - char[] chars = string.toString().toCharArray(); - for (int i=0; i < chars.length; i++) + // Turn on escaping + if (chars[i] == '\\' && escaping == false) + escaping = true; + else { // Match any character - if (chars[i] == '?') + if (chars[i] == '?' && escaping == false) buffer.append("(?:.)"); + // A literal question mark + else if (chars[i] == '?') + buffer.append("\\?"); // Match any number of characters including none - else if (chars[i] == '*') + else if (chars[i] == '*' && escaping == false) buffer.append("(?:.)*"); + // A literal asterisk + else if (chars[i] == '*') + buffer.append("\\*"); // The hat character is literal else if (chars[i] == '^') buffer.append("\\^"); @@ -95,12 +97,37 @@ // The vertical line character is literal else if (chars[i] == '|') buffer.append("\\|"); + // Escaping the open bracket + else if (chars[i] == '[' && escaping == true) + buffer.append("\\["); // REVIEW: There are other more complicated expressions to escape else buffer.append(chars[i]); + escaping = false; } + } + // REVIEW: Should this be an error? + if (escaping == true) + buffer.append("\\\\"); - UncheckedRE re = new UncheckedRE(buffer); + re = new UncheckedRE(buffer); + } + + // Public ------------------------------------------------------ + + // QueryExp implementation ------------------------------------- + + public boolean apply(ObjectName name) + throws BadStringOperationException, + BadBinaryOpValueExpException, + BadAttributeValueExpException, + InvalidApplicationException + { + ValueExp calcAttr = attr.apply(name); + ValueExp calcString = string.apply(name); + + if (calcAttr instanceof StringValueExp) + { return re.isMatch(((StringValueExp)calcAttr).toString()); } // Correct? 1.2 +7 -1 jmx/src/main/javax/management/NotQueryExp.java Index: NotQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/NotQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- NotQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ NotQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -12,9 +12,15 @@ * A NOT Query Expression.<p> * * Returns true when either expression is false. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Fix the human readable expression + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class NotQueryExp implements QueryExp @@ -65,7 +71,7 @@ public String toString() { - return new String("(!" + expression.toString() + ")" ); + return new String("!(" + expression.toString() + ")" ); } // Protected --------------------------------------------------- 1.2 +7 -1 jmx/src/main/javax/management/OrQueryExp.java Index: OrQueryExp.java =================================================================== RCS file: /cvsroot/jboss/jmx/src/main/javax/management/OrQueryExp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- OrQueryExp.java 22 Feb 2002 16:44:32 -0000 1.1 +++ OrQueryExp.java 15 Mar 2002 20:26:39 -0000 1.2 @@ -12,9 +12,15 @@ * An OR Query Expression.<p> * * Returns true when either expression is true. + * + * <p><b>Revisions:</b> + * <p><b>20020314 Adrian Brock:</b> + * <ul> + * <li>Fix the human readable expression + * </ul> * * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Brock</a>. - * @version $Revision: 1.1 $ + * @version $Revision: 1.2 $ */ /*package*/ class OrQueryExp implements QueryExp @@ -73,7 +79,7 @@ public String toString() { - return new String("(" + first.toString() + " || " + second.toString()) + ")"; + return new String("(" + first.toString() + ") || (" + second.toString()) + ")"; } // Protected ---------------------------------------------------
_______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development