[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opennms-cvs
Subject:    [opennms-cvs] SF.net SVN: opennms: [7962]
From:       ayresb () users ! sourceforge ! net
Date:       2007-11-29 17:51:57
Message-ID: E1IxnYL-0003jl-GH () sc8-pr-svn3 ! sourceforge ! net
[Download RAW message or body]

Revision: 7962
          http://opennms.svn.sourceforge.net/opennms/?rev=7962&view=rev
Author:   ayresb
Date:     2007-11-29 09:51:55 -0800 (Thu, 29 Nov 2007)

Log Message:
-----------
Fix some IP sorts to be numerical sorts by octet instead of character sorts,
for example 1,2,11... instead of 1,11,2...

Modified Paths:
--------------
    opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java
  opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
  opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp

Modified: opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java
 ===================================================================
--- opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java	2007-11-29 \
                15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/element/NetworkElementFactory.java	2007-11-29 \
17:51:55 UTC (rev 7962) @@ -46,6 +46,8 @@
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -57,6 +59,7 @@
 
 import org.apache.log4j.Category;
 import org.opennms.core.resource.Vault;
+import org.opennms.core.utils.IPSorter;
 import org.opennms.core.utils.ThreadCategory;
 import org.opennms.netmgt.EventConstants;
 import org.opennms.netmgt.dao.CategoryDao;
@@ -101,6 +104,8 @@
     private NetworkElementFactory() {
     }
 
+    private static final Comparator<Interface> INTERFACE_COMPARATOR = new \
InterfaceComparator(); +
     /**
      * Translate a node id into a human-readable node label. Note these values
      * are not cached.
@@ -659,7 +664,7 @@
         Connection conn = Vault.getDbConnection();
 
         try {
-            PreparedStatement stmt = conn.prepareStatement("SELECT * FROM \
IPINTERFACE WHERE NODEID = ? AND ISMANAGED != 'D' ORDER BY IPADDR, IFINDEX"); +       \
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM IPINTERFACE WHERE \
NODEID = ? AND ISMANAGED != 'D' ORDER BY IFINDEX");  stmt.setInt(1, nodeId);
             ResultSet rs = stmt.executeQuery();
 
@@ -984,6 +989,7 @@
             intfs.add(intf);
         }
 
+        Collections.sort(intfs, INTERFACE_COMPARATOR);
         return (Interface[]) intfs.toArray(new Interface[intfs.size()]);
 
     }
@@ -2463,4 +2469,27 @@
         return theirNodes.toArray(new Node[0]);
     }
 
+    public static class InterfaceComparator implements Comparator<Interface> {
+        public int compare(Interface o1, Interface o2) {
+
+            // Sort by IP first if the IPs are non-0.0.0.0
+            if (!"0.0.0.0".equals(o1.getIpAddress()) && \
!"0.0.0.0".equals(o2.getIpAddress())) { +                if \
(IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return 1;
+                } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return -1;
+                } else {
+                    return 0;
+                }
+            } else {
+                // Sort IPs that are non-0.0.0.0 so they are first
+                if (!"0.0.0.0".equals(o1.getIpAddress())) {
+                    return -1;
+                } else if (!"0.0.0.0".equals(o2.getIpAddress())) {
+                    return 1;
+                }
+            }
+            return 0;
+        }
+    }
 }

Modified: opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
 ===================================================================
--- opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java	2007-11-29 \
                15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java	2007-11-29 \
17:51:55 UTC (rev 7962) @@ -17,6 +17,7 @@
 import org.hibernate.type.IntegerType;
 import org.hibernate.type.StringType;
 import org.hibernate.type.Type;
+import org.opennms.core.utils.IPSorter;
 import org.opennms.netmgt.config.siteStatusViews.Category;
 import org.opennms.netmgt.config.siteStatusViews.RowDef;
 import org.opennms.netmgt.config.siteStatusViews.Rows;
@@ -357,8 +358,12 @@
 
             // Sort by IP first if the IPs are non-0.0.0.0
             if (!"0.0.0.0".equals(o1.getIpAddress()) && \
                !"0.0.0.0".equals(o2.getIpAddress())) {
-                if ((diff = o1.getIpAddress().compareTo(o2.getIpAddress())) != 0) {
-                    return diff;
+                if (IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return 1;
+                } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return -1;
+                } else {
+                    return 0;
                 }
             } else {
                 // Sort IPs that are non-0.0.0.0 so they are first
@@ -417,8 +422,12 @@
 
             // Sort by IP first if the IPs are non-0.0.0.0
             if (!"0.0.0.0".equals(o1.getIpAddress()) && \
                !"0.0.0.0".equals(o2.getIpAddress())) {
-                if ((diff = o1.getIpAddress().compareTo(o2.getIpAddress())) != 0) {
-                    return diff;
+                if (IPSorter.convertToLong(o1.getIpAddress()) > \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return 1;
+                } else if (IPSorter.convertToLong(o1.getIpAddress()) < \
IPSorter.convertToLong(o2.getIpAddress())) { +                    return -1;
+                } else {
+                    return 0;
                 }
             } else {
                 // Sort IPs that are non-0.0.0.0 so they are first

Modified: opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp
 ===================================================================
--- opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp	2007-11-29 \
                15:40:34 UTC (rev 7961)
+++ opennms/trunk/opennms-webapp/src/main/webapp/includes/nodeAvailability-box.jsp	2007-11-29 \
17:51:55 UTC (rev 7962) @@ -66,18 +66,7 @@
 	private double m_warningThreshold;
   
     private ServiceNameComparator m_serviceComparator = new ServiceNameComparator();
-    private InterfaceIpAddressComparator m_interfaceComparator = new \
InterfaceIpAddressComparator();  
-    public Interface[] getInterfaces(int nodeId) throws java.sql.SQLException {
-        Interface[] intfs = NetworkElementFactory.getActiveInterfacesOnNode(nodeId);
-        
-        if (intfs != null) {
-            Arrays.sort(intfs, m_interfaceComparator); 
-        }
-
-        return intfs;
-    }
-
     public Service[] getServices(Interface intf) throws java.sql.SQLException {
         Assert.notNull(intf, "intf argument cannot be null");
         
@@ -154,7 +143,7 @@
   </tr>
 
 <%  if (overallRtcValue >= 0) { %>
-       <% Interface[] availIntfs = getInterfaces(nodeId); %>
+       <% Interface[] availIntfs = \
NetworkElementFactory.getActiveInterfacesOnNode(nodeId); %>  
         <% for( int i=0; i < availIntfs.length; i++ ) { %>
           <% Interface intf = availIntfs[i]; %>


This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic